27#ifndef NIDAS_DYNLD_STATISTICSCRUNCHER_H
28#define NIDAS_DYNLD_STATISTICSCRUNCHER_H
39namespace nidas {
namespace dynld {
41class StatisticsProcessor;
65 std::string countsName,
bool higherMoments);
126 void flush() throw();
218 std::string
makeName(
int i,
int j=-1,
int k=-1,
int l=-1);
224 std::string
makeUnits(
int i,
int j=-1,
int k=-1,
int l=-1);
226 std::string
makeUnits(
const std::vector<std::string>&);
233 void setupMoments(
unsigned int nvars,
unsigned int moment);
262 const std::string& longname,
263 const std::string& units);
A simple, nearest-point resampler, for generating merged samples from variables from one or more samp...
Definition NearestResampler.h:54
Interface for a resampler, simply a SampleClient and a SampleSource.
Definition Resampler.h:39
Pure virtual interface of a client of Samples.
Definition SampleClient.h:38
Interface of an output stream of samples.
Definition SampleOutput.h:49
A source of samples.
Definition SampleSourceSupport.h:47
void removeSampleClient(SampleClient *c)
Remove a SampleClient from this SampleSource This will also remove a SampleClient if it has been adde...
Definition SampleSourceSupport.cc:88
void addSampleClient(SampleClient *c)
Add a SampleClient to this SampleSource.
Definition SampleSourceSupport.cc:80
SampleTagIterator getSampleTagIterator() const
Definition SampleSourceSupport.cc:75
int getClientCount() const
How many SampleClients are currently in my list.
Definition SampleSourceSupport.cc:136
void removeSampleTag(const SampleTag *tag)
Definition SampleSourceSupport.cc:67
const SampleStats & getSampleStats() const
Definition SampleSourceSupport.h:149
void addSampleTag(const SampleTag *tag)
Add a SampleTag to this SampleSource.
Definition SampleSourceSupport.cc:60
std::list< const SampleTag * > getSampleTags() const
What SampleTags am I a SampleSource for?
Definition SampleSourceSupport.cc:54
Pure virtual interface for a source of Samples.
Definition SampleSource.h:48
A source of samples.
Definition SampleStats.h:41
Class for iterating over the SampleTags of a Project, Site, DSMConfig, or a SampleSource.
Definition NidsIterators.h:218
Class describing a group of variables that are sampled and handled together.
Definition SampleTag.h:88
Interface to a data sample.
Definition Sample.h:190
A measurement site.
Definition Site.h:49
Definition StatisticsCruncher.h:48
SampleSourceSupport _source
Definition StatisticsCruncher.h:282
std::string makeUnits(int i, int j=-1, int k=-1, int l=-1)
Create a derived units field from input variables i,j,k,l.
Definition StatisticsCruncher.cc:712
void computeStats()
Definition StatisticsCruncher.cc:1653
dsm_time_t _periodUsecs
Definition StatisticsCruncher.h:303
enum nidas::dynld::StatisticsCruncher::statsEnumType statisticsType
Types of statistics I can generate.
static const std::string & getStatisticsString(statisticsType stype)
Return string name for the given stype.
Definition StatisticsCruncher.cc:214
unsigned int * _nSamples
Definition StatisticsCruncher.h:360
std::string _countsName
Name of counts variable.
Definition StatisticsCruncher.h:296
void setupMoments(unsigned int nvars, unsigned int moment)
Definition StatisticsCruncher.cc:763
void disconnect(SampleOutput *output)
StatisticsCruncher(const StatisticsCruncher &)
No copy.
double * _x4Sum
Definition StatisticsCruncher.h:358
void setupFluxes()
Definition StatisticsCruncher.cc:1046
std::string makeName(int i, int j=-1, int k=-1, int l=-1)
Create a derived variable name from input variables i,j,k,l.
Definition StatisticsCruncher.cc:621
StatisticsCruncher & operator=(const StatisticsCruncher &)
No assignment.
double * _xSum
Definition StatisticsCruncher.h:354
std::string _commonSuffix
Trailing portion that is common to all variable names.
Definition StatisticsCruncher.h:331
void setupTrivariances()
Definition StatisticsCruncher.cc:876
void addVariable(const std::string &name, const std::string &longname, const std::string &units)
Definition StatisticsCruncher.cc:804
StatisticsCruncher(StatisticsProcessor *proc, const SampleTag *stag, statisticsType type, std::string countsName, bool higherMoments)
Constructor.
Definition StatisticsCruncher.cc:59
const Site * _site
Definition StatisticsCruncher.h:391
SampleTag _outSample
Definition StatisticsCruncher.h:333
unsigned int _ntri
Number of trivariances to compute.
Definition StatisticsCruncher.h:377
SampleTag _reqTag
Definition StatisticsCruncher.h:284
statsEnumType
Types of statistics I can generate.
Definition StatisticsCruncher.h:54
@ STATS_MAXIMUM
Definition StatisticsCruncher.h:55
@ STATS_SFLUX
Definition StatisticsCruncher.h:56
@ STATS_UNKNOWN
Definition StatisticsCruncher.h:55
@ STATS_MINIMUM
Definition StatisticsCruncher.h:55
@ STATS_MEAN
Definition StatisticsCruncher.h:55
@ STATS_SUM
Definition StatisticsCruncher.h:57
@ STATS_TRIVAR
Definition StatisticsCruncher.h:57
@ STATS_FLUX
Definition StatisticsCruncher.h:56
@ STATS_COV
Definition StatisticsCruncher.h:56
@ STATS_RFLUX
Definition StatisticsCruncher.h:56
@ STATS_PRUNEDTRIVAR
Definition StatisticsCruncher.h:57
@ STATS_VAR
Definition StatisticsCruncher.h:55
@ STATS_WINDDIR
Definition StatisticsCruncher.h:57
const SampleStats & getSampleStats() const
Definition StatisticsCruncher.h:128
void setupReducedFluxes()
Definition StatisticsCruncher.cc:1076
long long getPeriodUsecs() const
Definition StatisticsCruncher.h:180
void removeSampleClientForTag(SampleClient *client, const SampleTag *)
Remove a SampleClient for a given SampleTag from this SampleSource.
Definition StatisticsCruncher.h:113
std::string _leadCommon
Portion after the first dot-separated word that is common to all variable names.
Definition StatisticsCruncher.h:326
statisticsType _statsType
Types of statistics I can generate.
Definition StatisticsCruncher.h:315
std::list< const SampleTag * > getSampleTags() const
Get the output SampleTags.
Definition StatisticsCruncher.h:77
nidas::util::UTime getEndTime() const
Definition StatisticsCruncher.h:175
bool _numpoints
Does the user want number-of-points output?
Definition StatisticsCruncher.h:301
void removeSampleClient(SampleClient *client)
Remove a SampleClient from this SampleSource.
Definition StatisticsCruncher.h:98
SampleSource * getProcessedSampleSource()
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
Definition StatisticsCruncher.h:71
unsigned int _n3mom
Definition StatisticsCruncher.h:382
void createCombinations()
Definition StatisticsCruncher.cc:1155
unsigned int _nsum
Number of simple sums to maintain.
Definition StatisticsCruncher.h:367
dsm_time_t _tout
Definition StatisticsCruncher.h:339
static statisticsType getStatisticsType(const std::string &type)
Definition StatisticsCruncher.cc:200
void setupMinMax(const std::string &)
Definition StatisticsCruncher.cc:1128
~StatisticsCruncher()
Definition StatisticsCruncher.cc:142
unsigned int _ntot
Total number of products to compute.
Definition StatisticsCruncher.h:387
float * _xMin
Definition StatisticsCruncher.h:349
double ** _xySum
Definition StatisticsCruncher.h:356
unsigned int _n4mom
Definition StatisticsCruncher.h:382
std::vector< std::vector< std::string > > _splitVarNames
Input variable names, split at dots.
Definition StatisticsCruncher.h:320
nidas::util::UTime _startTime
Definition StatisticsCruncher.h:395
bool _fillGaps
Definition StatisticsCruncher.h:399
void zeroStats()
Definition StatisticsCruncher.cc:1350
unsigned int _ninvars
Number of input variables.
Definition StatisticsCruncher.h:291
unsigned int _n2mom
Definition StatisticsCruncher.h:382
void setEndTime(const nidas::util::UTime &val)
Definition StatisticsCruncher.h:170
void disconnect(SampleSource *source)
Definition StatisticsCruncher.cc:318
void addSampleClient(SampleClient *client)
Implementation of SampleSource::addSampleClient().
Definition StatisticsCruncher.h:93
void setupWindDir()
Definition StatisticsCruncher.cc:820
void initStats()
Definition StatisticsCruncher.cc:1265
unsigned int ** _triComb
Definition StatisticsCruncher.h:362
double * _xyzSum
Definition StatisticsCruncher.h:357
std::vector< const Variable * > _reqVariables
Definition StatisticsCruncher.h:286
unsigned int _outlen
Definition StatisticsCruncher.h:337
bool _crossTerms
Does this cruncher compute cross-terms?
Definition StatisticsCruncher.h:308
SampleSource * getRawSampleSource()
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
Definition StatisticsCruncher.h:69
void setupPrunedTrivariances()
Definition StatisticsCruncher.cc:918
unsigned int _nOutVar
Definition StatisticsCruncher.h:335
unsigned int _n1mom
Number of 1st,2nd,3rd,4th moments to compute.
Definition StatisticsCruncher.h:382
void setFillGaps(bool val)
Definition StatisticsCruncher.h:197
int getClientCount() const
How many SampleClients are currently in my list.
Definition StatisticsCruncher.h:118
SampleTagIterator getSampleTagIterator() const
Implementation of SampleSource::getSampleTagIterator().
Definition StatisticsCruncher.h:85
NearestResampler * _resampler
Definition StatisticsCruncher.h:310
int _station
Definition StatisticsCruncher.h:393
bool getFillGaps() const
Whether to generate output samples over time gaps.
Definition StatisticsCruncher.h:192
bool receive(const Sample *s)
Method called to pass a sample to this client.
Definition StatisticsCruncher.cc:1364
nidas::util::UTime getStartTime() const
Definition StatisticsCruncher.h:165
void setStartTime(const nidas::util::UTime &val)
Definition StatisticsCruncher.cc:169
void attach(SampleSource *source)
Definition StatisticsCruncher.cc:324
float * _xMax
Definition StatisticsCruncher.h:351
unsigned int _ncov
Number of covariances to compute.
Definition StatisticsCruncher.h:372
void removeSampleTag(const SampleTag *tag)
Definition StatisticsCruncher.h:275
void addSampleClientForTag(SampleClient *client, const SampleTag *)
Add a Client for a given SampleTag.
Definition StatisticsCruncher.h:107
void splitNames()
Split input variable names at periods.
Definition StatisticsCruncher.cc:502
std::map< dsm_sample_id_t, sampleInfo > _sampleMap
Definition StatisticsCruncher.h:347
nidas::util::UTime _endTime
Definition StatisticsCruncher.h:397
void addSampleTag(const SampleTag *tag)
Add a SampleTag to this SampleSource.
Definition StatisticsCruncher.h:270
void connect(SampleOutput *output)
Connect a SamplePipeline to the cruncher.
void setupCovariances()
Definition StatisticsCruncher.cc:853
bool _higherMoments
Definition StatisticsCruncher.h:389
void flush()
Implementation of Resampler::flush().
Definition StatisticsCruncher.cc:1873
void setupReducedScalarFluxes()
Definition StatisticsCruncher.cc:1107
void connect(SampleSource *source)
Connect a SamplePipeline to the cruncher.
Definition StatisticsCruncher.cc:226
StatisticsProcessor * _proc
Definition StatisticsCruncher.h:280
Interface of a processor of samples.
Definition StatisticsProcessor.h:44
A class for parsing, formatting and doing operations on time, based on Unix time conventions,...
Definition UTime.h:95
The essential core classes of nidas.
Definition A2DConverter.h:31
Sample * getSample(sampleType type, unsigned int len)
A convienence method for getting a sample of an enumerated type from a pool.
Definition Sample.cc:70
long long dsm_time_t
Posix time in microseconds, the number of non-leap microseconds since 1970 Jan 1 00:00 UTC.
Definition Sample.h:62
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31
Definition StatisticsCruncher.h:341
std::vector< unsigned int * > varIndices
Definition StatisticsCruncher.h:344
sampleInfo()
Definition StatisticsCruncher.h:342
unsigned int weightsIndex
Definition StatisticsCruncher.h:343