You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

Configuring a pi-version 1.8 is required for the diagnostics of the model.

IdMapping is useful, but ofcourse dependent on how the variables have been defined in the model. The Reservoir Model code will try to parse the configured model variables (like IIn, QOut, etc) from the parameterId of the PI timeseries, the locationId is not used. This means that the parameterId's of all the input timeseries need to be unique (and identical to the model variables). When writing the output timeseries, the locationId used in the import PI xml files will be used as the locationId in the output PI xml files. 

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

The run_info file is required input for the Reservoir model.

 
        <exportFile>run_info.xml</exportFile>
        <properties>
            <string key="model" value="$RESERVOIR$_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.

The model can be considered "timestep ending", similar the the timestep definition of Delft-FEWS. 

Schema

general

reservoir

general

interpolationMethod

ReservoirRouting Method

Tables

strictly increasing, same number of elements

storageCharacteristics

uncontrolled outlet

input / output files

The naming convention of the input and output timeseries files are free, the model will determine which files to read for the input based on the inputTimeSeriesFile filed in the run_info file. The following two input timeseries files are suggested:

  • importState.xml
    • level values, or
    • storage values
  • import.xml
    • Inflow
    • outflow (optional)

The startDateTime and endDateTime in the run_info file are used by the model to determine the start (startDateTime) and end (endDateTime) of the model run. The model will pick the starting (state) value for level/storage (level has precedent in case of an inconsistency)

, inflow, release from the inputTimeSeriesFiles at the specific .

If a starting level value is missing, the model will use the starting storage value. If both starting level/storage cannot be determined from the input files, the model will throw an error

inflow and outflow values at the starting time are not required at the first timestep. When they are not found, a value of 0 is used.

Model specifics

No calculations/processing is performed at the first timestep (t=0, startDateTime as set in the run_info.xml file)


Ensembles

Model is able to run in parallel, where a "static"

In-Memory execution

(2023.01 onwards)

  • No labels