13 #include <unordered_map>
20 class LocalConfiguration;
26 class ODBLayoutParameters;
36 const int32_t ObsGroup_ODB_Layout_Version = 0;
38 std::unordered_map<std::string, variableStorageInformation>
Mapping;
47 typedef std::pair<size_t, std::shared_ptr<ComplementaryVariableOutputMetadata>>
54 void initializeStructure(
Group_Base &)
const override;
55 std::string doMap(
const std::string &)
const override;
56 bool isComplementary(
const std::string &)
const override;
57 bool isMapped(
const std::string &)
const override;
58 bool isMapOutput(
const std::string &)
const override;
59 size_t getComplementaryPosition(
const std::string &)
const override;
60 size_t getInputsNeeded(
const std::string &)
const override;
62 std::pair<bool,std::string> getUnit(
const std::string &)
const override;
63 std::string getOutputNameFromComponent(
const std::string &)
const override;
64 std::type_index getOutputVariableDataType(
const std::string &)
const override;
67 std::string
name()
const override;
69 void parseMappingFile(
const std::string &);
70 void addUnchangedVariableName(
const std::string &);
71 void parseNameChanges();
72 void parseComponentVariables();
Contains definitions for how data are arranged in ioda internally.
Layout for ObsGroup-like data.
std::unordered_map< std::string, variableStorageInformation > Mapping
Mapping with ODB equivalents as keys and IODA naming/unit pairs as values.
std::unordered_map< std::string, complementaryVariableMetaData > complementaryVariableDataMap
std::shared_ptr< ODBLayoutParameters > mappingParams_
std::pair< size_t, std::shared_ptr< ComplementaryVariableOutputMetadata > > complementaryVariableMetaData
Policy used for setting locations for Variable access.
Hidden base class to prevent constructor confusion.
Common preprocessor definitions used throughout IODA.
#define IODA_DL
A preprocessor tag that indicates that a symbol is to be exported/imported.