Skip to content
Snippets Groups Projects
Commit 3ff439f4 authored by Jan David Mol's avatar Jan David Mol
Browse files

Bug 1362: added OLAP.Stokes.channelsPerSubband

parent ed44e08f
No related branches found
No related tags found
No related merge requests found
......@@ -4,9 +4,9 @@
#
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
node LOFAR 4.0.1 development 'node constraint' "LOFAR Main"
node LOFAR 4.0.2 development 'node constraint' "LOFAR Main"
#uses PermSW 4.0.0 development 1 "Permanent Software"
uses ObsSW 4.0.1 development 1 "Observation Software"
uses ObsSW 4.0.2 development 1 "Observation Software"
#uses PIC 4.0.0 development 1 "Physical Instrument Components"
uses Clock160 4.0.0 development 1 "160MHz System Clock"
uses Clock200 4.0.0 development 1 "200MHz System Clock"
#
# $Id:$
# $Id$
#
# -- CNProc --
#
......@@ -45,12 +45,14 @@ par integrationTime I dbl - 10 0 1 - "Integration time"
# -- Stokes --
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
node Stokes 4.0.0 development 'node constraint' "Settings for Stokes calculations"
node Stokes 4.0.1 development 'node constraint' "Settings for Stokes calculations"
# output configuration
par which I ptext - 10 0 "I|IQUV;I" - "Which Stokes values to compute"
par integrateChannels I bool - 10 0 false - "Collapse channels for Stokes (DM=0)"
par integrationSteps I int - 10 0 1 - "Time-wise integration of Stokes data (in samples)"
par channelsPerSubband I int - 10 0 0 - "Number of channels for Stokes data"
#########################################################################################################
# -- Pencil --
......@@ -109,7 +111,7 @@ par subbandsPerMS I int - 10 0 1 - '???'
# -- OLAP--
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
node OLAP 4.0.1 development 'node constraint' "OLAP"
node OLAP 4.0.2 development 'node constraint' "OLAP"
# name dir. type unit prun. vm value constr. descr.
#--------------------------------------------------------------------------------------------------------
......@@ -131,13 +133,15 @@ par outputCorrelatedData I bool - 10 0 true
par outputFilteredData I bool - 10 0 false - "Store output of PPF/FFT"
par outputBeamFormedData I bool - 10 0 false - "Store beam formed complex voltages"
par outputCoherentStokes I bool - 10 0 false - "Store coherent Stokes"
par outputIncoherentStokes I bool - 10 0 false - "Store incoherent Stokes"
par outputIncoherentStokes I bool - 10 0 false - "Store incoherent Stokes"
par outputTrigger I bool - 10 0 false - "Store triggers"
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
uses CNProc 4.0.0 development 'node constraint' "Compute-Node Processing: application running on the BlueGene compute nodes"
uses OLAP_Conn 4.0.0 development 'node constraint' "Connection specification of OLAP"
uses Stokes 4.0.0 development 'node constraint' "Settings for Stokes calculations"
uses Stokes 4.0.1 development 'node constraint' "Settings for Stokes calculations"
uses PencilInfo 4.0.0 development 'node constraint' "Settings for pencil beamformer"
uses DelayComp 4.0.0 development 'node constraint' "Setting of the delaycompensation"
uses IONProc 4.0.0 development 'node constraint' "I/O Node Processing: application running on the BlueGene I/O nodes"
......
......@@ -4,5 +4,5 @@
#
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
node ObsSW 4.0.1 development 'node constraint' "Observation Software"
uses Observation 4.0.1 development 1 "Observations under this SW control"
node ObsSW 4.0.2 development 'node constraint' "Observation Software"
uses Observation 4.0.2 development 1 "Observations under this SW control"
......@@ -7,7 +7,7 @@
# -- Observation--
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
node Observation 4.0.1 development 'node constraint' "Observation"
node Observation 4.0.2 development 'node constraint' "Observation"
# name dir. type unit prun. vm value constr. descr.
#--------------------------------------------------------------------------------------------------------
......@@ -51,6 +51,6 @@ uses AnaBeam 4.0.0 development '1' "Analogue beam specific
uses Beamformer 4.0.0 development '1' "Beamformet specifications"
uses TBB 4.0.0 development '1' "TBB settings"
uses Dataslots 4.0.0 development '1' "Dataslot (beamlet) allocation"
uses ObservationControl 4.0.1 development '1' "Observation Control"
uses ObservationControl 4.0.2 development '1' "Observation Control"
uses Scheduler 4.0.0 development '1' "Scheduler"
......@@ -4,7 +4,7 @@
#
# name vers qual constr. descr.
#--------------------------------------------------------------------------------------------------------
node OnlineControl 4.0.1 development 'node constraint' "Controller for the online datastream"
node OnlineControl 4.0.2 development 'node constraint' "Controller for the online datastream"
# name dir. type unit prun. vm value constr. descr.
#--------------------------------------------------------------------------------------------------------
......@@ -15,5 +15,5 @@ par applOrder I vtext - 10 0 ["CorrAppl"] - "The
uses ApplCtrl 4.0.0 development 1 "The ACC controller"
uses CorrAppl 4.0.0 development 1 "CN Application"
uses OLAP 4.0.1 development 1 "OLAP specific information"
uses OLAP 4.0.2 development 1 "OLAP specific information"
......@@ -47,12 +47,12 @@ static void inline _StokesI(
namespace LOFAR {
namespace RTCP {
Stokes::Stokes(int nrStokes, unsigned nrChannels, unsigned nrSamplesPerIntegration, unsigned nrSamplesPerStokesIntegration, unsigned nrChannelsPerIntegration ):
Stokes::Stokes(int nrStokes, unsigned nrChannels, unsigned nrSamplesPerIntegration, unsigned nrSamplesPerStokesIntegration, unsigned nrStokesChannels ):
itsNrChannels(nrChannels),
itsNrSamplesPerIntegration(nrSamplesPerIntegration),
itsNrSamplesPerStokesIntegration(nrSamplesPerStokesIntegration),
itsNrStokes(nrStokes),
itsNrChannelsPerIntegration(nrChannelsPerIntegration)
itsNrChannelsPerIntegration(nrChannels/nrStokesChannels)
{
}
......
......@@ -19,7 +19,7 @@ class Stokes
public:
static const float MAX_FLAGGED_PERCENTAGE = 0.9f;
Stokes(int nrStokes, unsigned nrChannels, unsigned nrSamplesPerIntegration, unsigned nrSamplesPerOutputIntegration, unsigned nrChannelsPerIntegration);
Stokes(int nrStokes, unsigned nrChannels, unsigned nrSamplesPerIntegration, unsigned nrSamplesPerOutputIntegration, unsigned nrStokesChannels);
template <bool ALLSTOKES> void calculateCoherent( const SampleData<> *sampleData, StokesData *stokesData, unsigned beam );
template <bool ALLSTOKES> void calculateIncoherent( const SampleData<> *sampleData, StokesData *stokesData, const std::vector<unsigned> &stationMapping );
......
......@@ -53,6 +53,7 @@ class CN_Configuration
unsigned &nrChannelsPerSubband();
unsigned &nrSamplesPerIntegration();
unsigned &nrSamplesPerStokesIntegration();
unsigned &stokesNrChannelsPerSubband();
unsigned &nrSamplesToCNProc();
unsigned &nrSubbandsPerPset();
unsigned &nrSubbandsPerPart();
......@@ -113,6 +114,7 @@ class CN_Configuration
unsigned itsNrChannelsPerSubband;
unsigned itsNrSamplesPerIntegration;
unsigned itsNrSamplesPerStokesIntegration;
unsigned itsStokesNrChannelsPerSubband;
unsigned itsNrSamplesToCNProc;
unsigned itsNrUsedCoresPerPset;
unsigned itsNrPhaseOneTwoCores;
......@@ -198,6 +200,11 @@ inline unsigned &CN_Configuration::nrSamplesPerStokesIntegration()
return itsMarshalledData.itsNrSamplesPerStokesIntegration;
}
inline unsigned &CN_Configuration::stokesNrChannelsPerSubband()
{
return itsMarshalledData.itsStokesNrChannelsPerSubband;
}
inline unsigned &CN_Configuration::nrSamplesToCNProc()
{
return itsMarshalledData.itsNrSamplesToCNProc;
......
......@@ -85,6 +85,7 @@ public:
uint32 CNintegrationSteps() const;
uint32 IONintegrationSteps() const;
uint32 stokesIntegrationSteps() const;
uint32 stokesNrChannelsPerSubband() const;
double CNintegrationTime() const;
double IONintegrationTime() const;
uint32 nrSubbandSamples() const;
......@@ -320,6 +321,11 @@ inline uint32 Parset::stokesIntegrationSteps() const
return getUint32("OLAP.Stokes.integrationSteps");
}
inline uint32 Parset::stokesNrChannelsPerSubband() const
{
return getUint32("OLAP.Stokes.channelsPerSubband");
}
inline bool Parset::outputFilteredData() const
{
return getBool("OLAP.outputFilteredData",false);
......
......@@ -56,6 +56,7 @@ CN_Configuration::CN_Configuration(const Parset &parset)
nrChannelsPerSubband() = parset.nrChannelsPerSubband();
nrSamplesPerIntegration() = parset.CNintegrationSteps();
nrSamplesPerStokesIntegration() = parset.stokesIntegrationSteps();
stokesNrChannelsPerSubband() = parset.stokesNrChannelsPerSubband();
nrSamplesToCNProc() = parset.nrSamplesToCNProc();
nrSubbandsPerPset() = parset.nrSubbandsPerPset();
nrSubbandsPerPart() = parset.nrSubbandsPerPart();
......
......@@ -94,7 +94,7 @@ template <typename SAMPLE_TYPE> CN_ProcessingPlan<SAMPLE_TYPE>::CN_ProcessingPla
false,
configuration.nrStokes(),
1,
configuration.nrChannelsPerSubband(),
configuration.stokesNrChannelsPerSubband(),
configuration.nrSamplesPerIntegration(),
configuration.nrSamplesPerStokesIntegration()
);
......@@ -149,7 +149,7 @@ template <typename SAMPLE_TYPE> CN_ProcessingPlan<SAMPLE_TYPE>::CN_ProcessingPla
true,
configuration.nrStokes(),
nrBeams,
configuration.nrChannelsPerSubband(),
configuration.stokesNrChannelsPerSubband(),
configuration.nrSamplesPerIntegration(),
configuration.nrSamplesPerStokesIntegration()
);
......@@ -193,7 +193,7 @@ template <typename SAMPLE_TYPE> CN_ProcessingPlan<SAMPLE_TYPE>::CN_ProcessingPla
true,
1,
nrSubbands,
configuration.nrChannelsPerSubband(),
configuration.stokesNrChannelsPerSubband(),
configuration.nrSamplesPerIntegration(),
configuration.nrSamplesPerStokesIntegration()
);
......@@ -201,7 +201,7 @@ template <typename SAMPLE_TYPE> CN_ProcessingPlan<SAMPLE_TYPE>::CN_ProcessingPla
itsFinalCoherentStokesData = new FinalStokesData(
true,
nrSubbands,
configuration.nrChannelsPerSubband(),
configuration.stokesNrChannelsPerSubband(),
configuration.nrSamplesPerIntegration(),
configuration.nrSamplesPerStokesIntegration()
);
......
......@@ -106,7 +106,7 @@ std::string getStreamDescriptorBetweenIONandStorage(const Parset &parset, const
if (connectionType == "NULL") {
return "null:";
} else if (connectionType == "TCP") {
return str(format("tcpkey:%s:ion-storage-obs-%s-file-%s") % host % parset.observationID() % filename);
return str(format("tcpkey:%s.online.lofar:ion-storage-obs-%s-file-%s") % host % parset.observationID() % filename);
} else if (connectionType == "FILE") {
return str(format("file:%s") % filename );
} else {
......
......@@ -128,6 +128,9 @@ class Parset(util.Parset.Parset):
self.setdefault("OLAP.outputTrigger",False)
self.setdefault("OLAP.Correlator.integrationTime",1);
if "OLAP.Stokes.channelsPerSubband" not in self or int(self["OLAP.Stokes.channelsPerSubband"]) == 0:
self["OLAP.Stokes.channelsPerSubband"] = self["Observation.nrChannelsPerSubband"]
self.setdefault('OLAP.Storage.Filtered.namemask','L${OBSID}_SB${SUBBAND}.filtered')
self.setdefault('OLAP.Storage.Beamformed.namemask','L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw')
......@@ -682,6 +685,9 @@ class Parset(util.Parset.Parset):
if self.getBool("OLAP.outputCoherentStokes"):
assert int(self["OLAP.CNProc.integrationSteps"]) >= 4, "OLAP.CNProc.integrationSteps should be at least 4 if coherent stokes are requested"
assert int(self["OLAP.Stokes.channelsPerSubband"]) <= int(self["Observation.channelsPerSubband"]), "Stokes should have the same number or fewer channels than specified for the full observation."
assert int(self["Observation.channelsPerSubband"]) % int(self["OLAP.Stokes.channelsPerSubband"]) == 0, "Stokes channels should be a whole fraction of the total number of channels."
# verify start/stop times
assert self["Observation.startTime"] < self["Observation.stopTime"], "Start time (%s) must be before stop time (%s)" % (self["Observation.startTime"],self["Observation.stopTime"])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment