Inheritance diagram for w2kmeans::PutGetAdvector< GridType >:
Public Member Functions | |
PutGetAdvector (const code::TimeInterval &howFarAhead) | |
virtual | ~PutGetAdvector () |
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 followed by fillUnmarkedPixels | |
virtual void | fillUnmarkedPixels (const code::Image< float > &orig, code::Image< float > *result, double xscale, double yscale, double secs, int directionFactor, const GridType &motx, const GridType &moty, const GridType &growth, code::Image< int > &marked) |
A method called by doAdvect. | |
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. | |
virtual void | setOutputTypeName (GridType &data) |
set the output typename and colormap. | |
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::PutGetAdvector< GridType >::PutGetAdvector | ( | const code::TimeInterval & | howFarAhead | ) |
virtual w2kmeans::PutGetAdvector< GridType >::~PutGetAdvector | ( | ) | [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::PutGetAdvector< 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.
virtual void w2kmeans::PutGetAdvector< GridType >::fillUnmarkedPixels | ( | const code::Image< float > & | orig, | |
code::Image< float > * | result, | |||
double | xscale, | |||
double | yscale, | |||
double | secs, | |||
int | directionFactor, | |||
const GridType & | motx, | |||
const GridType & | moty, | |||
const GridType & | growth, | |||
code::Image< int > & | marked | |||
) | [protected, virtual] |
A method called by doAdvect.
Normal advection will be full of holes. The pixels in the result that are filled by the advect method are marked.
The method in this class is to do a "GET" at all unmarked points that do have velocity estimates to "GET" the pixel from the place that it would have moved from.
Over-riders should turn "marked" to 1 and fill the "result".
Reimplemented in w2kmeans::CressmanAdvector< GridType >.
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::MotionAdvector< GridType >::setOutputTypeName | ( | GridType & | data | ) | [protected, virtual, inherited] |
set the output typename and colormap.
The default is use Intype_xxxmin and the same color map as the original product.
Reimplemented in w2kmeans::ProbabilisticAdvector< GridType >, and w2kmeans::SwathAdvector< 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] |