15#ifndef SEIMS_DATA_CENTER_H
16#define SEIMS_DATA_CENTER_H
92 virtual void ReadItpWeightData(
const string& remote_filename,
int& num,
int& stations, FLTPT**& data) = 0;
99 virtual void Read1DArrayData(
const string& remote_filename,
int& num, FLTPT*& data) = 0;
106 virtual void Read1DArrayData(
const string& remote_filename,
int& num,
int*& data) = 0;
126 virtual void Read2DArrayData(
const string& remote_filename,
int& rows,
int& cols, FLTPT**& data) = 0;
128 virtual void Read2DArrayData(
const string& remote_filename,
int& rows,
int& cols,
int**& data) = 0;
135 virtual void ReadIuhData(
const string& remote_filename,
int& n, FLTPT**& data) = 0;
143 virtual void SetLapseData(
const string& remote_filename,
int& rows,
int& cols, FLTPT**& data);
158 bool CheckAdjustmentInt(
const string& para_name);
167 bool is_optional =
false);
176 bool is_optional =
false);
186 bool is_optional =
false);
188 void LoadAdjustInt1DArrayData(
const string& para_name,
const string& remote_filename,
189 bool is_optional =
false);
199 void LoadAdjustInt2DArrayData(
const string& para_name,
const string& remote_filename);
219 void Set1DData(
const string& para_name,
const string& remote_filename,
222 void Set1DDataInt(
const string& para_name,
const string& remote_filename,
226 void Set2DData(
const string& para_name,
const string& remote_filename,
229 void Set2DDataInt(
const string& para_name,
const string& remote_filename,
233 void SetRaster(
const string& para_name,
const string& remote_filename,
236 void SetRasterInt(
const string& para_name,
const string& remote_filename,
266 bool UpdateScenarioParametersDynamic(
int subbsn_id, time_t t);
270 string GetModelName()
const {
return model_name_; }
271 string GetProjectPath()
const {
return model_path_; }
280 int GetThreadNumber()
const {
return thread_num_; }
282 string GetOutputScenePath()
const {
return output_path_; }
283 string GetModelMode()
const {
return model_mode_; }
285 int GetOutletID()
const {
return outlet_id_; }
293 map<string, FloatRaster *>& GetRasterDataMap() {
return rs_map_; }
294 map<string, ParamInfo<FLTPT> *>& GetInitParameters() {
return init_params_; }
295 map<string, FLTPT*>& Get1DArrayMap() {
return array1d_map_; }
297 map<string, FLTPT**>& Get2DArrayMap() {
return array2d_map_; }
Constructor of ModuleFactory from config file.
Scenario class in BMP database.
Setting Outputs for SEIMS.
Main class of scenario in BMP database.
Definition: Scenario.h:47
Base type of all interfaces.
Definition: basic.h:407
Methods for clsITPWeightData class.
Class to store reach related parameters from REACHES table.
Class for managing subbasin data.
Simple wrappers of the API of MongoDB C driver mongo-c-driver, see MongoDB C Driver for more informat...
string model_mode_
Storm or Longterm model.
Definition: DataCenter.h:331
virtual bool ReadRasterData(const string &remote_filename, IntRaster *&int_rst)=0
Read raster data, both 1D and 2D, and insert to m_rsMap.
bool CheckAdjustment(const string ¶_name)
Check out whether the adjustment is needed.
const string model_path_
Model path.
Definition: DataCenter.h:315
map< string, FLTPT * > array1d_map_
1D array data map
Definition: DataCenter.h:347
string file_cfg_file_
config.fig full path
Definition: DataCenter.h:318
void SetRaster(const string ¶_name, const string &remote_filename, SimulationModule *p_module, bool is_optional=false)
Set raster data.
string model_name_
Model name, e.g., model_dianbu30m_longterm.
Definition: DataCenter.h:314
map< string, IntRaster * > rs_int_map_
Map of spatial data with integer, both 1D and 2D.
Definition: DataCenter.h:343
string output_path_
Output path (with / in the end) according to m_outputScene.
Definition: DataCenter.h:328
const int mpi_size_
Rank size for MPI.
Definition: DataCenter.h:325
virtual void Read2DArrayData(const string &remote_filename, int &rows, int &cols, FLTPT **&data)=0
Read 2D array data and insert to array2d_map_.
void SetScenario(SimulationModule *p_module, bool is_optional=false)
Set BMPs Scenario data.
const int thread_num_
Thread number for OpenMP.
Definition: DataCenter.h:326
vector< OrgOutItem > origin_out_items_
file.out configuration
Definition: DataCenter.h:330
const int scenario_id_
Scenario ID.
Definition: DataCenter.h:322
map< string, int > array2d_int_rows_map_
Row number of 2D array data map.
Definition: DataCenter.h:356
map< string, int > array1d_len_map_
1D array data length map
Definition: DataCenter.h:348
clsReaches * reaches_
Reaches information.
Definition: DataCenter.h:339
map< string, int > array2d_cols_map_
Col number of 2D array data map CAUTION that nCols may not same for all rows.
Definition: DataCenter.h:351
void DumpCaliParametersInDB()
Output calibrated parameters to txt file.
void Set2DData(const string ¶_name, const string &remote_filename, SimulationModule *p_module, bool is_optional=false)
Set 2D Data.
map< string, int > array2d_rows_map_
Row number of 2D array data map.
Definition: DataCenter.h:350
vector< string > file_in_strs_
file.in configuration
Definition: DataCenter.h:329
virtual bool ReadRasterData(const string &remote_filename, FloatRaster *&flt_rst)=0
Read raster data, both 1D and 2D, and insert to m_rsMap.
int n_subbasins_
Number of subbasins.
Definition: DataCenter.h:332
virtual void Read1DArrayData(const string &remote_filename, int &num, int *&data)=0
Read 1D integer array data.
map< string, FLTPT ** > array2d_map_
2D array data map
Definition: DataCenter.h:349
virtual void Read1DArrayData(const string &remote_filename, int &num, FLTPT *&data)=0
Read 1D array data.
SettingsInput * input_
The basic input settings.
Definition: DataCenter.h:335
const int subbasin_id_
Subbasin ID.
Definition: DataCenter.h:321
void LoadAdjust2DArrayData(const string ¶_name, const string &remote_filename)
Read and adjust (if necessary) 2D array data from Database.
const FlowDirMethod fdir_method_
Flow direction method.
Definition: DataCenter.h:320
map< string, FloatRaster * > rs_map_
Map of spatial data, both 1D and 2D.
Definition: DataCenter.h:342
void SetValue(ParamInfo< int > *param, SimulationModule *p_module)
Set single integer Value.
void SetData(SEIMSModuleSetting *setting, ParamInfo< FLTPT > *param, SimulationModule *p_module)
Set data for modules, include all datatype.
map< string, ParamInfo< int > * > init_params_int_
Store integer parameters from Database (PARAMETERS collection)
Definition: DataCenter.h:346
virtual bool CheckModelPreparedData()=0
Make sure all the required data are presented.
virtual void SetLapseData(const string &remote_filename, int &rows, int &cols, FLTPT **&data)
Make lapse 2D array data and insert to m_2DArrayMap.
map< string, int * > array1d_int_map_
1D integer array data map
Definition: DataCenter.h:353
int outlet_id_
Outlet subbasin ID.
Definition: DataCenter.h:333
void LoadAdjustIntRasterData(const string ¶_name, const string &remote_filename, bool is_optional=false)
Read and adjust (if necessary) 1D/2D integer raster data from Database.
void UpdateOutputDate(time_t start_time, time_t end_time)
Check date of output settings.
virtual bool SetRasterForScenario()=0
Set Raster data for Scenario data.
virtual void ReadItpWeightData(const string &remote_filename, int &num, int &stations, FLTPT **&data)=0
Read interpolated weight data and insert to m_weightDataMap.
void UpdateInput(vector< SimulationModule * > &modules, time_t t)
Update inputs, such climate data.
map< string, ParamInfo< FLTPT > * > init_params_
reach depth data,every cell has a depth
Definition: DataCenter.h:345
DataCenter(InputArgs *input_args, ModuleFactory *factory, int subbasin_id=0)
Constructor.
virtual void ReadIuhData(const string &remote_filename, int &n, FLTPT **&data)=0
Read IUH data and insert to m_2DArrayMap.
void SetReaches(SimulationModule *p_module)
Set Reaches information.
const LayeringMethod lyr_method_
Layering method.
Definition: DataCenter.h:319
map< string, int > array1d_int_len_map_
1D integer array data length map
Definition: DataCenter.h:354
double LoadParametersForModules(vector< SimulationModule * > &modules)
Load data for each module, return time span.
virtual void ReadClimateSiteList()=0
Read climate site data.
void Set1DData(const string ¶_name, const string &remote_filename, SimulationModule *p_module, bool is_optional=false)
Set 1D Data.
void SetSubbasins(SimulationModule *p_module)
Set Subbasins information.
ModuleFactory * factory_
Module factory.
Definition: DataCenter.h:334
void SetValue(ParamInfo< FLTPT > *param, SimulationModule *p_module)
Set single Value.
IntRaster * mask_raster_
Mask data.
Definition: DataCenter.h:341
const int mpi_rank_
Rank ID for MPI, starts from 0 to mpi_size_ - 1.
Definition: DataCenter.h:324
void UpdateScenarioParametersStable(int subbsn_id)
Update model parameters (value, 1D raster, and 2D raster, etc.) by Scenario, e.g.,...
void SetData(SEIMSModuleSetting *setting, ParamInfo< int > *param, SimulationModule *p_module)
Set integer data for modules, include all datatype.
map< string, int ** > array2d_int_map_
2D integer array data map, e.g. FLOWIN_INDEX, FLOWOUT_INDEX, ROUTING_LAYERS
Definition: DataCenter.h:355
virtual bool ReadParametersInDB()=0
Read initial and calibrated parameters.
clsSubbasins * subbasins_
Subbasins information.
Definition: DataCenter.h:340
void LoadAdjustRasterData(const string ¶_name, const string &remote_filename, bool is_optional=false)
Read and adjust (if necessary) 1D/2D raster data from Database.
string file_in_file_
file.in full path
Definition: DataCenter.h:316
virtual bool GetFileOutVector()=0
Get file.out configuration.
void LoadAdjust1DArrayData(const string ¶_name, const string &remote_filename, bool is_optional=false)
Read and adjust (if necessary) 1D array data from Database.
bool use_scenario_
Model Scenario.
Definition: DataCenter.h:327
SettingsOutput * output_
The user-defined outputs, Q, SED, etc.
Definition: DataCenter.h:336
virtual int ReadIntParameterInDB(const char *param_name)=0
Get subbasin number and outlet ID.
map< string, int > array2d_int_cols_map_
Col number of 2D array data map CAUTION that nCols may not same for all rows.
Definition: DataCenter.h:357
const int calibration_id_
Calibration ID.
Definition: DataCenter.h:323
string file_out_file_
file.out full path
Definition: DataCenter.h:317
InputStation * clim_station_
data of input HydroClimate stations
Definition: DataCenter.h:337
Scenario * scenario_
BMPs Scenario data.
Definition: DataCenter.h:338
virtual bool GetFileInStringVector()
Get file.in configuration.
Base class of Data center for SEIMS.
Definition: DataCenter.h:37
Class to store and manage parameter information from the parameter database.
Definition: ParamInfo.h:37
Setting outputs.
Definition: SettingsOutput.h:48
Read and store all reaches information as input parameters.
Definition: clsReach.h:88
Manager all Subbasin related parameters and methods.
Definition: clsSubbasin.h:214
Linking user-defined modules to create the modeling workflow.
Definition: ModuleFactory.h:40
Base module for all simulation modules in SEIMS.
Definition: SimulationModule.h:46
LayeringMethod
Grid layering method for routing and parallel computing.
Definition: seims.h:25
FlowDirMethod
Flow direction method for flow routing.
Definition: seims.h:36
Parse the input arguments as a class which can be easily extended.
The SEIMS related definitions and utilities header.
#define FloatRaster
Float-typed raster with int-typed mask, specific for legacy SEIMS code.
Definition: seims.h:133
#define IntRaster
Integer-typed raster.
Definition: seims.h:126