1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#pragma once
#include "glGrib/Options.h"
#include <string>
namespace glGrib
{
class FieldMetadata
{
public:
std::string CLNOMA = ""; // FA name
std::string shortName;
float valmis, valmin, valmax; // Field min/max, missing values;
long int discipline = 255, parameterCategory = 255, parameterNumber = 255; // GRIB2 metadata
OptionDate base, term;
long int indicatorOfUnitOfTimeRange = 255;
long int forecastTime = 0;
double forecastTerm = 0;
const std::string & getName () const
{
if (name == "")
{
if (CLNOMA != "")
name = CLNOMA;
else if (shortName != "")
name = shortName;
else
{
char tmp[64];
sprintf (tmp, "%3ld/%3ld/%3ld", discipline, parameterCategory, parameterNumber);
name = std::string (tmp);
}
}
return name;
}
private:
mutable std::string name;
};
}
|