MI - Fimex
|
#include <fimex/coordSys/verticalTransform/VerticalTransformation.h>
Public Member Functions | |
virtual | ~VerticalTransformation () |
virtual std::string | getName () const =0 |
the indentifier of the vertical transformation More... | |
virtual std::string | getParameterString () const =0 |
list the parameters More... | |
virtual int | getPreferredVerticalType () const =0 |
the most natural vertical type, one of the MIFI_VINT_* in fimex/mifi_constants.h More... | |
virtual bool | isComplete () const =0 |
virtual boost::shared_ptr< ToVLevelConverter > | getConverter (const boost::shared_ptr< CDMReader > &reader, int verticalType, size_t unLimDimPos, boost::shared_ptr< const CoordinateSystem > cs, size_t nx, size_t ny, size_t nz, size_t nt) const |
boost::shared_ptr< ToVLevelConverter > | getConverter (const boost::shared_ptr< CDMReader > &reader, int verticalType, size_t unLimDimPos, boost::shared_ptr< const CoordinateSystem > cs) const |
same as getConverter, but determines nx, nz, nt using MetNoFimex::getSimpleAxes from CDMUtils More... | |
Protected Member Functions | |
virtual boost::shared_ptr< ToVLevelConverter > | getPressureConverter (const boost::shared_ptr< CDMReader > &reader, size_t unLimDimPos, boost::shared_ptr< const CoordinateSystem > cs, size_t nx, size_t ny, size_t nt) const =0 |
virtual boost::shared_ptr< ToVLevelConverter > | getAltitudeConverter (const boost::shared_ptr< CDMReader > &reader, size_t unLimDimPos, boost::shared_ptr< const CoordinateSystem > cs, size_t nx, size_t ny, size_t nz, size_t nt) const |
virtual boost::shared_ptr< ToVLevelConverter > | getHeightConverter (const boost::shared_ptr< CDMReader > &reader, size_t unLimDimPos, boost::shared_ptr< const CoordinateSystem > cs, size_t nx, size_t ny, size_t nz, size_t nt) const |
Base class for vertical transformations like AtmosphereSigma coordinate or OceanSG1 coordinate, and for completeness also Pressure and Height. Vertical-transformation are usually accessed by CoordinateSystem::getVerticalTransformation:
The qualified names of the VerticalTransformation classes can be found in the respectiv classes inheriting from VerticalTransformation, found in fimex/coordSys/verticalTransform/ *.h . The member-names of the sub-classes describe the parametrization of the VerticalTransformation, and their values reflect the variable-names.
|
inlinevirtual |
|
protectedvirtual |
Default implementation: Convert to altitude (height above MSL) with pressure(-converter) and standard atmosphere.
reader | |
unLimDimPos | |
cs | |
nx | |
ny | |
nz | |
nt |
Reimplemented in MetNoFimex::OceanSG1, and MetNoFimex::Height.
Referenced by ~VerticalTransformation().
|
virtual |
get a converter. Pressure will be in unit hPa, height/depth in unit m.
reader | a reader to fetch the data from |
verticalType | one of the MIFI_VINT_* in fimex/mifi_constants.h |
unLimDimPos | the unlimited position to start at |
cs | the coordinate system one is interested in |
nx | x-size of the resulting data |
ny | y-size of the resulting data |
nz | z-size of the resulting data |
nt | The final t-size will be nt-unLimDimPos. |
Referenced by ~VerticalTransformation().
boost::shared_ptr<ToVLevelConverter> MetNoFimex::VerticalTransformation::getConverter | ( | const boost::shared_ptr< CDMReader > & | reader, |
int | verticalType, | ||
size_t | unLimDimPos, | ||
boost::shared_ptr< const CoordinateSystem > | cs | ||
) | const |
same as getConverter, but determines nx, nz, nt using MetNoFimex::getSimpleAxes from CDMUtils
|
protectedvirtual |
Default implementation: Convert to height above ground with pressure(-converter) and standard atmosphere.
reader | |
unLimDimPos | |
cs | |
nx | |
ny | |
nz | |
nt |
Reimplemented in MetNoFimex::Height.
Referenced by ~VerticalTransformation().
|
pure virtual |
the indentifier of the vertical transformation
Implemented in MetNoFimex::OceanSG1, MetNoFimex::OceanSG2, MetNoFimex::HybridSigmaPressure1, MetNoFimex::HybridSigmaPressure2, MetNoFimex::AtmosphereSigma, MetNoFimex::LnPressure, MetNoFimex::Pressure, and MetNoFimex::Height.
Referenced by ~VerticalTransformation().
|
pure virtual |
list the parameters
Implemented in MetNoFimex::OceanSG1, MetNoFimex::HybridSigmaPressure1, MetNoFimex::HybridSigmaPressure2, MetNoFimex::AtmosphereSigma, MetNoFimex::LnPressure, MetNoFimex::Pressure, and MetNoFimex::Height.
Referenced by ~VerticalTransformation().
|
pure virtual |
the most natural vertical type, one of the MIFI_VINT_* in fimex/mifi_constants.h
Implemented in MetNoFimex::OceanSG1, MetNoFimex::HybridSigmaPressure1, MetNoFimex::HybridSigmaPressure2, MetNoFimex::AtmosphereSigma, MetNoFimex::LnPressure, MetNoFimex::Pressure, and MetNoFimex::Height.
Referenced by ~VerticalTransformation().
|
protectedpure virtual |
|
pure virtual |
Indicate if all parameters are given to fully describe the transformation.
Even a fully described transformation does not guarantee that a converter exists (e.g. height -> altitude requires in addition topography).
And converters might exist, even if a transformation is not complete.
Implemented in MetNoFimex::OceanSG1, MetNoFimex::HybridSigmaPressure1, MetNoFimex::HybridSigmaPressure2, MetNoFimex::AtmosphereSigma, MetNoFimex::LnPressure, MetNoFimex::Pressure, and MetNoFimex::Height.
Referenced by ~VerticalTransformation().