nidas v1.2.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | List of all members
nidas::core::Polynomial Class Reference

#include <VariableConverter.h>

Inheritance diagram for nidas::core::Polynomial:
Inheritance graph
[legend]

Public Member Functions

 Polynomial ()
 
Polynomialclone () const
 
void setCoefficients (const std::vector< float > &vals)
 
void setCoefficients (const float *fp, unsigned int n)
 
const std::vector< float > & getCoefficients () const
 
const floatgetCoefficients (unsigned int &n) const
 
double convert (dsm_time_t t, double val)
 
void reset ()
 Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
 
void parseFields (CalFile *cf)
 Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.
 
virtual std::string toString () const override
 Generate a string description of this VariableConverter.
 
void fromString (const std::string &)
 
void fromDOMElement (const xercesc::DOMElement *)
 
virtual void readCalFile (dsm_time_t) throw ()
 Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists, needs to be advanced to the right record for the current sample time.
 
void setCalFileHandler (CalFileHandler *)
 Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records.
 
void setUnits (const std::string &val)
 
virtual const std::string & getUnits () const
 
void setVariable (const Variable *val)
 
const VariablegetVariable () const
 
const DSMSensorgetDSMSensor () const
 
const DSMConfiggetDSMConfig () const
 
void addParameter (Parameter *val)
 Add a parameter to this VariableConverter.
 
const std::list< const Parameter * > & getParameters () const
 Get list of parameters.
 
const ParametergetParameter (const std::string &name) const
 Fetch a parameter by name.
 
void setCalFile (CalFile *)
 
CalFilegetCalFile ()
 
const CalFilegetCalFile () const
 
virtual xercesc::DOMElement * toDOMParent (xercesc::DOMElement *parent, bool complete) const
 Create a DOMElement and append it to the parent.
 
virtual xercesc::DOMElement * toDOMElement (xercesc::DOMElement *node, bool complete) const
 Add my content into a DOMElement.
 

Static Public Member Functions

static double eval (double x, float *p, unsigned int np)
 This is static and defined inline below so the implementation can be shared with at least the one class in dynld which uses it: ParoSci_202BG_Calibration.
 
static VariableConvertercreateVariableConverter (XDOMElement &child)
 
static VariableConvertercreateFromString (const std::string &)
 
static const XMLChgetNamespaceURI ()
 

Protected Member Functions

void abortCalFile (const std::string &what)
 

Protected Attributes

CalFile_calFile
 
CalFileHandler_handler
 

Private Attributes

std::vector< float_coefs
 
std::string _units
 
std::map< std::string, Parameter * > _parameters
 Map of parameters by name.
 
std::list< const Parameter * > _constParameters
 List of const pointers to Parameters for providing via getParameters().
 
const Variable_variable
 

Static Private Attributes

static XMLChnamespaceURI = 0
 

Constructor & Destructor Documentation

◆ Polynomial()

Polynomial::Polynomial ( )

References setCoefficients().

Referenced by clone().

Member Function Documentation

◆ abortCalFile()

void VariableConverter::abortCalFile ( const std::string & what)
protectedinherited

◆ addParameter()

void VariableConverter::addParameter ( Parameter * val)
inherited

◆ clone()

Polynomial * Polynomial::clone ( ) const
virtual

◆ convert()

double Polynomial::convert ( dsm_time_t t,
double val )
virtual

◆ createFromString()

VariableConverter * VariableConverter::createFromString ( const std::string & str)
staticinherited

◆ createVariableConverter()

VariableConverter * VariableConverter::createVariableConverter ( XDOMElement & child)
staticinherited

◆ eval()

double nidas::core::Polynomial::eval ( double x,
float * p,
unsigned int np )
inlinestatic

This is static and defined inline below so the implementation can be shared with at least the one class in dynld which uses it: ParoSci_202BG_Calibration.

References nidas::core::getSample().

Referenced by nidas::dynld::ParoSci_202BG_Calibration::computePressure(), nidas::dynld::ParoSci_202BG_Calibration::computeTemperature(), and convert().

◆ fromDOMElement()

void Polynomial::fromDOMElement ( const xercesc::DOMElement * node)
virtual

◆ fromString()

void Polynomial::fromString ( const std::string & str)
virtual

◆ getCalFile() [1/2]

CalFile * nidas::core::VariableConverter::getCalFile ( )
inlineinherited

◆ getCalFile() [2/2]

const CalFile * nidas::core::VariableConverter::getCalFile ( ) const
inlineinherited

◆ getCoefficients() [1/2]

const std::vector< float > & nidas::core::Polynomial::getCoefficients ( ) const
inline

◆ getCoefficients() [2/2]

const float * nidas::core::Polynomial::getCoefficients ( unsigned int & n) const
inline

References _coefs.

◆ getDSMConfig()

const DSMConfig * VariableConverter::getDSMConfig ( ) const
inherited

◆ getDSMSensor()

const DSMSensor * VariableConverter::getDSMSensor ( ) const
inherited

◆ getNamespaceURI()

static const XMLCh * nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited

◆ getParameter()

const Parameter * VariableConverter::getParameter ( const std::string & name) const
inherited

Fetch a parameter by name.

Returns a NULL pointer if no such parameter exists.

References nidas::core::VariableConverter::_parameters.

Referenced by nidas::dynld::isff::CS_Krypton::fromDOMElement().

◆ getParameters()

const std::list< const Parameter * > & nidas::core::VariableConverter::getParameters ( ) const
inlineinherited

Get list of parameters.

References nidas::core::VariableConverter::_constParameters.

◆ getUnits()

virtual const std::string & nidas::core::VariableConverter::getUnits ( ) const
inlinevirtualinherited

◆ getVariable()

const Variable * nidas::core::VariableConverter::getVariable ( ) const
inlineinherited

◆ parseFields()

void Polynomial::parseFields ( CalFile * cf)
virtual

Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.

Implements nidas::core::VariableConverter.

References nidas::core::VariableConverter::_calFile, DLOG, nidas::util::UTime::format(), nidas::core::CalFile::getCurrentFileName(), nidas::core::getSample(), setCoefficients(), and WLOG.

◆ readCalFile()

void VariableConverter::readCalFile ( dsm_time_t t)
throw ( )
virtualinherited

Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists, needs to be advanced to the right record for the current sample time.

As records are read, this method calls parseFields() so the VariableConverter subclass can extract the particular information it needs from the CalFile fields, typically coefficients.

For sensors which need to extend the kind of conversions which can be specified by a CalFile, there is a callback function available. See setCalFileHandler().

References DLOG, nidas::util::UTime::format(), and nidas::core::getSample().

Referenced by nidas::core::Linear::convert(), convert(), nidas::dynld::isff::CS_Krypton::convert(), nidas::dynld::isff::RebsLinear::convert(), nidas::dynld::isff::NCAR_TRH::convertVariable(), and nidas::dynld::raf::SyncRecordSource::preLoadCalibrations().

◆ reset()

void Polynomial::reset ( )
virtual

Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.

Implements nidas::core::VariableConverter.

References nidas::core::getSample(), and setCoefficients().

◆ setCalFile()

void VariableConverter::setCalFile ( CalFile * val)
inherited

◆ setCalFileHandler()

void VariableConverter::setCalFileHandler ( CalFileHandler * cfh)
inherited

Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records.

Pass null to disable the callbacks.

References nidas::core::VariableConverter::_handler, and nidas::core::getSample().

◆ setCoefficients() [1/2]

void Polynomial::setCoefficients ( const float * fp,
unsigned int n )

References _coefs, fp, and nidas::core::getSample().

◆ setCoefficients() [2/2]

void Polynomial::setCoefficients ( const std::vector< float > & vals)

◆ setUnits()

void nidas::core::VariableConverter::setUnits ( const std::string & val)
inlineinherited

◆ setVariable()

void nidas::core::VariableConverter::setVariable ( const Variable * val)
inlineinherited

◆ toDOMElement()

xercesc::DOMElement * DOMable::toDOMElement ( xercesc::DOMElement * node,
bool complete ) const
virtualinherited

◆ toDOMParent()

xercesc::DOMElement * DOMable::toDOMParent ( xercesc::DOMElement * parent,
bool complete ) const
virtualinherited

Create a DOMElement and append it to the parent.

Exceptions
xercesc::DOMException

Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.

◆ toString()

std::string Polynomial::toString ( ) const
overridevirtual

Generate a string description of this VariableConverter.

May be used in meta-data, for example Netcdf comment.

Implements nidas::core::VariableConverter.

Reimplemented in nidas::dynld::isff::RebsLinear.

References _coefs, nidas::core::getSample(), and nidas::core::VariableConverter::getUnits().

Member Data Documentation

◆ _calFile

CalFile* nidas::core::VariableConverter::_calFile
protectedinherited

◆ _coefs

std::vector<float> nidas::core::Polynomial::_coefs
private

◆ _constParameters

std::list<const Parameter*> nidas::core::VariableConverter::_constParameters
privateinherited

◆ _handler

CalFileHandler* nidas::core::VariableConverter::_handler
protectedinherited

◆ _parameters

std::map<std::string,Parameter*> nidas::core::VariableConverter::_parameters
privateinherited

◆ _units

std::string nidas::core::VariableConverter::_units
privateinherited

◆ _variable

const Variable* nidas::core::VariableConverter::_variable
privateinherited

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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