l
DOCUMENTATION IN DEVELOPMENT
Introduction
The Integrated Reservoir Model is a General Adapter module written in Java, developed by Deltares. The model class is part of the Delft-FEWS code base.
The Reservoir model is developed and designed as a relatively straightforward reservoir routing model, that simulates flow through a reservoir with a level-outflow table defined. Specifically, the model is able to precisely replicate the uncontrolled outlet reservoir behaviour of the legacy Deltares RTC-Tools 1 codebase, which is no longer developed and supported. Because the adapter model is based on Java, it can run on Windows/Linux systems.
The model is introduced in the 2021.01 BoM Delft-FEWS version and will be part of the Delft-FEWS code base of Delft-FEWS versions 2023.01 and onwards with in-memory options.
General Adapter configuration
The General Adapter defines forms the interface between the FEWS system and the Reservoir model.
The data is provided in a standardized XML interface format, the FEWS Published Interface. For more details about general structure of the General Adapter please check 05 General Adapter Module.
IDmapping
The location/parameters used in Delft-FEWS can be transformed to model variableId locations/parameters by ID-mapping. The configuration files for ID-mapping can be of a general form, as long as the reservoir model have been set up with identical variables for the inputs/outputs. The model will look for the required variables (as configured in the IRM model file) in the parameter field of the PI timeseries.
Directory structure
The data directories and configuration files that are required for operating the FEWS Reservoir Model Adapter have been shown below.
FEWS_SA +---Config | +---ColdStateFiles | | | namoi_keepit_KeepReservoir_Historical_IRM Default.zip........coldState file | +---IdMapFiles | | IdExportIRMReservoir.xml | | IdImportIRMReservoir.xml.........................................custom mappings for the IRM variables and locations | | | +---ModuleConfigFiles | | | Reservoir_1h_Forecast_IRM.xml....................................main configuration file of the adapter | | | +---ModuleDataSetFiles | | | Reservoir_Exe.zip................................................zipped IRM bin files, transported to Modules\reservoir directory | | | | | | namoi_IRM_Reservoir_Forecast.zip.................................zipped IRM model files for a specific reservoir, transported to Modules\Reservoir directory | +---Modules | +---delft-adapters........................................................directory which contains all IRM adapter java files | | | | +---reservoir | | +---Keep_IRM | | | diag.xml......................................................output FEWS-PI diagnostics file, imported by Delft-FEWS | | | export.xml....................................................output FEWS-PI time series files, imported by Delft-FEWS | | | exportState.xml...............................................FEWS-PI state output time series file, imported by Delft-FEWS | | | import.xml....................................................input FEWS-PI time series files, exported by Delft-FEWS | | | importState.xml...............................................FEWS-PI state input time series file, exported by Delft-FEWS | | | Keep_IntegratedReservoirModel.xml..................................IRM model file | | | run_info.xml..................................................a file generated by FEWS containing paths, run options | | | statePI.xml...................................................PI State file (definition) | | |
Configuring the Integrated Reservoir Model General Adapter file
general
pi-version 1.8 required for diagnostics
exportStateActivity
<exportStateActivity>
exportTimeSeriesActivity
<exportTimeSeriesActivity>
Export data (inflows and outflows)</description>
<exportFile>import.xml</exportFile>
<exportTimeSeriesActivity>
<description>Export state data (levels and volumes)</description>
<exportFile>importState.xml</exportFile>
<exportDataSetActivity>
<moduleInstanceId>$CATCHMENT$_IRM_Reservoir_Forecast</moduleInstanceId>
</exportDataSetActivity>
exportRunFileActivity
<exportFile>run_info.xml</exportFile>
<properties>
<string key="model" value="IntegratedReservoirModel.xml"/>
</properties>
</exportRunFileActivity>
executeActivity
<description>Run Reservoir module</description>
<command>
<className>nl.deltares.fews.reservoirmodel.ReservoirModelAdapter</className>
<binDir>$REGION_HOME$/Modules/reservoir/IRMbin</binDir>
</command>
<arguments>
<argument>%ROOT_DIR%/run_info.xml</argument>
</arguments>
<timeOut>100000</timeOut>
<ignoreDiagnostics>true</ignoreDiagnostics>
</executeActivity>
importActivities
<importTimeSeriesActivity>
<description>Import IRM reservoir management results</description>
<importFile>export.xml</importFile>
Model
The model definition for the reservoir is configured in file that follows the Integrated Reservoir Model schema. The model options are described below. An example Integrated Reservoir Model file is attached.
Schema
general
reservoir
general
interpolationMethod
ReservoirRouting Method
Tables
strictly increasing, same number of elements
storageCharacteristics
uncontrolled outlet
input / output
importState.xml Either storage, or level
import.xml Inflow, potential outflow
Model specifics
First timestep
Ensembles
Model is able to run in parallel, where a "static"
In-Memory execution
(2023.01 onwards)