|
| CDMInterpolator (boost::shared_ptr< CDMReader > dataReader) |
|
virtual | ~CDMInterpolator () |
|
virtual DataPtr | getDataSlice (const std::string &varName, size_t unLimDimPos=0) |
| retrieve data from the underlying dataReader and interpolate the values due to the current projection More...
|
|
virtual DataPtr | getDataSlice (const std::string &varName, const SliceBuilder &sb) |
| retrieve data from the underlying dataReader and interpolate the values due to the current projection More...
|
|
virtual void | changeProjection (int method, const std::string &proj_input, const std::vector< double > &out_x_axis, const std::vector< double > &out_y_axis, const std::string &out_x_axis_unit, const std::string &out_y_axis_unit, CDMDataType out_x_axis_type, CDMDataType out_y_axis_type) |
| change the (main) projection of the dataReaders cdm to this new projection More...
|
|
| MIFI_DEPRECATED (virtual void changeProjection(int method, const std::string &proj_input, const std::vector< double > &out_x_axis, const std::vector< double > &out_y_axis, const std::string &out_x_axis_unit, const std::string &out_y_axis_unit)) |
| change the (main) projection of the dataReaders cdm to this new projection More...
|
|
virtual void | changeProjection (int method, const std::string &proj_input, const std::string &out_x_axis, const std::string &out_y_axis, const std::string &out_x_axis_unit, const std::string &out_y_axis_unit, const std::string &out_x_axis_type="double", const std::string &out_y_axis_type="double") |
| change the (main) projection of the dataReaders cdm to this new projection More...
|
|
virtual void | changeProjection (int method, const std::string &netcdf_template_file) |
| change the (main) projection of the dataReaders cdm to this new projection More...
|
|
virtual void | changeProjection (int method, const std::vector< double > &lonVals, const std::vector< double > &latVals) |
| extract/interpolate a list of lat/lon points More...
|
|
virtual void | changeProjectionToCrossSections (int method, const std::vector< CrossSectionDefinition > &crossSections) |
|
virtual void | setLatitudeName (const std::string &latName) |
|
virtual const std::string & | getLatitudeName () const |
|
virtual void | setLongitudeName (const std::string &lonName) |
|
virtual const std::string & | getLongitudeName () const |
|
virtual double | getMaxDistanceOfInterest (const std::vector< double > &out_y_axis, const std::vector< double > &out_x_axis, bool isMetric) const |
|
virtual void | setDistanceOfInterest (double dist) |
|
virtual void | addPreprocess (boost::shared_ptr< InterpolatorProcess2d > process) |
|
virtual void | addPostprocess (boost::shared_ptr< InterpolatorProcess2d > process) |
|
| CDMReader () |
|
virtual | ~CDMReader () |
|
virtual const CDM & | getCDM () const |
|
virtual CDM & | getInternalCDM () |
|
virtual std::vector< std::size_t > | getDims (std::string varName) |
| Read the sizes of the dimensions belonging to a variable. More...
|
|
virtual std::vector< std::size_t > | getDimsSlice (std::string varName) |
| Read the sizes of the dimensions belonging to a variable slice. More...
|
|
virtual DataPtr | getData (const std::string &varName) |
| data-reading function to be called from the CDMWriter More...
|
|
virtual DataPtr | getScaledDataSlice (const std::string &varName, size_t unLimDimPos) |
| read and scale a dataslice More...
|
|
virtual DataPtr | getScaledDataSliceInUnit (const std::string &varName, const std::string &unit, size_t unLimDimPos) |
| read and scale a dataslice to a known unit More...
|
|
virtual DataPtr | getScaledDataSlice (const std::string &varName, const SliceBuilder &sb) |
| read and scale a dataslice More...
|
|
virtual DataPtr | getScaledDataSliceInUnit (const std::string &varName, const std::string &unit, const SliceBuilder &sb) |
| read and scale a dataslice to a set unit More...
|
|
virtual DataPtr | getScaledData (const std::string &varName) |
| read and scale the complete data More...
|
|
virtual DataPtr | getScaledDataInUnit (const std::string &varName, const std::string &unit) |
| read and scale the complete data to a set unit More...
|
|
This class is responsible for horizontal reprojections and selection of latitude longitude points.
Vectors in the direction of x/y axes are automatically reprojected if:
- the vector is marked by ''spatial_direction'' markup
- the vector can be detected by the coordinate-system, e.g. CF standard-name
- the method allows detection of x and y axes, e.g. changeProjectionByProjectionParameters or changeProjectionByProjectionParametersToLatLonTemplate
virtual void MetNoFimex::CDMInterpolator::changeProjection |
( |
int |
method, |
|
|
const std::string & |
netcdf_template_file |
|
) |
| |
|
virtual |
change the (main) projection of the dataReaders cdm to this new projection
Interpolate/extract latitude/longitude values from regularly gridded input to latitude/longitude values given from a netcdf CF-template . The template must at least contain the information given in this example:
netcdf template4interpolation {
dimensions:
x = 4 ;
y = 1 ;
variables:
int x(x) ;
x:standard_name = "projection_x_coordinate" ;
x:units = "m" ; // meters in a unspecified coordinate system
int y(y) ;
y:standard_name = "projection_y_coordinate" ;
y:units = "m" ; // meters in a unspecified coordinate system
float latitude(y, x) ;
latitude:standard_name = "latitude" ;
latitude:units = "degrees_north" ;
float longitude(y, x) ;
longitude:standard_name = "longitude" ;
longitude:units = "degrees_east" ;
float referenceVariable(y, x) ;
referenceVariable:coordinates = "longitude latitude" ;
// global attributes:
:Conventions = "CF-1.4" ;
data:
x = 0, 1, 2, 3; // just a list
y = 0; // just a list
latitude = 60, 60, 60.1, 45.4;
longitude = 10, 9, 9, 17;
// no data required for 'referenceVariable'
}
- Parameters
-
method | Interpolation method, only nearestneighbor, bilinear and bicubic supported |
netcdf_template_file | input-string for netcf template filename |