IODA
ioda::detail::DataLayoutPolicy_ObsGroup Class Reference

Layout for ObsGroup-like data. More...

#include <Layout_ObsGroup.h>

Inheritance diagram for ioda::detail::DataLayoutPolicy_ObsGroup:
Collaboration diagram for ioda::detail::DataLayoutPolicy_ObsGroup:

Public Member Functions

virtual ~DataLayoutPolicy_ObsGroup ()
 
void initializeStructure (Group_Base &) const override
 
std::string doMap (const std::string &) const override
 Map a user-specified Variable path to the correct location. More...
 
 DataLayoutPolicy_ObsGroup ()
 
std::string name () const override
 A descriptive name for the policy. More...
 
- Public Member Functions inherited from ioda::detail::DataLayoutPolicy
virtual ~DataLayoutPolicy ()
 
virtual bool isComplementary (const std::string &) const
 Check if the named variable will be a part of a derived variable. More...
 
virtual bool isMapped (const std::string &) const
 Check if the named variable is in the Variables section of the ODB mapping file. More...
 
virtual bool isMapOutput (const std::string &) const
 Check if the named variable matches one of the output (ioda) names. More...
 
virtual size_t getComplementaryPosition (const std::string &) const
 
virtual std::string getOutputNameFromComponent (const std::string &) const
 
virtual std::type_index getOutputVariableDataType (const std::string &) const
 
virtual MergeMethod getMergeMethod (const std::string &) const
 
virtual size_t getInputsNeeded (const std::string &) const
 
virtual std::pair< bool, std::string > getUnit (const std::string &) const
 
 DataLayoutPolicy ()
 

Static Private Attributes

static const int32_t ObsGroup_Layout_Version = 0
 Record versioning information for this layout in the ioda object. Provides forward compatability. More...
 

Additional Inherited Members

- Public Types inherited from ioda::detail::DataLayoutPolicy
enum class  Policies { None , ObsGroup , ObsGroupODB }
 
enum class  MergeMethod { Concat }
 
- Static Public Member Functions inherited from ioda::detail::DataLayoutPolicy
static std::shared_ptr< const DataLayoutPolicygenerate (const std::string &polid="")
 Factory generator. More...
 
static std::shared_ptr< const DataLayoutPolicygenerate (const std::string &polid, const std::string &mapPath, const std::vector< std::string > &nonODBVariables={})
 
static std::shared_ptr< const DataLayoutPolicygenerate (Policies pol=Policies::None)
 Factory generator. More...
 
static std::shared_ptr< const DataLayoutPolicygenerate (Policies pol, const std::string &mapPath, const std::vector< std::string > &nonODBVariables={})
 
static std::shared_ptr< const DataLayoutPolicy_py_generate1 (const std::string &polid)
 
static std::shared_ptr< const DataLayoutPolicy_py_generate2 (Policies pol)
 

Detailed Description

Layout for ObsGroup-like data.

Definition at line 26 of file Layout_ObsGroup.h.

Constructor & Destructor Documentation

◆ ~DataLayoutPolicy_ObsGroup()

ioda::detail::DataLayoutPolicy_ObsGroup::~DataLayoutPolicy_ObsGroup ( )
virtualdefault

◆ DataLayoutPolicy_ObsGroup()

ioda::detail::DataLayoutPolicy_ObsGroup::DataLayoutPolicy_ObsGroup ( )
default

Member Function Documentation

◆ doMap()

std::string ioda::detail::DataLayoutPolicy_ObsGroup::doMap ( const std::string &  str) const
overridevirtual

Map a user-specified Variable path to the correct location.

This allows us to keep the frontend paths consistent, and we can instead do a path transformation to hide implementation details from end users.

The default policy is to pass paths expressed with forward slashes ("MetaData/Longitude") unchanged. If we pass paths using '@' notation, then reverse the path component (i.e. "TB@ObsValue" becomes "ObsValue/TB").

Note
We can apply these policies in both the frontend and inside of the engines.
Parameters
inStris the user-provided string. Ex: "TB@ObsValue" or "MetaData/Latitude", or even a fundamental dimension ("ChannelNumber").
Returns
A canonical path, always of the form "Group/Variable". In case of a dimension scale, then there is no group name, but for every other Variable, there is a Group name.

Reimplemented from ioda::detail::DataLayoutPolicy.

Definition at line 39 of file Layout_ObsGroup.cpp.

Here is the call graph for this function:

◆ initializeStructure()

void ioda::detail::DataLayoutPolicy_ObsGroup::initializeStructure ( Group_Base ) const
overridevirtual

Create default groups and write default attributes upon object creation / initialization.

Reimplemented from ioda::detail::DataLayoutPolicy.

Definition at line 22 of file Layout_ObsGroup.cpp.

◆ name()

std::string ioda::detail::DataLayoutPolicy_ObsGroup::name ( ) const
overridevirtual

A descriptive name for the policy.

Reimplemented from ioda::detail::DataLayoutPolicy.

Definition at line 47 of file Layout_ObsGroup.cpp.

Here is the caller graph for this function:

Member Data Documentation

◆ ObsGroup_Layout_Version

const int32_t ioda::detail::DataLayoutPolicy_ObsGroup::ObsGroup_Layout_Version = 0
staticprivate

Record versioning information for this layout in the ioda object. Provides forward compatability.

Definition at line 29 of file Layout_ObsGroup.h.


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