MetNoFimex::CDMReader Class Reference

Basic interface for CDM reading and manipulation classes. More...

#include <CDMReader.h>

Inheritance diagram for MetNoFimex::CDMReader:

MetNoFimex::C_CDMReader MetNoFimex::CDMExtractor MetNoFimex::CDMInterpolator MetNoFimex::CDMQualityExtractor MetNoFimex::CDMTimeInterpolator MetNoFimex::FeltCDMReader MetNoFimex::FeltCDMReader2 MetNoFimex::GribCDMReader MetNoFimex::NcmlCDMReader MetNoFimex::NetCDF_CDMReader

List of all members.

Public Member Functions

 CDMReader ()
virtual ~CDMReader ()
virtual const CDMgetCDM () const
virtual boost::shared_ptr< DatagetDataSlice (const std::string &varName, size_t unLimDimPos)=0 throw (CDMException)
 data-reading function to be called from the CDMWriter
virtual boost::shared_ptr< DatagetDataSlice (const std::string &varName, const SliceBuilder &sb) throw (CDMException)
 data-reading function to be called from the CDMWriter
virtual boost::shared_ptr< DatagetData (const std::string &varName) throw (CDMException)
 data-reading function to be called from the CDMWriter
virtual boost::shared_ptr< DatagetScaledDataSlice (const std::string &varName, size_t unLimDimPos) throw (CDMException)
 read and scale a dataslice
virtual boost::shared_ptr< DatagetScaledDataSliceInUnit (const std::string &varName, const std::string &unit, size_t unLimDimPos) throw (CDMException)
 read and scale a dataslice to a known unit
virtual boost::shared_ptr< DatagetScaledDataSlice (const std::string &varName, const SliceBuilder &sb) throw (CDMException)
 read and scale a dataslice
virtual boost::shared_ptr< DatagetScaledDataSliceInUnit (const std::string &varName, const std::string &unit, const SliceBuilder &sb) throw (CDMException)
 read and scale a dataslice to a set unit
virtual boost::shared_ptr< DatagetScaledData (const std::string &varName) throw (CDMException)
 read and scale the complete data
virtual boost::shared_ptr< DatagetScaledDataInUnit (const std::string &varName, const std::string &unit) throw (CDMException)
 read and scale the complete data to a set unit

Protected Member Functions

virtual boost::shared_ptr< DatagetDataSliceFromMemory (const CDMVariable &variable, size_t unLimDimPos=0) throw (CDMException)

Protected Attributes

boost::shared_ptr< CDMcdm_


Detailed Description

Basic interface for CDM reading and manipulation classes.

The CDMReader is the basic interface for reading and manipulation of the cdm datastructure. The CDMWriter will work with an implementation of the CDMReader and read the included data in the cdm or the data provided through the implementation of the CDMReader#getDataSlice

See also:
FeltCDMReader

Constructor & Destructor Documentation

MetNoFimex::CDMReader::CDMReader (  ) 

virtual MetNoFimex::CDMReader::~CDMReader (  )  [inline, virtual]


Member Function Documentation

virtual const CDM& MetNoFimex::CDMReader::getCDM (  )  const [virtual]

Retrieve the cdm structure of this reader.

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getDataSlice ( const std::string varName,
size_t  unLimDimPos 
) throw (CDMException) [pure virtual]

data-reading function to be called from the CDMWriter

This methods needs to be implemented by the CDMReader. It should provide the data for each variable, either by reading from disk, converting from another CDMReader or reading from an in-memory data-section.

This function should retrieve the whole data for a dataset without unlimited dimension if the unLimDimPos == 0.

Parameters:
varName name of the variable to read
unLimDimPos (optional) if the variable contains a unlimited dimension (max one allowed) an slice of this position is returned

Implemented in MetNoFimex::C_CDMReader, MetNoFimex::CDMExtractor, MetNoFimex::CDMInterpolator, MetNoFimex::FeltCDMReader2, MetNoFimex::GribCDMReader, MetNoFimex::NcmlCDMReader, and MetNoFimex::NetCDF_CDMReader.

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getDataSlice ( const std::string varName,
const SliceBuilder sb 
) throw (CDMException) [virtual]

data-reading function to be called from the CDMWriter

Parameters:
varName name of the variable to read
sb a SliceBuilder generated from this CDMReaders CDM This method has a default implementation depending on getDataSlice(varName, unLimDimPos), but should be implemented for performance reasons.

Reimplemented in MetNoFimex::NetCDF_CDMReader.

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getData ( const std::string varName  )  throw (CDMException) [virtual]

data-reading function to be called from the CDMWriter

The getData function is a convenient function to retrieve all data from a file. It is implemented using getDataSlice. It should be used with care, since a complete variable might be bigger than available memory.

Parameters:
varName name of the variable to read

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getScaledDataSlice ( const std::string varName,
size_t  unLimDimPos 
) throw (CDMException) [virtual]

read and scale a dataslice

This functions uses getDataSlice internally. It tries to read "scale_factor" "add_offset" and "_FillValue" and apply the scaling to the read data. Output-datatype will be double, output _FillValue will be MIFI_UNDEFINED_D

Parameters:
varName name of the variable to read
unLimDimPos (optional) if the variable contains a unlimited dimension (max one allowed) an slice of this position is returned

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getScaledDataSliceInUnit ( const std::string varName,
const std::string unit,
size_t  unLimDimPos 
) throw (CDMException) [virtual]

read and scale a dataslice to a known unit

This functions uses getDataSlice internally. It tries to read "scale_factor" "add_offset" and "_FillValue" and apply the scaling to the read data. Output-datatype will be double, output _FillValue will be MIFI_UNDEFINED_D. The data will be converted to match unit.

Parameters:
varName name of the variable to read
unit unit-string
unLimDimPos (optional) if the variable contains a unlimited dimension (max one allowed) an slice of this position is returned

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getScaledDataSlice ( const std::string varName,
const SliceBuilder sb 
) throw (CDMException) [virtual]

read and scale a dataslice

Parameters:
varName name of the variable to read
sb SliceBuilder to restrict the data
See also:
getScaledDataSlice(varName, unLimDimPos)

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getScaledDataSliceInUnit ( const std::string varName,
const std::string unit,
const SliceBuilder sb 
) throw (CDMException) [virtual]

read and scale a dataslice to a set unit

Parameters:
varName name of the variable to read
unit unit string to scale to
sb SliceBuilder to restrict the data
See also:
getScaledDataSlice(varName, unLimDimPos)

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getScaledData ( const std::string varName  )  throw (CDMException) [virtual]

read and scale the complete data

This functions uses getData internally. It tries to read "scale_factor" "add_offset" and "_FillValue" and apply the scaling to the read data. Output-datatype will be double, output _FillValue will be MIFI_UNDEFINED_D.

Parameters:
varName name of the variable to read

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getScaledDataInUnit ( const std::string varName,
const std::string unit 
) throw (CDMException) [virtual]

read and scale the complete data to a set unit

This functions uses getData internally. It tries to read "scale_factor" "add_offset" and "_FillValue" and apply the scaling to the read data. Output-datatype will be double, output _FillValue will be MIFI_UNDEFINED_D. The data will be converted to match unit.

Parameters:
varName name of the variable to read
unit the unit-string to convert the data to

virtual boost::shared_ptr<Data> MetNoFimex::CDMReader::getDataSliceFromMemory ( const CDMVariable variable,
size_t  unLimDimPos = 0 
) throw (CDMException) [protected, virtual]

Read the data from the variable.hasData() and select the correct unLimDimPos. This function should be used internally from getDataSlice.

Parameters:
variable the variable to read data from
unLimDimPos (optional) the unlimited position


Member Data Documentation

boost::shared_ptr<CDM> MetNoFimex::CDMReader::cdm_ [protected]


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

Generated on Fri May 7 15:50:13 2010 for MI - Fimex by  doxygen 1.5.5