58 virtual bool snowCoverExists(
const std::string& i_snowfile,
const std::string& stationID)
const override;
60 virtual void readSnowCover(
const std::string& i_snowfile,
const std::string& stationID,
64 const ZwischenData& Zdata,
const bool& forbackup=
false)
override;
67 const ProcessDat& Hdata,
const double wind_trans24)
override;
71 virtual bool writeHazardData(
const std::string& stationID,
const std::vector<ProcessDat>& Hdata,
72 const std::vector<ProcessInd>& Hdata_ind,
const size_t& num)
override;
75 void cleanup() noexcept;
78 void setBasicHeader(const
SnowStation& Xdata, const std::
string& fields, smet::SMETWriter& smet_writer) const;
79 void setSnoSmetHeader(const
SnowStation& Xdata, const
SN_SNOWSOIL_DATA& SSdata, const mio::Date& date, smet::SMETWriter& smet_writer) const;
80 void setFormatting(const
size_t& nr_solutes, std::vector<
int>& vec_width, std::vector<
int>& vec_precision) const;
81 std::
string getFilenamePrefix(const std::
string& fnam, const std::
string& path, const
bool addexp=true) const;
84 bool read_snocaaml(const std::
string& snofilename, const std::
string& stationID,
SN_SNOWSOIL_DATA& SSdata);
85 void openIn_CAAML(const std::
string& in_snowfile);
86 mio::Date xmlGetDate();
87 mio::StationData xmlGetStationData(const std::
string& stationID);
91 LayerData xmlGetLayer(pugi::xml_node nodeLayer, std::
string& grainFormCode);
93 void getAndSetProfile(const std::
string path, const std::
string name,const
bool directionTopDown,
94 const
bool isRangeMeasurement,std::vector<
LayerData>& Layers);
95 bool xmlGetProfile(const std::
string path, const std::
string name, std::vector<
double>& zVec, std::vector<
double>& valVec);
96 void estimateValidFormationTimesIfNotSetYet(std::vector<
LayerData> &Layers, const mio::Date);
97 void checkAllDataForConsistencyAndSetMissingValues(
SN_SNOWSOIL_DATA& SSdata );
101 void writeSnowFile(const std::
string& snofilename, const mio::Date& date, const
SnowStation& Xdata);
102 void writeCustomSnowSoil(pugi::xml_node& node, const
SnowStation& Xdata);
103 void writeLayers(pugi::xml_node& node, const
SnowStation& Xdata);
104 void writeCustomLayerData(pugi::xml_node& node, const
ElementData& Edata, const
NodeData& Ndata);
105 void writeProfiles(pugi::xml_node& node, const
SnowStation& Xdata);
106 void writeStationData(pugi::xml_node& root, const
SnowStation& Xdata);
108 double lwc_codeToVal(const
char* code);
109 std::
string lwc_valToCode(const
double val);
110 double hardness_codeToVal(
char* code);
111 std::
string hardness_valToCode(const
double code);
112 void grainShape_codeToVal(const std::
string& code,
double &sp,
double &dd,
unsigned short int &mk);
113 std::
string grainShape_valToAbbrev(const
unsigned int var);
114 std::
string grainShape_valToAbbrev_old(const
double* var);
117 double xmlReadValueFromPath(const std::
string& xpath, const std::
string& property, const
double& dflt);
118 int xmlReadValueFromPath(const std::
string& xpath, const std::
string& property, const
int& dflt);
119 void xmlWriteElement(pugi::xml_node& node, const
char* name, const
char* content, const
char* att_name, const
char* att_val);
120 bool xmlDoesPathExist(const std::
string& path);
121 bool xmlReadValueFromNode(const pugi::xml_node node, const std::
string propertyName,
double& variableToSet,
122 const std::
string unitOut = "",const std::
string unitMeasured = "", const
double factor=1.0);
123 std::
string xmlReadAttributeFromPath (const std::
string& path, const std::
string& attributeName);
126 std::
string i_snowpath, o_snowpath, experiment;
127 double i_max_element_thickness;
128 bool caaml_writeout_as_readin, haz_write;
131 pugi::xml_document inDoc;
132 pugi::xml_encoding inEncoding;
135 static const
char *xml_ns_caaml, *xml_ns_abrev_caaml;
136 static const
char *xml_ns_gml, *xml_ns_abrev_gml;
137 static const
char *xml_ns_xsi, *xml_ns_abrev_xsi;
138 static const
char *xml_ns_slf, *xml_ns_abrev_slf;
139 static const
char *xml_ns_snp, *xml_ns_abrev_snp;
140 static const std::
string TimeData_xpath, StationMetaData_xpath, SnowData_xpath;
142 static const
int num_max_len = 10;
143 char layerDepthTopStr[num_max_len], layerThicknessStr[num_max_len], layerValStr[num_max_len], valueStr[num_max_len];
144 double hoarDensitySurf;
145 std::vector<std::
string> grainForms;
virtual void writeTimeSeries(const SnowStation &Xdata, const SurfaceFluxes &Sdata, const CurrentMeteo &Mdata, const ProcessDat &Hdata, const double wind_trans24) override
Definition CaaMLIO.cc:1377
virtual void writeSnowCover(const mio::Date &date, const SnowStation &Xdata, const ZwischenData &Zdata, const bool &forbackup=false) override
This routine writes the status of the snow cover at program termination and at specified backup times...
Definition CaaMLIO.cc:1048
virtual void readSnowCover(const std::string &i_snowfile, const std::string &stationID, SN_SNOWSOIL_DATA &SSdata, ZwischenData &Zdata, const bool &read_salinity) override
This routine reads the status of the snow cover at program start.
Definition CaaMLIO.cc:513