Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

type

description

undefined

not allowed as type

rainfallfile

converts full contents of the file into RR rainfall file. All series should have same time stamps. File name will be *.bui and will be written in cmtwork. Case registry will be updated, so the file will be used in the computation

rrrestart

rr restartfile (state file)

flowrestart

flow restart (state file)

flow_hc_boundary

H boundary with constant value

flow_ht_boundary

H boundary with timeSeries

flow_qc_boundary

Q boundary with constant value

flow_qt_boundary

Q boundary with timeSeries

flow_htref_boundary

H boundary with timeSeries from ref.table

flow_qtref_boundary

Q boundary with timeSeries from ref.table

windfile

wind, should be a single PI file

flow_latndc

lateral flow on connection node, constant value

flow_latndt

lateral flow on connection node, time series

flow_latndref

lateral flow on connection node, time series from ref.table

flow_latbrc

lateral flow on node at branch, constant value

flow_latbrt

lateral flow on node at branch, time series

flow_latbrref

lateral flow on node at branch, time series from ref.table

flow_latdic

diffuse lateral flow on branch, constant value

flow_latdit

diffuse lateral flow on branch, time series

flow_latdiref

diffuse lateral flow on branch, time series from ref.table

flsboundline_hc

H line boundary on grid, constant value

flsboundline_ht

H line boundary on grid, time series

flsboundline_qc

Q line boundary on grid, constant value

flsboundline_qt

Q line boundary on grid, time series

flsboundnode_hc

H boundary node on grid, constant value

flsboundnode_ht

H boundary node on grid, time series

flsboundnode_qc

Q boundary node on grid, constant value

flsboundnode_qt

Q boundary node on grid, time series

flsinitpoint

initial condition point at grid

rr_up_seepdef

rainfall-runoff seepage definition ID, (no timeSeries!)

rr_up_stordef

rainfall-runoff storage definition ID, (no timeSeries!)

rr_up_alfadef

rainfall-runoff alfa drainage coeff. definition ID, (no timeSeries!)

rr_up_infdef

rainfall-runoff infiltratie definition ID (no timeSeries!)

rr_up_initdef

rainfall-runoff initial definition ID (no timeSeries!)

rr_up_ernstdef

rainfall-runoff ernst drainage coeff. definition ID, (no timeSeries!)

rr_insodemandtable

rainfall-runoff industrial demand time series, like a lateral flow. Note: a dummy salt concentration of 0 mg/l will be used!

rr_insodischargetable

rainfall-runoff insdustrial discharge time series, like a lateral flow

evapfile

converts full contents of the file into RR evaporation file. All series should have same time stamps. File name will be *.evp and will be written in cmtwork. Case registry will be updated, so the file will be used in the computation

rtc_par3

RTC, parameter3 record ID

rtc_rule

RTC, rule record ID

rtc_maxf

RTC, maxf record ID

rtc_engd

RTC, engd record ID

flow_timecontroller_tbl

1D flow structure time controller, time series

flow_intervalcontrollersetpoint_tbl

1D flow structure interval controller setpoint, time series

flow_controllerpidsetpoint_tbl

1D flow structure PID setpoint, time series

1dwq_fraction_concentration_tbl

1d waq substance concentration for fraction type, time series

1dwq_boundary_concentration_tbl

1d waq substance concentration for local boundary, time series

2dwq_fraction_concentration_tbl

2d waq substance concentration for fraction type, time series

2dwq_boundary_concentration_tbl

2d waq substance concentration for local boundary, time series

fls_restart

fls restart / state

1dwq_restart

1d waq restart / state

2dwq_restart

2d waq restart / state

1d_flow_dam

1d flow weir object, representing a obstruction in the river

1d_flow_dambreak_hc_boundary,

1d_flow_dambreak_connectionnode

do exactly the same: create a breach in the dike

rr_temperature

temperature for the RR module, should be a single PI file

1d_flow_lateral_dat_file

Converts the complete contents of a PI xml file into a 1D flow lateral.dat file. The PI locationID should be used to map to the lateral IDs (any type). The parameter (and  qualifier) is not used. All series in the XML should exist as definition with a time series table in the SOBEK lateral .dat file. Vice versa is not needed, as SbkBatch only updates the definitions.

rr_boundarytable

rainfall-runoff boundary node, water level time table. Note: a dummy salt concentration of 0 mg/l will be used!

1d_flow_boundary_dat_fileConverts the complete contents of a PI xml file into a 1D flow Boundary.Dat file. The PI locationID should be used to map to the boundary IDs. The parameter (and  qualifier) is not used. All series in the XML should exist as definition with a time series table in the SOBEK boundary.dat file. Vice versa is not needed, as SbkBatch only updates the definitions.
1d_flow_control_def_fileConverts the complete contents of a PI xml file into a 1D flow control.def file. The PI locationID should be used to map to the control def IDs (of time controller type). The parameter (and  qualifier) is not used. All series in the XML should exist as definition with a time series table in the SOBEK control.def file. Vice versa is not needed, as SbkBatch only updates the definitions.
1d_flow_profile_defchanges the reference to a cross section definition in profile.dat. The sobekObjectId should refer to the record in the profile.dat, while the classFile(s) refer to the records in the profile.def. Typically used in batching runs with varying cross sections per run.
greenhouse_water_usage_file

Convert the complete contents of a PI xml file into the \sobek\fixed\3b\KasGebrData.Dat file, which is referred to in the sbkbatch.ini key [General]KasGebrDataFile=....

In delft_3b.ini [Options]NewFormatKasdata should be -1 and greenhouse node definitions should be setup to using this new format (which is not supported by the GUI). All series in the XML are converted to update existing definitions in the KasGebrData.Dat. Note that this file is not register to in the case registry ,so updating this file may affect other cases too.

Only definition with single column tables are supported. The PI locationID should be used to map to the kasgebr IDs . The parameter (and  qualifier) is not used. All series in the XML should exist as definition with a time series table in the SOBEK kasgebr file. Vice versa is not needed, as SbkBatch only updates the definitions.

rr_runoff_rnfConverts the complete contents of a PI xml file into a *.rnf file. Can only be used in case also a rainfallfile is used, so sbkbatch can write it to the same base file name as the RR module uses that.
rr_openwater_target_level_timetableConverts one individual timeseries into a OW_T table in openwate.tbl
rr_openwater_target_level_timetable_fileConverts a complete PI xml (so all timeseries) into a OW_T tables in openwate.tbl, based on locationid
rr_timecontroller_tbl_fileConverts a complete PI xml (so all timeseries) into a INST tables in struct3b.tbl, based on locationid
1d_flow_trigger_def_fileConverts a complete PI xml (so all timeseries) into a CNTL tables in control.tbl, based on locationid
wq_meteofileConverts a complete PI xml (so all timeseries) into a Delwaq format file (based on parameterid, locationid is ignored). This file is called wqmeteo.mwq and is included in the delwaq wq computation

Flow_dam and Flow_dambreak should be triggered by time series with non-missing values. The flow_dam should have timeseries where the location id is equal to the reachsegment id. The adapter creates the weir/dam at this segment. The time series values represent the height of the weir. This is automatically added to the bed level to get a correct crest level of the weir.

The dambreaks can be created at all node types that are calculation points (fixed and regular calculation points, connection nodes and linkage nodes). The time series that trigger a dambreak should contain by default missing values, but a -1 for a dambreak at the left side, a +1 for a dambreak at the right side. The adapter creates a new reach to represents the dambreak. At this reach a weir structure is placed, with a crest level that will be lowered at the start of the dambreak.

Notice that using dams or dam breaks will make that the restart files do not fit anymore with the network and will be neglected.

The flow_lateral_dat_file has some special features. This routine reads the network.cn file to know the type of the laterals (FLNO, FLBR, FLDI) and then creates a complete new lateral.dat file, based on the series PI-XML file. In case a time series is not in the XML file, the original definition is re-used. However, this method is not very efficient so this whole flow_lateral_dat_file routine is most efficient in case you convert ALL the laterals. The locationID is used as the required lateral id. The parameterId is not used, although you can use it to parse the interpolation option to the definition. Therefore include the string "block" in to the parameterId, so the routine knows that the block interpolation option should be used. Default interpolation option is linear. It is of course (in operational systems) not possible to define a periodicity.

Jobs

In the 'jobs' section nothing needs to be changed.
It should be:

...

<jobs>
  <job>
    <jobName>Sobek historical run</jobName>
    <storeDir/>
    <parameter>
      <classIndex>1</classIndex>
    </parameter>
  </job>
</jobs>

Output

In the 'output' section the output locations need to be identified. Moreover the SOBEK_Adapter needs to know in which file to read the output and to which PI-file to write the output so that the generalAdapter can read it.

...

Type of output

...

corresponding outputfile

...

water level, depth on nodes

...

calcpoint

...

flow on branches, discharge/velocity

...

reachseg

...

results at structures, discharge/crestlevels, waterlevels up&down

...

struc

...

Total Waterbalance, Flow

...

qwb

...

RR open water levels

...

ow_lvldt

...

RR unpaved runoff

...

upflowdt

...

RTC decision parameters

...

rtcparal

...

1D Wq results: .his for History stations, .map for whole area

...

delwaq.his and delwaq.map

...

RR boundary flows

...

bndflodt

...

Overlandflow History stations, Velocity, Waterlevels/depth

...

flshis

mapStack

In the 'mapStack' part the 2D maps are put together in a so called map stack. The generalAdapter will import these map stacks as a grid timeSeries.

Example:

...

<mapStack>
    <fileName>output\dm1dmapstack.xml</fileName>
    <fileMask>dm1d????.asc</fileMask>
    <geoDatum>Rijks Driehoekstelsel</geoDatum>
    <locationId>map</locationId>
    <parameterId>InundationDepth</parameterId>
    <timeStep>unit="hour" multiplier="1"</timeStep>
    <module>2dflow</module>
    <mapStackActive>true</mapStackActive>
  </mapStack>

States

The last section in the SOBEK_Adapter.xml file is 'states'. This describes the read locations and writelocations of the model states. This is similar to other external modules.
RR states: * rrr
1D states: *.rda, *.rdf
2D states: *.fls
WQ states: *.res

Example:

...

<states>
  <stateXmlOutputFile>States\Outputstates.xml</stateXmlOutputFile>
  <state>
    <readLocation>States\Input.rda</readLocation>
    <writeLocation>States\Output.rda</writeLocation>
  </state>
  <state>
    <readLocation>States\Input.rdf</readLocation>
    <writeLocation>States\Output.rdf</writeLocation>
  </state>
  <state>
    <readLocation>States\Input.fls</readLocation>
    <writeLocation>States\Output.fls</writeLocation>
  </state>
  <state>
    <readLocation>States\1Dlevels-in.xyz</readLocation>
    <writeLocation>States\1Dlevels-out.xyz</writeLocation>
  </state>
  <state>
    <readLocation>States\Input.rrr</readLocation>
    <writeLocation>States\Output.rrr</writeLocation>
  </state>
</states>
1dwq_boundary_concentration_timetbl_fileConverts a complete PI xml (so all timeseries) into ..\work\boundwq.dat, using location and parameter IDs. Note that (unlike with other complete file conversions, like 1d_flow_control_def_file etc) the file is fully converted only and not updated! That means that definitions which are not in the PI xml file, not will be converted.
2dwq_boundary_concentration_timetbl_fileConverts a complete PI xml (so all timeseries) into ..\work\2DBNDWQ.DAT, using location and parameter IDs. Note that (unlike with other complete file conversions, like 1d_flow_control_def_file etc) the file is fully converted only and not updated! That means that definitions which are not in the PI xml file, not will be converted.


Flow_dam and Flow_dambreak should be triggered by time series with non-missing values. The flow_dam should have timeseries where the location id is equal to the reachsegment id. The adapter creates the weir/dam at this segment. The time series values represent the height of the weir. This is automatically added to the bed level to get a correct crest level of the weir.

The dambreaks can be created at all node types that are calculation points (fixed and regular calculation points, connection nodes and linkage nodes). The time series that trigger a dambreak should contain by default missing values, but a -1 for a dambreak at the left side, a +1 for a dambreak at the right side. The adapter creates a new reach to represents the dambreak. At this reach a weir structure is placed, with a crest level that will be lowered at the start of the dambreak.

Notice that using dams or dam breaks will make that the restart files do not fit anymore with the network and will be neglected.

The flow_lateral_dat_file has some special features. This routine reads the network.cn file to know the type of the laterals (FLNO, FLBR, FLDI) and then creates a complete new lateral.dat file, based on the series PI-XML file. In case a time series is not in the XML file, the original definition is re-used. However, this method is not very efficient so this whole flow_lateral_dat_file routine is most efficient in case you convert ALL the laterals. The locationID is used as the required lateral id. The parameterId is not used, although you can use it to parse the interpolation option to the definition. Therefore include the string "block" in to the parameterId, so the routine knows that the block interpolation option should be used. Default interpolation option is linear. It is of course (in operational systems) not possible to define a periodicity.

Jobs

In the 'jobs' section nothing needs to be changed.
It should be:

Code Block
xml
xml
<jobs>
  <job>
    <jobName>Sobek historical run</jobName>
    <storeDir/>
    <parameter>
      <classIndex>1</classIndex>
    </parameter>
  </job>
</jobs>

Output

In the 'output' section the output locations need to be identified. Moreover the SOBEK_Adapter needs to know in which file to read the output and to which PI-file to write the output so that the generalAdapter can read it.

Type of output

corresponding outputfile

water level, depth on nodes

calcpoint

flow on branches, discharge/velocity

reachseg

results at structures, discharge/crestlevels, waterlevels up&down

struc

Total Waterbalance, Flow

qwb

RR open water levels

ow_lvldt

RR unpaved runoff

upflowdt

RTC decision parameters

rtcparal

1D Wq results: .his for History stations, .map for whole area

delwaq.his and delwaq.map

RR boundary flows

bndflodt

Overlandflow History stations, Velocity, Waterlevels/depth

flshis

mapStack

In the 'mapStack' part the 2D maps are put together in a so called map stack. The generalAdapter will import these map stacks as a grid timeSeries.

Example:

Code Block
xml
xml
<mapStack>
    <fileName>output\dm1dmapstack.xml</fileName>
    <fileMask>dm1d????.asc</fileMask>
    <geoDatum>Rijks Driehoekstelsel</geoDatum>
    <locationId>map</locationId>
    <parameterId>InundationDepth</parameterId>
    <timeStep>unit="hour" multiplier="1"</timeStep>
    <module>2dflow</module>
    <mapStackActive>true</mapStackActive>
  </mapStack>

States

The last section in the SOBEK_Adapter.xml file is 'states'. This describes the read locations and writelocations of the model states. This is similar to other external modules.
RR states: * rrr
1D states: *.rda, *.rdf
2D states: *.fls
WQ states: *.res

Example:

Code Block
xml
xml
<states>
  <stateXmlOutputFile>States\Outputstates.xml</stateXmlOutputFile>
  <state>
    <readLocation>States\Input.rda</readLocation>
    <writeLocation>States\Output.rda</writeLocation>
  </state>
  <state>
    <readLocation>States\Input.rdf</readLocation>
    <writeLocation>States\Output.rdf</writeLocation>
  </state>
  <state>
    <readLocation>States\Input.fls</readLocation>
    <writeLocation>States\Output.fls</writeLocation>
  </state>
  <state>
    <readLocation>States\1Dlevels-in.xyz</readLocation>
    <writeLocation>States\1Dlevels-out.xyz</writeLocation>
  </state>
  <state>
    <readLocation>States\Input.rrr</readLocation>
    <writeLocation>States\Output.rrr</writeLocation>
  </state>
</states>

Longitudinal profiles

Image Added

GeneralAdapter

The generalAdapter is similar to other generalAdapter files. For the exact syntax inside the executeActivities part of the file always copy an existing SOBEK generalAdapter. A special point of attention is that there should always be a meteo time series exported to SOBEK. This file will determine the start and end time of the run.

Please make sure the GA run is configured to set the missing value definition in the XML files it exports to -999.99 and not the default NaN. This should be set in general section, please see the example below. If NaN is used as missing value definition the SOBEK adapter will complain about missing value when there is 0.0 precipitation.

Code Block
xml
xml
<general>
  <rootDir>$REGION_HOME$/Modules/Sobek/Singapore</rootDir>
  <workDir>%ROOT_DIR%</workDir>
  <exportDir>%ROOT_DIR%/Input</exportDir>
  <exportIdMap>IdExportSobek</exportIdMap>
  <importDir>%ROOT_DIR%/Output</importDir>
  <importIdMap>IdImportSobekForecast</importIdMap>
  <dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir>
  <dumpDir>%ROOT_DIR%</dumpDir>
  <diagnosticFile>%ROOT_DIR%/Logs/diagnostics.xml</diagnosticFile>
  <missVal>-999.99</missVal>
  <convertDatum>true</convertDatum>
  <timeZone>
    <timeZoneOffset>+08:00</timeZoneOffset>
  </timeZone>
</general>

Longitudinal profiles

Image Removed

GeneralAdapter

The generalAdapter is similar to other generalAdapter files. For the exact syntax inside the executeActivities part of the file always copy an existing SOBEK generalAdapter. A special point of attention is that there should always be a meteo time series exported to SOBEK. This file will determine the start and end time of the run.

Please make sure the GA run is configured to set the missing value definition in the XML files it exports to -999.99 and not the default NaN. This should be set in general section, please see the example below. If NaN is used as missing value definition the SOBEK adapter will complain about missing value when there is 0.0 precipitation.

...

<general>
  <rootDir>$REGION_HOME$/Modules/Sobek/Singapore</rootDir>
  <workDir>%ROOT_DIR%</workDir>
  <exportDir>%ROOT_DIR%/Input</exportDir>
  <exportIdMap>IdExportSobek</exportIdMap>
  <importDir>%ROOT_DIR%/Output</importDir>
  <importIdMap>IdImportSobekForecast</importIdMap>
  <dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir>
  <dumpDir>%ROOT_DIR%</dumpDir>
  <diagnosticFile>%ROOT_DIR%/Logs/diagnostics.xml</diagnosticFile>
  <missVal>-999.99</missVal>
  <convertDatum>true</convertDatum>
  <timeZone>
    <timeZoneOffset>+08:00</timeZoneOffset>
  </timeZone>
</general>

Supported input parameters

The SOBEK adapter supports the following input parameters:

Parameter ID

Description

H

Water level at an H boundary

Q

Flow rate at a Q boundary

L

Flow rate at a location for lateral discharge

S

Kalman filter (TODO: further specify)

GATE HEIGHT

The gate height as set via a controller

CREST WIDTH

The width of a structure as set via a controller

CREST HEIGHT

The height of a structure as set via a controller

...

How to run a model in Ensemble mode?

...

Notice that this functionality is available only since SbkBatch.exe version 2.1.0.112

Problems/Solutions

SbkBatch seems to hang at startup and use a lot of cpu power

This may happen if sbkbatch cannot write it's diagnostics file. Check if the directory is present and if it is readable by the adapter. The location of the diagnostics file is set in the general section of the xml configuration file:

...

<fewsDiagnosticsFile>Logs\Diagnostics.xml</fewsDiagnosticsFile>

...

Installation and latest version

The adapter software is installed as part of the SOBEK installation. However, due to various features extensions, a later version of the SbkBatch.exe (and the corresponding sobekAdvancedBatch.xsd) can be needed. Therefore the latest version of both can be found here: