Inheritance diagram for vol::VolumeCreator:
The technique by which variables are combined depends on the subclass. For example, look at LatestVolumeCreator.
Public Member Functions | |
const code::LatLonHeightGrid & | getCurrentGrid () |
returns the result, computing it if necessary. | |
virtual std::vector< code::LatLonHeightGrid > | getOtherOutputs () const |
Make sure to call this method after calling getCurrentGrid. | |
virtual std::vector< code::SmartPtr< code::DataType > > | getNonLatLonGridOutputs () const |
VolumeCreators like the VADVolumeCreator may not return LatLonGrid. | |
void | process (code::RadialSet &rs) |
Update grid based on radial set data. | |
void | process (code::LatLonGrid &llg) |
Update grid based on lat-lon data. | |
void | process (code::LatLonHeightGrid &llh) |
Update grid based on lat-lon data. | |
void | process (RawObservationStruct &rawobs) |
Update grid based on raw observations. | |
void | process (WeightedObservationStruct &rawobs) |
virtual | ~VolumeCreator () |
int | getNumLat () const |
int | getNumLon () const |
int | getNumHt () const |
const GridSpecification & | getGridSpec () const |
void | setScaleCorrectionOn (bool flag) |
If this is turned on, we will correct for difference in scale between radar data and the output grid by averaging radar gates. | |
void | setPrecision (float prec) |
Pass a positive value to set a round-off precision. | |
float | roundOff (float val) |
Subclasses should remember to call roundoff on their final values. | |
virtual bool | isReady () const |
over-ride this to tell clients that we are incomplete, and that functions such as getCurrentGrid() should not be called. | |
float | getFractionAvailable (size_t htno) const |
What fraction of the pixels at this height are not DataUnavailable? Values may either be MissingData or a valid value. | |
void | setAzimuthalAccuracy (float acc) |
How accurate should the azimuths be? By default, this is 0.1. | |
int | getStoredAzimuthToAzNo () const |
Get the scaling factor based on azimuthal accuracy. | |
virtual bool | isExpired (const code::Time &dataTime) const |
Is data at this time expired already? | |
virtual code::TimeInterval | getDataExpiryInterval () const =0 |
How long should data be kept? | |
virtual void | init (const GridSpecification &gridSpec, const std::string &cacheDir, const std::string &outputDir, code::SmartPtr< code::IndexRecordNotifier > lb) |
the real constructor | |
VolumeCreator () | |
Note: you need to call init(). | |
float | getDegreesPerKmLat () const |
float | getDegreesPerKmLon () const |
float | getKmPerPixelLat () const |
float | getKmPerPixelLon () const |
Protected Member Functions | |
int | getClosestLevel (const code::Length &inht, float tolerance_meters=0.1) |
virtual void | updateGridWithData (const RadialSetLookup &, const code::DataConverter::RadialSetLookup &, const code::RadialSet &, const code::Time &timeOfNewData)=0 |
subclasses should provide implementation of this method. | |
virtual void | updateGridWithData (const code::LatLonGrid &, const code::Time &timeOfNewData, int ht) |
virtual void | updateGridWithData (const RawObservationStruct &) |
virtual void | updateGridWithData (const WeightedObservationStruct &) |
virtual void | finalizeGrid ()=0 |
If any subclass data stores need to do an age off or some such thing to clean out the grid, they can do it here. | |
virtual code::LatLonHeightGrid | getDimensionedGrid (const GridSpecification &) |
void | setTimeOfGrid (const code::Time &productTime) |
virtual code::RadialSet | smoothAlongRadials (const code::RadialSet &rs, int half_size) |
Protected Attributes | |
code::LatLonHeightGrid | myCurrentGrid |
TimeUpdater | myAgeOffTime |
std::string | myOutputDir |
code::SmartPtr< code::IndexRecordNotifier > | myLB |
Classes | |
struct | GridSpecification |
The dimensions of the grid used by the volume creator are set by the North-West-Top, South-East-Bottom locations and the grid point spacing required. More... |
virtual vol::VolumeCreator::~VolumeCreator | ( | ) | [inline, virtual] |
vol::VolumeCreator::VolumeCreator | ( | ) | [inline] |
Note: you need to call init().
virtual void vol::VolumeCreator::finalizeGrid | ( | ) | [protected, pure virtual] |
If any subclass data stores need to do an age off or some such thing to clean out the grid, they can do it here.
Implemented in vol::AlreadyMergedVolumeCreator, vol::BlendedVolumeCreator, and vol::RawObservationsVolumeCreator.
int vol::VolumeCreator::getClosestLevel | ( | const code::Length & | inht, | |
float | tolerance_meters = 0.1 | |||
) | [protected] |
const code::LatLonHeightGrid& vol::VolumeCreator::getCurrentGrid | ( | ) |
returns the result, computing it if necessary.
virtual code::TimeInterval vol::VolumeCreator::getDataExpiryInterval | ( | ) | const [pure virtual] |
How long should data be kept?
Implemented in vol::AlreadyMergedVolumeCreator, vol::BlendedVolumeCreator, and vol::RawObservationsVolumeCreator.
float vol::VolumeCreator::getDegreesPerKmLat | ( | ) | const [inline] |
float vol::VolumeCreator::getDegreesPerKmLon | ( | ) | const [inline] |
virtual code::LatLonHeightGrid vol::VolumeCreator::getDimensionedGrid | ( | const GridSpecification & | ) | [protected, virtual] |
float vol::VolumeCreator::getFractionAvailable | ( | size_t | htno | ) | const |
What fraction of the pixels at this height are not DataUnavailable? Values may either be MissingData or a valid value.
const GridSpecification& vol::VolumeCreator::getGridSpec | ( | ) | const [inline] |
float vol::VolumeCreator::getKmPerPixelLat | ( | ) | const [inline] |
float vol::VolumeCreator::getKmPerPixelLon | ( | ) | const [inline] |
virtual std::vector< code::SmartPtr<code::DataType> > vol::VolumeCreator::getNonLatLonGridOutputs | ( | ) | const [inline, virtual] |
VolumeCreators like the VADVolumeCreator may not return LatLonGrid.
Call this method, but there is no need to invokve VolumeGridAlgorithm on these outputs.
Reimplemented in vol::BlendedVolumeCreator, vol::MultiDopplerVolumeCreator, and vol::VADVolumeCreator.
int vol::VolumeCreator::getNumHt | ( | ) | const [inline] |
int vol::VolumeCreator::getNumLat | ( | ) | const [inline] |
int vol::VolumeCreator::getNumLon | ( | ) | const [inline] |
virtual std::vector< code::LatLonHeightGrid > vol::VolumeCreator::getOtherOutputs | ( | ) | const [inline, virtual] |
Make sure to call this method after calling getCurrentGrid.
Reimplemented in vol::MultiDopplerUVWVolumeCreator, vol::MultiDopplerVolumeCreator, and vol::VADVolumeCreator.
int vol::VolumeCreator::getStoredAzimuthToAzNo | ( | ) | const [inline] |
Get the scaling factor based on azimuthal accuracy.
virtual void vol::VolumeCreator::init | ( | const GridSpecification & | gridSpec, | |
const std::string & | cacheDir, | |||
const std::string & | outputDir, | |||
code::SmartPtr< code::IndexRecordNotifier > | lb | |||
) | [virtual] |
the real constructor
virtual bool vol::VolumeCreator::isExpired | ( | const code::Time & | dataTime | ) | const [virtual] |
virtual bool vol::VolumeCreator::isReady | ( | ) | const [inline, virtual] |
over-ride this to tell clients that we are incomplete, and that functions such as getCurrentGrid() should not be called.
Reimplemented in vol::AlreadyMergedVolumeCreator.
void vol::VolumeCreator::process | ( | WeightedObservationStruct & | rawobs | ) |
void vol::VolumeCreator::process | ( | RawObservationStruct & | rawobs | ) |
Update grid based on raw observations.
void vol::VolumeCreator::process | ( | code::LatLonHeightGrid & | llh | ) |
Update grid based on lat-lon data.
Does not change the lat-lon.
void vol::VolumeCreator::process | ( | code::LatLonGrid & | llg | ) |
Update grid based on lat-lon data.
Does not change the lat-lon.
Reimplemented in vol::AlreadyMergedVolumeCreator.
void vol::VolumeCreator::process | ( | code::RadialSet & | rs | ) |
Update grid based on radial set data.
Does not change the radial set.
float vol::VolumeCreator::roundOff | ( | float | val | ) | [inline] |
Subclasses should remember to call roundoff on their final values.
The value passed in should not be missing, dataunavailable, etc.
void vol::VolumeCreator::setAzimuthalAccuracy | ( | float | acc | ) |
How accurate should the azimuths be? By default, this is 0.1.
Using lower values, such as 0.05 will result in thin fine lines where the beams are spaced further apart than 0.05 degrees.
void vol::VolumeCreator::setPrecision | ( | float | prec | ) | [inline] |
Pass a positive value to set a round-off precision.
For example, setting a precision of 0.5 means that output values in the merger grid (not derived quantities) will be rounded off to the nearest 0.5.
By default, precision is negative i.e. no rounding off is done.
void vol::VolumeCreator::setScaleCorrectionOn | ( | bool | flag | ) | [inline] |
If this is turned on, we will correct for difference in scale between radar data and the output grid by averaging radar gates.
void vol::VolumeCreator::setTimeOfGrid | ( | const code::Time & | productTime | ) | [protected] |
virtual code::RadialSet vol::VolumeCreator::smoothAlongRadials | ( | const code::RadialSet & | rs, | |
int | half_size | |||
) | [protected, virtual] |
virtual void vol::VolumeCreator::updateGridWithData | ( | const WeightedObservationStruct & | ) | [inline, protected, virtual] |
Reimplemented in vol::BlendedVolumeCreator.
virtual void vol::VolumeCreator::updateGridWithData | ( | const RawObservationStruct & | ) | [inline, protected, virtual] |
Reimplemented in vol::BlendedVolumeCreator.
virtual void vol::VolumeCreator::updateGridWithData | ( | const code::LatLonGrid & | , | |
const code::Time & | timeOfNewData, | |||
int | ht | |||
) | [inline, protected, virtual] |
Reimplemented in vol::BlendedVolumeCreator.
virtual void vol::VolumeCreator::updateGridWithData | ( | const RadialSetLookup & | , | |
const code::DataConverter::RadialSetLookup & | , | |||
const code::RadialSet & | , | |||
const code::Time & | timeOfNewData | |||
) | [protected, pure virtual] |
subclasses should provide implementation of this method.
Implemented in vol::AlreadyMergedVolumeCreator, vol::BlendedVolumeCreator, and vol::RawObservationsVolumeCreator.
TimeUpdater vol::VolumeCreator::myAgeOffTime [protected] |
code::LatLonHeightGrid vol::VolumeCreator::myCurrentGrid [protected] |
code::SmartPtr<code::IndexRecordNotifier> vol::VolumeCreator::myLB [protected] |
std::string vol::VolumeCreator::myOutputDir [protected] |