Inheritance diagram for w2kmeans::SwathAdvector< GridType >:
Public Member Functions | |
SwathAdvector (const code::TimeInterval &howFarAhead, const std::string &filtername) | |
Use this advector if you are interested in creating tracks that denote the maximum value at a location in the next N minutes. | |
virtual | ~SwathAdvector () |
void | setAdvectInterval (const code::TimeInterval &howFarAhead) |
to change interval after creation. | |
void | setPreferredScale (size_t newScale) |
Set the scale of regions to follow. | |
void | setMaxIsBetter (bool flag) |
Are smaller values storms (as in infrared temperature) or bigger values (as in radar reflectivity)? | |
void | setAccelerationCorrection (bool flag) |
Should we do acceleration correction? By default, we dont. | |
virtual void | handleMotionEstimate (const GridType &east, const GridType &south, const GridType &incRate, size_t scale, bool complete) |
simply updates its internal motion vector storage. | |
bool | advect (GridType &data) |
advects the data given, returning true if the advection happened. | |
bool | hasValidMotionEstimate (const code::Time &t) const |
is the motion estimate that we have valid at this time? | |
const code::TimeInterval & | getAdvectInterval () const |
void | setPostprocessingFilter (code::SmartPtr< w2img::ImageFilter > newFilter) |
Add a postprocessing filter on the advected locations. | |
void | setRateOfIncreaseFlag (bool inFlag) |
void | setConstantUVFlag (bool inFlag) |
By default, every grid point receives a different motion vector, but you can ask for a constant UV to be applied to the entire field by setting this flag. | |
void | setMaxRateOfIncrease (double maxGrowth, double maxDecay) |
void | setSplatting (bool) |
turn on/off splatting during advection. | |
virtual void | handleIntermediateProduct (const code::DataType &prod) |
Protected Member Functions | |
virtual bool | doAdvect (const code::Image< float > &orig, const std::string &productName, code::Image< float > *result, double xscale, double yscale, double secs, int directionFactor, const GridType &motx, const GridType &moty, const GridType &growth) |
does a PUT in a swath sense. | |
virtual void | setOutputTypeName (GridType &data) |
Output is InTypeTrack_xxxMin and uses InType colormap. | |
bool | advect (const GridType &data, const std::string &productName, code::Image< float > *result, double xscale, double yscale, double secs) |
template method that sets up the motion estimates and then calls doAdvect | |
virtual std::pair< GridType, GridType > | doChangeMotionVectors (const GridType &motx, const GridType &moty, double xscale, double yscale, double secs) |
Subclasses can over-ride this method to change the motion vector before it is presented to doAdvect. | |
void | setSplatWeights (const code::Image< float > &wts) |
the default splat-weights is a Cressman kernel of radius 3 | |
const code::Image< float > & | getSplatWeights () const |
float | getForecastValue (float inval, float secs, float growth, int directionFactor) const |
Static Protected Member Functions | |
static void | setValueIfBetter (code::Image< float > *result, int x, int y, double value, bool is_max_better) |
static void | setValueIfBetter (code::Image< float > *result, int x, int y, double value, const code::Image< float > &splatWeights, bool is_max_better) |
w2kmeans::SwathAdvector< GridType >::SwathAdvector | ( | const code::TimeInterval & | howFarAhead, | |
const std::string & | filtername | |||
) |
Use this advector if you are interested in creating tracks that denote the maximum value at a location in the next N minutes.
The filtername is of the form swath:operation:unit:colormap:[extraopts] The unit and colormap refer to the output swath grid.
Operations allowed include: max and ratesum
ratesum allows a correction factor. This class assumes that rates in the grid to be advected are per-hour. Provide a factor of 60 if the rates are actually per-minute. So, for example, you could accumulate preciprate grids that are in mm/hr using: swath:ratesum:mm:PrecipTot:1.0
virtual w2kmeans::SwathAdvector< GridType >::~SwathAdvector | ( | ) | [inline, virtual] |
bool w2kmeans::MotionAdvector< GridType >::advect | ( | const GridType & | data, | |
const std::string & | productName, | |||
code::Image< float > * | result, | |||
double | xscale, | |||
double | yscale, | |||
double | secs | |||
) | [protected, inherited] |
template method that sets up the motion estimates and then calls doAdvect
bool w2kmeans::MotionAdvector< GridType >::advect | ( | GridType & | data | ) | [inherited] |
advects the data given, returning true if the advection happened.
virtual bool w2kmeans::SwathAdvector< GridType >::doAdvect | ( | const code::Image< float > & | orig, | |
const std::string & | productName, | |||
code::Image< float > * | result, | |||
double | xscale, | |||
double | yscale, | |||
double | secs, | |||
int | directionFactor, | |||
const GridType & | motx, | |||
const GridType & | moty, | |||
const GridType & | growth | |||
) | [protected, virtual] |
virtual std::pair<GridType,GridType> w2kmeans::MotionAdvector< GridType >::doChangeMotionVectors | ( | const GridType & | motx, | |
const GridType & | moty, | |||
double | xscale, | |||
double | yscale, | |||
double | secs | |||
) | [inline, protected, virtual, inherited] |
Subclasses can over-ride this method to change the motion vector before it is presented to doAdvect.
const code::TimeInterval& w2kmeans::MotionAdvector< GridType >::getAdvectInterval | ( | ) | const [inline, inherited] |
float w2kmeans::MotionAdvector< GridType >::getForecastValue | ( | float | inval, | |
float | secs, | |||
float | growth, | |||
int | directionFactor | |||
) | const [inline, protected, inherited] |
const code::Image<float>& w2kmeans::MotionAdvector< GridType >::getSplatWeights | ( | ) | const [inline, protected, inherited] |
virtual void w2kmeans::MotionEstimateHandler< GridType >::handleIntermediateProduct | ( | const code::DataType & | prod | ) | [virtual, inherited] |
virtual void w2kmeans::MotionAdvector< GridType >::handleMotionEstimate | ( | const GridType & | east, | |
const GridType & | south, | |||
const GridType & | incRate, | |||
size_t | scale, | |||
bool | complete | |||
) | [virtual, inherited] |
simply updates its internal motion vector storage.
Actual advection is done using this estimate by the advect methods.
Implements w2kmeans::MotionEstimateHandler< GridType >.
bool w2kmeans::MotionAdvector< GridType >::hasValidMotionEstimate | ( | const code::Time & | t | ) | const [inherited] |
is the motion estimate that we have valid at this time?
void w2kmeans::MotionAdvector< GridType >::setAccelerationCorrection | ( | bool | flag | ) | [inline, inherited] |
Should we do acceleration correction? By default, we dont.
void w2kmeans::MotionAdvector< GridType >::setAdvectInterval | ( | const code::TimeInterval & | howFarAhead | ) | [inherited] |
to change interval after creation.
void w2kmeans::MotionAdvector< GridType >::setConstantUVFlag | ( | bool | inFlag | ) | [inline, inherited] |
By default, every grid point receives a different motion vector, but you can ask for a constant UV to be applied to the entire field by setting this flag.
void w2kmeans::MotionAdvector< GridType >::setMaxIsBetter | ( | bool | flag | ) | [inherited] |
Are smaller values storms (as in infrared temperature) or bigger values (as in radar reflectivity)?
By default, larger values are better i.e. flag is true.
void w2kmeans::MotionAdvector< GridType >::setMaxRateOfIncrease | ( | double | maxGrowth, | |
double | maxDecay | |||
) | [inherited] |
virtual void w2kmeans::SwathAdvector< GridType >::setOutputTypeName | ( | GridType & | data | ) | [protected, virtual] |
Output is InTypeTrack_xxxMin and uses InType colormap.
Reimplemented from w2kmeans::MotionAdvector< GridType >.
void w2kmeans::MotionAdvector< GridType >::setPostprocessingFilter | ( | code::SmartPtr< w2img::ImageFilter > | newFilter | ) | [inline, inherited] |
Add a postprocessing filter on the advected locations.
by default, there is no postprocessing done on these.
void w2kmeans::MotionAdvector< GridType >::setPreferredScale | ( | size_t | newScale | ) | [inherited] |
Set the scale of regions to follow.
By default, we follow the 1st scale ( 0 is most detailed ) and for every 30 min advance, we go up 1. So a 60min forecaster prefers scale=2, 90min-->3 and so on. Use this method to change this default.
void w2kmeans::MotionAdvector< GridType >::setRateOfIncreaseFlag | ( | bool | inFlag | ) | [inline, inherited] |
void w2kmeans::MotionAdvector< GridType >::setSplatting | ( | bool | ) | [inherited] |
turn on/off splatting during advection.
By default, splatting is off.
void w2kmeans::MotionAdvector< GridType >::setSplatWeights | ( | const code::Image< float > & | wts | ) | [protected, inherited] |
the default splat-weights is a Cressman kernel of radius 3
static void w2kmeans::MotionAdvector< GridType >::setValueIfBetter | ( | code::Image< float > * | result, | |
int | x, | |||
int | y, | |||
double | value, | |||
const code::Image< float > & | splatWeights, | |||
bool | is_max_better | |||
) | [static, protected, inherited] |
static void w2kmeans::MotionAdvector< GridType >::setValueIfBetter | ( | code::Image< float > * | result, | |
int | x, | |||
int | y, | |||
double | value, | |||
bool | is_max_better | |||
) | [static, protected, inherited] |