Skip to main content

FEWS-3Di coupling

Project description

Program to start 3Di simulations from FEWS.

Installation and usage

We can be installed using python 3.6+ with:

$ pip install fews-3di

The script is called run-fews-3di, you can pass --help to get usage instructions and --verbose to get more verbose output in case of problems.

run-fews-3di looks for a run_info.xml in the current directory by default, but you can pass a different file in a different location with --settings:

$ run-fews-3di
$ run-fews-3di --help
$ run-fews-3di --settings /some/directory/run_info.xml

Configuration and input/output files

The expected information in run_info.xml is:

<?xml version="1.0" encoding="UTF-8"?>
<Run xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://www.wldelft.nl/fews/PI"
     xsi:schemaLocation="http://www.wldelft.nl/fews/PI
                         http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_run.xsd"
                         version="1.5">
    <startDateTime date="2020-01-26" time="10:00:00"/>
    <endDateTime date="2020-01-30" time="12:00:00"/>
    <properties>
        <string key="api_token" value="aBCd1234.5678tOkeNabcde"/>
        <string key="organisation" value="12345678abcd"/>
        <string key="modelrevision" value="abcd123456787"/>
        <string key="simulationname" value="Simulation name"/>
        <string key="save_state" value="True"/>
        <string key="fews_state_management" value="True"/>
        <string key="use_last_available_state" value="False" />
        <string key="save_state_time" value="1400"/>
        <string key="saved_state_expiry_days" value="5"/>
        <string key="rain_type" value="radar"/>
        <string key="rain_input" value="730d6675-35dd-4a35-aa9b-bfb8155f9ca7"/>
        <string key="rain_radar_multiplier" value="0.8"/>
        <string key="fews_pre_processing" value="True"/>
        <string key="lizard_results_scenario_name" value="Testsimulatie"/>
        <string key="lizard_results_scenario_uuid" value=""/>
        <string key="initial_waterlevel" value=""/>
        <string key="api_host" value=""/>
        <string key="use_lizard_timeseries_as_boundary" value=""/>
        <string key="boundary_file" value="boundary_file.json"/>
        <string key="simulation_template" value="default"/>
    </properties>
</Run>

Note: saved_state_expiry_days used to be spelled as save_state_expiry_days, without a “d”. The example radar uuid is the Dutch rainfall radar (NRR).

save_state: This option enables using and saving state files. To use a warm state provide a text file with id in the states folder using the name states/3di-saved-state-id.txt. A cold state is supplied in a similar way with the name: states/3di-cold-state-id.txt. If this option is enabled, after the simulation the id of the saved state at is updated in same file states/3di-saved-state-id.txt.

fews_state_management: Can be set to False to overrule the filebased state management for FEWS. Instead only stores states in the 3Di database, which can be picked up with the option use_last_available_state. Default True.

use_last_available_state: To overpass the state management system and directly take the last available state in the 3Di database the option: use_last_available_state can be set to True.

save_state_time: This parameter defines the time in the simulation (in seconds) when the state should be saved. If left empty the end of the simulation is used.

saved_state_expiry_days: The expiry time can be set to store states for a relevant period to enable hindcasting and at the same time prevent the usage of too much storage space.

rain_type: multipe rain-types can be used in the configuration:

  • constant

  • radar

  • custom

rain_input: according to the chosen rain-type, a rain input must be given

in the configuration:

  • constant –> integer [m/s]

  • radar –> lizard uuid

  • custom –> two options: rain_csv or rain_netcdf. These files must be stored in the input directory as input/rain.csv and input/precipitation.nc

rain_radar_multiplier: can be used to multiply the rain_input radar

with a constant value. This can be used to correct the radar input. The default value is 1.0.

fews_pre_processing: can be True or False. Must be True if the

results are needed in fews: additional pre_processing of the results is needed.

initial_waterlevel: can be min, max, or mean. When specified

the initial waterlevel raster is taken into account. If left empty no initial waterlevel is used in the simulation.

initial_waterlevel: if you want to use the initial waterlevel raster as

defined in the settings (leave empty if no initial waterlevel is predefined):

  • min

  • mean

  • max

api_host: (optional) api_host address can be added here. If not provided the default api_host address (”https://api.3di.live/v3.0”) will be used.

use_lizard_timeseries_as_boundary: (optional) can be True or False. Must be True if the boundary conditions of the simulation has to be updated by the boundary_file.json

boundary_file: (optional) the name of the boundary json file that will be updated to the simulation if use_lizard_timeseries_as_boundary is True. No checks are done for the content of the file.

simulation_template: (optional) the name of the simulation template to be used for the simulation. If not provided defaults to default, the simulation template generated at model creation.

Several input files are needed, they should be in the input directory relative to the run_info.xml:

  • run_info.xml

  • input/lateral.csv

  • input/precipitation.nc

  • input/evaporation.nc

  • input/boundary_file.json

  • input/ow.nc

  • model/gridadmin.h5

Output is stored in the output directory relative to the run_info.xml:

  • output/simulation.log (unavailable, but included in the zip)

  • output/flow_summary.log (idem)

  • output/log_files_sim_ID.zip

  • output/results_3di.nc

  • output/dischages.csv

  • output/ow.nc

Development

Development happens on github. See DEVELOPMENT.rst for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fews_3di-3.8.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

fews_3di-3.8-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file fews_3di-3.8.tar.gz.

File metadata

  • Download URL: fews_3di-3.8.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for fews_3di-3.8.tar.gz
Algorithm Hash digest
SHA256 fe7b1888a895dfbe783c891af28f248fa35db1cb21020dbdecbc96b0d5cbd9d5
MD5 41cb31c486aa0dc14789f913d059880c
BLAKE2b-256 804b18b6b1c2161b64f12a4de57c9974abe4c5500c84685441602537cbd4ba1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fews_3di-3.8.tar.gz:

Publisher: release.yml on nens/fews-3di

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fews_3di-3.8-py3-none-any.whl.

File metadata

  • Download URL: fews_3di-3.8-py3-none-any.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for fews_3di-3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6478e201d486edffbdc8eea0a731241d862f7442b364c7f8ad225ee6747b0ccc
MD5 a0c27594707818cbf9bef4637c2b80e9
BLAKE2b-256 37da23060fa0924acce601398fcb5ba65a236fc0f12cccf3c904998a6c6df58b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fews_3di-3.8-py3-none-any.whl:

Publisher: release.yml on nens/fews-3di

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page