General
Sobek-RE models can be used in FEWS with a SobekRE model adapter. The adapter works with the NEFIS files which are created in the SOBEK user interface. The adapter updates the timeseries and the simulation period in the NEFIS files only. Of course also the simulation results are converted back to FEWS PI format.
Setup of the model configuration
A typical setup of the model configuration is:
directory |
contains |
---|---|
FEWS_Region\Modules\SobekRE\MyModel\Config |
adapter configuration |
FEWS_Region\Modules\SobekRE\MyModel\Input |
FEWS PI input files (updated boundaries etc) |
FEWS_Region\Modules\SobekRE\MyModel\Output |
FEWS PI output files (simulation results) |
FEWS_Region\Modules\SobekRE\MyModel\Model |
NEFIS files |
FEWS_Region\Modules\SobekRE\MyModel\diagnostics |
logfiles |
FEWS_Region\Modules\SobekRE\MyModel\States |
state files |
FEWS_Region\Modules\SobekRE\MyModel\Work |
working directory for simulation |
General Adapter configuration
A typical GA file looks like:
<general> <rootDir>$REGION_HOME$/Modules/SobekRE/MyModel</rootDir> <workDir>%ROOT_DIR%/work</workDir> <exportDir>%ROOT_DIR%/input</exportDir> <exportDataSetDir>%ROOT_DIR%</exportDataSetDir> <exportIdMap>IdSobekRE</exportIdMap> <importDir>%ROOT_DIR%/output</importDir> <importIdMap>IdSobekRE</importIdMap> <dumpFileDir>%REGION_HOME%/Dump</dumpFileDir> <dumpDir>%ROOT_DIR%</dumpDir> <diagnosticFile>%ROOT_DIR%/Output/diagnostics.xml</diagnosticFile> <missVal>NaN</missVal> <convertDatum>true</convertDatum> </general> <burnInProfile> <length unit="hour" multiplier="6"/> <timeSeries> <parameterId>H.merged</parameterId> <locationSetId>H_Boundaries</locationSetId> <initialValue>-0.42</initialValue> </timeSeries> </burnInProfile> <activities> <startUpActivities> <purgeActivity> <filter>%ROOT_DIR%/work/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/input/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/output/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/states/*.*</filter> </purgeActivity> </startUpActivities> <exportActivities> <exportStateActivity> <moduleInstanceId>MySobekREModel</moduleInstanceId> <stateExportDir>%ROOT_DIR%/States</stateExportDir> <stateConfigFile>%ROOT_DIR%/States/states.xml</stateConfigFile> <stateLocations type="file"> <stateLocation> <readLocation>sobekrst.rda</readLocation> <writeLocation>sobekrst.nda</writeLocation> </stateLocation> <stateLocation> <readLocation>sobekrst.rdf</readLocation> <writeLocation>sobekrst.ndf</writeLocation> </stateLocation> </stateLocations> <stateSelection> <warmState> <stateSearchPeriod unit="hour" start="-96" end="0"/> </warmState> </stateSelection> </exportStateActivity> <exportTimeSeriesActivity> <exportFile>input.xml</exportFile> <exportBinFile>false</exportBinFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>H.merged</parameterId> <locationSetId>model_Hbnd</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" end="120" startOverrulable="true" endOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.merged</parameterId> <locationSetId>model_Qbnd</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" end="120" startOverrulable="true" endOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>H.setpoint.merged</parameterId> <locationSetId>model_setpoint</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" end="120" startOverrulable="true" endOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Gate.merged</parameterId> <locationSetId>model_gateheight</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" end="120" startOverrulable="true" endOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> <omitEmptyTimeSeries>false</omitEmptyTimeSeries> </exportTimeSeriesActivity> <exportDataSetActivity> <moduleInstanceId>Vecht_Hydr_Sobek_Update</moduleInstanceId> </exportDataSetActivity> </exportActivities> <executeActivities> <executeActivity> <command> <className>nl.wldelft.fews.adapter.sobek.PreSobekModelAdapter</className> </command> <arguments> <argument>%ROOT_DIR%</argument> <argument>Config/sobekConfig.xml</argument> </arguments> <timeOut>60000</timeOut> <overrulingDiagnosticFile>%ROOT_DIR%/diagnostics/presobekmodeladapter.xml</overrulingDiagnosticFile> </executeActivity> <executeActivity> <command> <executable>%ROOT_DIR%/bin/sobeksim.exe</executable> </command> <arguments> <argument>%ROOT_DIR%/bin/sobeksim.fnm</argument> </arguments> <timeOut>600000</timeOut> <ignoreDiagnostics>true</ignoreDiagnostics> </executeActivity> <executeActivity> <command> <className>nl.wldelft.fews.adapter.sobek.PostSobekModelAdapter</className> </command> <arguments> <argument>%ROOT_DIR%</argument> <argument>Config/sobekConfig.xml</argument> </arguments> <timeOut>60000</timeOut> <overrulingDiagnosticFile>%ROOT_DIR%/diagnostics/postsobekmodeladapter.xml</overrulingDiagnosticFile> </executeActivity> </executeActivities> <importActivities> <!-- Import results--> <importTimeSeriesActivity> <importFile>flowmap.xml</importFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>H.sim</parameterId> <locationSetId>SobekREmodel</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.sim</parameterId> <locationSetId>SobekREModel</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> </timeSeriesSets> </importTimeSeriesActivity> <importTimeSeriesActivity> <importFile>struchis.xml</importFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>MySobekREModel</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.sim</parameterId> <locationSetId>structures</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="hour"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> </timeSeriesSets> </importTimeSeriesActivity> </importActivities> </activities>