Inheritance diagram for vol::ExpTimeDistVolumeCreator:
This strategy is poor in combining data from adjacent tilts from the same radar but good when it comes to combining data from separate radar.
Public Types | |
typedef std::vector< Observation > | ObsList |
typedef std::vector< const Observation * > | ObservationList |
Public Member Functions | |
ExpTimeDistVolumeCreator (const code::TimeInterval &blendingInterval) | |
virtual | ~ExpTimeDistVolumeCreator () |
virtual void | computeWeightedValues (const BlendMap &dataValues, WeightedObservationStruct &allobs) |
For use by WeightedObservationsVolumeCreator. | |
virtual void | actionPerformed (const code::ActionEvent *e) |
virtual code::TimeInterval | getDataExpiryInterval () const |
How long should data be kept? | |
void | setToUseConstantWindField (bool flag) |
void | setToIgnoreClearAir (bool flag) |
void | setToWriteWeightedObservations (bool flag) |
void | setCalibrationDir (const std::string &dir) |
An empty string indicates that no calibration need be done. | |
short | getBestRange (size_t x, size_t y, size_t z) const |
virtual std::vector< code::SmartPtr< code::DataType > > | getNonLatLonGridOutputs () const |
VolumeCreators like the VADVolumeCreator may not return LatLonGrid. | |
void | updateGridWithData (const RadialSetLookup &, const code::DataConverter::RadialSetLookup &, const code::RadialSet &, const code::Time &timeOfNewData) |
subclasses should provide implementation of this method. | |
void | updateGridWithData (const code::LatLonGrid &, const code::Time &timeOfNewData, int ht) |
void | updateGridWithData (const RawObservationStruct &) |
void | updateGridWithData (const WeightedObservationStruct &) |
virtual void | finalizeGrid () |
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 void | setGridValueToBlendedValue (const BlendMap &dataValues, code::LatLonHeightGrid &output)=0 |
subclasses should implement this method to do their blending. | |
virtual void | computeWeightedValues (const BlendMap &dataValues, WeightedObservationStruct &allobs) |
Subclasses can optionally implement this method to provide a multi-stage tiled merger. | |
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. | |
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) |
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 void | init (const GridSpecification &gridSpec, const std::string &cacheDir, const std::string &outputDir, code::SmartPtr< code::IndexRecordNotifier > lb) |
the real constructor | |
float | getDegreesPerKmLat () const |
float | getDegreesPerKmLon () const |
float | getKmPerPixelLat () const |
float | getKmPerPixelLon () const |
Static Public Member Functions | |
static void | setDistanceSigma (float sigma) |
sigma is set in kilometers of influence. | |
static void | setTimeSigma (float sigma) |
sigma is set in minutes of influence. | |
static short | estimate_valid_time (int vcp_no) |
static void | setWindFieldProductName (const std::string &s) |
Protected Member Functions | |
virtual void | setGridValueToBlendedValue (const BlendMap &dataValues, code::LatLonHeightGrid &output) |
subclasses should implement this method to do their blending. | |
int | getClosestLevel (const code::Length &inht, float tolerance_meters=0.1) |
virtual code::LatLonHeightGrid | getDimensionedGrid (const GridSpecification &) |
void | setTimeOfGrid (const code::Time &productTime) |
virtual code::RadialSet | smoothAlongRadials (const code::RadialSet &rs, int half_size) |
Static Protected Member Functions | |
static void | init () |
Protected Attributes | |
code::LatLonHeightGrid | myCurrentGrid |
TimeUpdater | myAgeOffTime |
std::string | myOutputDir |
code::SmartPtr< code::IndexRecordNotifier > | myLB |
Static Protected Attributes | |
static float | DistanceVariance |
static float | TimeVariance |
static float | Variance |
static std::vector< float > | distwt_lookup |
static std::map< float, unsigned short > | distwt_inverse_lookup |
Friends | |
class | BlendedVolumeCreator::BlendMap |
typedef std::vector< const Observation* > vol::BlendedVolumeCreator::ObservationList [inherited] |
typedef std::vector< Observation > vol::BlendedVolumeCreator::ObsList [inherited] |
vol::ExpTimeDistVolumeCreator::ExpTimeDistVolumeCreator | ( | const code::TimeInterval & | blendingInterval | ) | [inline] |
virtual vol::ExpTimeDistVolumeCreator::~ExpTimeDistVolumeCreator | ( | ) | [inline, virtual] |
virtual void vol::BlendedVolumeCreator::actionPerformed | ( | const code::ActionEvent * | e | ) | [virtual, inherited] |
Reimplemented in vol::MultiDopplerVolumeCreator.
virtual void vol::BlendedVolumeCreator::computeWeightedValues | ( | const BlendMap & | dataValues, | |
WeightedObservationStruct & | allobs | |||
) | [virtual, inherited] |
Subclasses can optionally implement this method to provide a multi-stage tiled merger.
virtual void vol::ExpTimeDistVolumeCreator::computeWeightedValues | ( | const BlendMap & | dataValues, | |
WeightedObservationStruct & | allobs | |||
) | [virtual] |
For use by WeightedObservationsVolumeCreator.
static short vol::BlendedVolumeCreator::estimate_valid_time | ( | int | vcp_no | ) | [static, inherited] |
virtual void vol::BlendedVolumeCreator::finalizeGrid | ( | ) | [virtual, inherited] |
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.
Implements vol::VolumeCreator.
short vol::BlendedVolumeCreator::getBestRange | ( | size_t | x, | |
size_t | y, | |||
size_t | z | |||
) | const [inline, inherited] |
int vol::VolumeCreator::getClosestLevel | ( | const code::Length & | inht, | |
float | tolerance_meters = 0.1 | |||
) | [protected, inherited] |
const code::LatLonHeightGrid& vol::VolumeCreator::getCurrentGrid | ( | ) | [inherited] |
returns the result, computing it if necessary.
virtual code::TimeInterval vol::BlendedVolumeCreator::getDataExpiryInterval | ( | ) | const [inline, virtual, inherited] |
float vol::VolumeCreator::getDegreesPerKmLat | ( | ) | const [inline, inherited] |
float vol::VolumeCreator::getDegreesPerKmLon | ( | ) | const [inline, inherited] |
virtual code::LatLonHeightGrid vol::VolumeCreator::getDimensionedGrid | ( | const GridSpecification & | ) | [protected, virtual, inherited] |
float vol::VolumeCreator::getFractionAvailable | ( | size_t | htno | ) | const [inherited] |
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, inherited] |
float vol::VolumeCreator::getKmPerPixelLat | ( | ) | const [inline, inherited] |
float vol::VolumeCreator::getKmPerPixelLon | ( | ) | const [inline, inherited] |
virtual std::vector< code::SmartPtr<code::DataType> > vol::BlendedVolumeCreator::getNonLatLonGridOutputs | ( | ) | const [virtual, inherited] |
VolumeCreators like the VADVolumeCreator may not return LatLonGrid.
Call this method, but there is no need to invokve VolumeGridAlgorithm on these outputs.
Reimplemented from vol::VolumeCreator.
Reimplemented in vol::MultiDopplerVolumeCreator, and vol::VADVolumeCreator.
int vol::VolumeCreator::getNumHt | ( | ) | const [inline, inherited] |
int vol::VolumeCreator::getNumLat | ( | ) | const [inline, inherited] |
int vol::VolumeCreator::getNumLon | ( | ) | const [inline, inherited] |
virtual std::vector< code::LatLonHeightGrid > vol::VolumeCreator::getOtherOutputs | ( | ) | const [inline, virtual, inherited] |
Make sure to call this method after calling getCurrentGrid.
Reimplemented in vol::MultiDopplerUVWVolumeCreator, vol::MultiDopplerVolumeCreator, and vol::VADVolumeCreator.
int vol::VolumeCreator::getStoredAzimuthToAzNo | ( | ) | const [inline, inherited] |
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, inherited] |
the real constructor
static void vol::ExpTimeDistVolumeCreator::init | ( | ) | [static, protected] |
virtual bool vol::VolumeCreator::isExpired | ( | const code::Time & | dataTime | ) | const [virtual, inherited] |
virtual bool vol::VolumeCreator::isReady | ( | ) | const [inline, virtual, inherited] |
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 | ) | [inherited] |
void vol::VolumeCreator::process | ( | RawObservationStruct & | rawobs | ) | [inherited] |
Update grid based on raw observations.
void vol::VolumeCreator::process | ( | code::LatLonHeightGrid & | llh | ) | [inherited] |
Update grid based on lat-lon data.
Does not change the lat-lon.
void vol::VolumeCreator::process | ( | code::LatLonGrid & | llg | ) | [inherited] |
Update grid based on lat-lon data.
Does not change the lat-lon.
Reimplemented in vol::AlreadyMergedVolumeCreator.
void vol::VolumeCreator::process | ( | code::RadialSet & | rs | ) | [inherited] |
Update grid based on radial set data.
Does not change the radial set.
float vol::VolumeCreator::roundOff | ( | float | val | ) | [inline, inherited] |
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 | ) | [inherited] |
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::BlendedVolumeCreator::setCalibrationDir | ( | const std::string & | dir | ) | [inline, inherited] |
An empty string indicates that no calibration need be done.
static void vol::ExpTimeDistVolumeCreator::setDistanceSigma | ( | float | sigma | ) | [static] |
sigma is set in kilometers of influence.
Default is 50km.
virtual void vol::BlendedVolumeCreator::setGridValueToBlendedValue | ( | const BlendMap & | dataValues, | |
code::LatLonHeightGrid & | output | |||
) | [pure virtual, inherited] |
subclasses should implement this method to do their blending.
They should use the dataValues variable to get the Blend points and put their results into the output CurrentGrid.
virtual void vol::ExpTimeDistVolumeCreator::setGridValueToBlendedValue | ( | const BlendMap & | dataValues, | |
code::LatLonHeightGrid & | output | |||
) | [protected, virtual] |
subclasses should implement this method to do their blending.
They should use the dataValues variable to get the Blend points and put their results into the output CurrentGrid.
Reimplemented in vol::ExpDistInterpZVolumeCreator.
void vol::VolumeCreator::setPrecision | ( | float | prec | ) | [inline, inherited] |
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, inherited] |
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, inherited] |
static void vol::ExpTimeDistVolumeCreator::setTimeSigma | ( | float | sigma | ) | [static] |
sigma is set in minutes of influence.
Default is 5
void vol::BlendedVolumeCreator::setToIgnoreClearAir | ( | bool | flag | ) | [inline, inherited] |
void vol::BlendedVolumeCreator::setToUseConstantWindField | ( | bool | flag | ) | [inline, inherited] |
void vol::BlendedVolumeCreator::setToWriteWeightedObservations | ( | bool | flag | ) | [inline, inherited] |
static void vol::BlendedVolumeCreator::setWindFieldProductName | ( | const std::string & | s | ) | [static, inherited] |
virtual code::RadialSet vol::VolumeCreator::smoothAlongRadials | ( | const code::RadialSet & | rs, | |
int | half_size | |||
) | [protected, virtual, inherited] |
void vol::BlendedVolumeCreator::updateGridWithData | ( | const WeightedObservationStruct & | ) | [virtual, inherited] |
Reimplemented from vol::VolumeCreator.
void vol::BlendedVolumeCreator::updateGridWithData | ( | const RawObservationStruct & | ) | [virtual, inherited] |
Reimplemented from vol::VolumeCreator.
void vol::BlendedVolumeCreator::updateGridWithData | ( | const code::LatLonGrid & | , | |
const code::Time & | timeOfNewData, | |||
int | ht | |||
) | [virtual, inherited] |
Reimplemented from vol::VolumeCreator.
void vol::BlendedVolumeCreator::updateGridWithData | ( | const RadialSetLookup & | , | |
const code::DataConverter::RadialSetLookup & | , | |||
const code::RadialSet & | , | |||
const code::Time & | timeOfNewData | |||
) | [virtual, inherited] |
friend class BlendedVolumeCreator::BlendMap [friend, inherited] |
float vol::ExpTimeDistVolumeCreator::DistanceVariance [static, protected] |
std::map<float,unsigned short> vol::ExpTimeDistVolumeCreator::distwt_inverse_lookup [static, protected] |
std::vector<float> vol::ExpTimeDistVolumeCreator::distwt_lookup [static, protected] |
TimeUpdater vol::VolumeCreator::myAgeOffTime [protected, inherited] |
code::LatLonHeightGrid vol::VolumeCreator::myCurrentGrid [protected, inherited] |
code::SmartPtr<code::IndexRecordNotifier> vol::VolumeCreator::myLB [protected, inherited] |
std::string vol::VolumeCreator::myOutputDir [protected, inherited] |
float vol::ExpTimeDistVolumeCreator::TimeVariance [static, protected] |
float vol::ExpTimeDistVolumeCreator::Variance [static, protected] |