# MI - Fimex: MetNoFelt::Felt_Array2 Class Reference

# MetNoFelt::Felt_Array2 Class Reference

A collection of FeltFields to build a 4-dimensional data array for 1-parameter and 1-vertical coordinate. More...

`#include <Felt_Array2.h>`

List of all members.

## Public Member Functions

| Felt_Array2 (const string name, const boost::shared_ptr< felt::FeltField > feltField, const string &dataType, double fillValue)
virtual | ~Felt_Array2 ()
void | addInformationByField (boost::shared_ptr< felt::FeltField > field) throw (Felt_File_Error)
const string & | getName () const
| get the time/level independent data-header
const string & | getDatatype () const
int | getGrid (boost::posix_time::ptime time, LevelPair levelPair, vector< short > &gridOut) throw (Felt_File_Error)
int | getGridAllowDelta (boost::posix_time::ptime time, LevelPair levelPair, vector< short > &gridOut, const boost::array< float, 6 > &gridParameterDelta) throw (Felt_File_Error)
int | getLevelType () const
| get the felt level type of this array
double | getFillValue () const
vector< boost::posix_time::ptime > | getTimes () const
vector< boost::posix_time::ptime > | getReferenceTimes () const
vector< LevelPair > | getLevelPairs () const
int | getIdent19 (boost::posix_time::ptime time, LevelPair levelPair) const throw (Felt_File_Error)
int | getX () const
int | getY () const
int | scaleFactor () const
double | getScalingFactor () const
boost::shared_ptr < felt::FeltGridDefinition > | getGridDefinition () const
int | getGridType () const
bool | hasTime () const
const boost::shared_ptr < felt::FeltField > | getField (boost::posix_time::ptime time, LevelPair levelPair) const throw (Felt_File_Error)

## Detailed Description

A collection of FeltFields to build a 4-dimensional data array for 1-parameter and 1-vertical coordinate.

A Felt_Array2 collects all felt::FeltField from a felt::FeltFile with the same parameter and vertical coordinate. It is possible to access the data of such each layer.

## Constructor & Destructor Documentation

MetNoFelt::Felt_Array2::Felt_Array2 | ( | const string | name,
|  | const boost::shared_ptr< felt::FeltField > | feltField,
|  | const string & | dataType,
|  | double | fillValue |
| ) |  |  | `[explicit]`

constructor applying the parameter name and the felt description from the first feltField

Parameters:

  | name | parameter name
  | field | a field added to this constructor
  | dataType | short|float|double datatype used for autoscaling, getScalingFactor() will be always return 1 for float and double
  | fillValue | fillValue of the datatype, usually -32767

virtual MetNoFelt::Felt_Array2::~Felt_Array2 | ( |  | ) | `[virtual]`

## Member Function Documentation

void MetNoFelt::Felt_Array2::addInformationByField | ( | boost::shared_ptr< felt::FeltField > | field | ) | throw (Felt_File_Error)

add information from the felt-index (usually retrieved from qfelt) to this Felt_Array2 the index given here must correspond to the initialization index

const string& MetNoFelt::Felt_Array2::getName | ( |  | ) | const

get the time/level independent data-header

return the parameter name

const string& MetNoFelt::Felt_Array2::getDatatype | ( |  | ) | const`[inline]`

return the datatype as string short|float|double

int MetNoFelt::Felt_Array2::getGrid | ( | boost::posix_time::ptime | time,
|  | LevelPair | levelPair,
|  | vector< short > & | gridOut |
| ) |  |  | throw (Felt_File_Error)

read a grid for a time and a levelPair

Parameters:

  | time | The time of the field
  | levelPair | The levelPair of the field
  | gridOut | The data of this field will be put into this grid

Returns:
  the scaleFactor as tenth exponent of this field (grid * 10^scaleFactor)

Exceptions:

  | Felt_File_Error | if the gridDefinition (gridType or gridParameters) change

int MetNoFelt::Felt_Array2::getGridAllowDelta | ( | boost::posix_time::ptime | time,
|  | LevelPair | levelPair,
|  | vector< short > & | gridOut,
|  | const boost::array< float, 6 > & | gridParameterDelta |
| ) |  |  | throw (Felt_File_Error)

same as getGrid, but the gridParameters to change up to the value provided in gridParameterDelta

int MetNoFelt::Felt_Array2::getLevelType | ( |  | ) | const

get the felt level type of this array

double MetNoFelt::Felt_Array2::getFillValue | ( |  | ) | const`[inline]`

return the changed fill used in Felt_File::getScaledDataSlice

vector<boost::posix_time::ptime> MetNoFelt::Felt_Array2::getTimes | ( |  | ) | const

return the times available for this parameter, sorted

vector<boost::posix_time::ptime> MetNoFelt::Felt_Array2::getReferenceTimes | ( |  | ) | const

return the reference-times for this parameter, sorted by getTimes()

vector<LevelPair> MetNoFelt::Felt_Array2::getLevelPairs | ( |  | ) | const

return the level pairs (niveau 1, niveau 2) for this parameter as used by hybrid levels

int MetNoFelt::Felt_Array2::getIdent19 | ( | boost::posix_time::ptime | time,
|  | LevelPair | levelPair |
| ) |  |  | const throw (Felt_File_Error)

get the ident19 parameter from the data-header, throw error if levelPair/time doesn't exists

Warning:
  only ident19 of data already read will be taken into account

int MetNoFelt::Felt_Array2::getX | ( |  | ) | const

return x/longitude size

int MetNoFelt::Felt_Array2::getY | ( |  | ) | const

return y/latitude size

int MetNoFelt::Felt_Array2::scaleFactor | ( |  | ) | const

get the files scaleFactor, this corresponds to scalingFactor by 10^(scaleFactor) == scalingFactor

double MetNoFelt::Felt_Array2::getScalingFactor | ( |  | ) | const

return scalingFactor

boost::shared_ptr<felt::FeltGridDefinition> MetNoFelt::Felt_Array2::getGridDefinition | ( |  | ) | const

int MetNoFelt::Felt_Array2::getGridType | ( |  | ) | const

bool MetNoFelt::Felt_Array2::hasTime | ( |  | ) | const

Returns:
  true if grid has a time-axis, i.e. not a parameter field

const boost::shared_ptr<felt::FeltField> MetNoFelt::Felt_Array2::getField | ( | boost::posix_time::ptime | time,
|  | LevelPair | levelPair |
| ) |  |  | const throw (Felt_File_Error)

The documentation for this class was generated from the following file:

- include/fimex/Felt_Array2.h