19#ifndef PISM_VARIABLEMETADATA_H
20#define PISM_VARIABLEMETADATA_H
27#include "pism/util/GridInfo.hh"
75class VariableMetadata;
90 operator std::string()
const;
92 operator std::vector<double> ()
const;
110 void operator=(
const std::string &value);
111 void operator=(
const std::initializer_list<double> &value);
112 void operator=(
const std::vector<double> &value);
125 std::map<std::string, std::vector<double> >
numbers;
130 bool is_set(
const std::string &name)
const;
136 unsigned int ndims = 0);
138 const std::vector<std::tuple<std::string, int> > &
dimensions,
139 std::shared_ptr<units::System> system);
140 VariableMetadata(std::shared_ptr<units::System> system,
const std::string &name,
const Grid &grid,
141 const std::vector<double> &
levels = {});
172 double get_number(
const std::string &name)
const;
175 std::vector<double>
get_numbers(
const std::string &name)
const;
181 std::string
get_string(
const std::string &name)
const;
195 std::shared_ptr<units::System>
unit_system()
const;
204 const std::vector<double>&
levels()
const;
206 std::vector<DimensionMetadata>
dimensions()
const;
215 const std::map<std::string, std::string> &
all_strings()
const;
216 const std::map<std::string, std::vector<double> > &
all_doubles()
const;
220 void check_range(
const std::string &filename,
double min,
double max)
const;
247 DimensionMetadata(
const std::string &name, std::shared_ptr<units::System> system,
void operator=(const std::string &value)
ConstAttribute(const ConstAttribute &)=delete
ConstAttribute & operator=(const ConstAttribute &)=delete
Describes the PISM grid and the distribution of data across processors.
std::shared_ptr< units::System > unit_system
The unit system to use.
bool is_set(const std::string &name) const
std::map< std::string, std::string > strings
string and boolean attributes
std::map< std::string, std::vector< double > > numbers
scalar and array attributes
bool operator<(const MaxTimestep &a, const MaxTimestep &b)
Less than operator for MaxTimestep.