Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

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:

Code Block
xml
xml

<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>