Versions Compared

Key

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

 

 

Wiki Markup
{scrollbar}

Table of Contents

...

The FIAT-adapter (fews_wrapper.py) is wrapped around the FIAT computational core and available in the FIAT distribution. To accommodate portability without python installation troubles, a self-contained executable (FIAT.exe) is available on request with Edwin Bos at Deltares.

The integration of FIAT in a Delft-FEWS workflow is established by direct support of the Delft-FEWS formats (pi_run.xsd, NetCDF-CF and pi_diag.xsd) in combination with the JSON model configuration file of FIAT. This support is available for both deterministic as well as ensemble workflows, accommodating parallel handling of ensemble members when desired.

The pi-run file

The pi-run file specifies where contains the instructions for FIAT. It holds the path references to the JSON file, the max_depth .nc, and floodwave .nc (optional)

 

 

The max_depth.nc (input) file

This file is a standard NetCDF-CF grid with one timestamp. The variable name to be used is

 

 

The floodwave.nc (input) file

 

file as well as the output files. In addition, it holds a list of exposed categories to include in the calculation. All file names are pre-defined in the code and need to be used. Paths can be defined relative to the work directory if desired.

The following items are required for use with FIAT.

  • <workDir>path</workDir>
    • Path is a full path to a directory, to be used as working directory by Delft-Fiat.
  • <inputNetcdfFile>path/max_depth.nc</inputNetcdfFile>
    • Full or relative path to max_depth.nc, containing variable “waterdepth” with dimensions “time,y, x” or “time,realization,y, x”. This represents the maximum waterdepth during a flood event. If the file holds multiple timesteps, FIAT assumes that the last timestep represents the maximum
  • <inputNetcdfFile>path/floodwave.nc</inputNetcdfFile> (optional)
    • Full or relative path to floodwave.nc, containing variable “waterdepth” with dimensions “time, y, x” or “time,realization,y, x”. This represents the waterdepth map evolving in time during a flood event.
  • <outputNetcdfFile>path/impact_on_grid.nc</outputNetcdfFile>
    • Path is a full or relative path to a not-yet-existing file called impact_on_grid.nc, which will be created as output by Delft-Fiat and filled with the output grids.
  • <outputNetcdfFile>path/impact_summary.nc</outputNetcdfFile>
    • Path is a full or relative path to a not-yet-existing file called impact_summary.nc, which will be created as output by Delft-Fiat and filled with the summary results.
  • <outputDiagnosticFile>path/fiat_diagnostics.xml</outputDiagnosticFile>
    • Path is a full or relative path to a not-yet-existing file called fiat_diagnostics.xml, which will be created as output by Delft-Fiat.
  • <properties>
    • <string key="JSON" value="path"/>
      • Full or relative path to json file defining the supported categories.
    • <string key="CATEGORY_1" value="Direct_industrie"/>
      • Specify the categories of interest as string elements, with unique random keys and the category name (specified in JSON file) as value.
  • </properties>

 

Code Block
languagexml
titleExample pi-run.xml as input to FIAT
<?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.8">
    <logLevel>info</logLevel>
    <timeZone>0.0</timeZone>
    <startDateTime date="2007-11-08" time="00:00:00"/>
    <endDateTime date="2007-11-10" time="02:00:00"/>
    <time0 date="2007-11-08" time="00:00:00"/>
    <lastObservationDateTime date="2007-11-10" time="02:00:00"/>
    <workDir>D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\work</workDir>
    <inputNetcdfFile>D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\to_FIAT\floodwave.nc</inputNetcdfFile>
    <inputNetcdfFile>D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\to_FIAT\max_depth.nc</inputNetcdfFile>
    <outputDiagnosticFile>D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\logs\fiat_diagnostics.xml</outputDiagnosticFile>
    <outputNetcdfFile>D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\from_FIAT\impact_on_grid.nc</outputNetcdfFile>
    <outputNetcdfFile>D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\from_FIAT\impact_summary.nc</outputNetcdfFile>
    <properties>
        <string key="JSON" value="D:\fews\fews_201502\FEWS_VR\Modules\FIAT\Rotterdam\fiat_vr.json"/>
        <string key="CATEGORY_1" value="Direct_industrie"/>
        <string key="CATEGORY_2" value="Direct_kantoor"/>
        <string key="CATEGORY_3" value="Direct_eengezinswoningen_inboedel_normaal"/>
        <string key="CATEGORY_4" value="Aantal_eengezinswoningen"/>
        <string key="CATEGORY_5" value="Inwoners"/>
    </properties>
</Run>

 

The JSON file

The JSON file is the FIAT model configuration file, with a similar function to the Excel file often used in a FIAT stand alone context. The JSON file is basically a python dictionary definition that defines per category at least the exposure grid, the damage function and the max damage value. Other properties may be included when needed.

The format is:

Code Block
languagepy
titleJSON format specification for FIAT
{
        'category name': {
            'exposure grid filepath': '', (full or relative)
            'maximum damage': float(),
            'bu maximum damage': float(), (optional)
            'damage function filepath': '', (full or relative)
            'bu damage function filepath': '', (optional)
            'output grid filepath': '', (only filename, not path!)
            'weight': float(),
            'units': '',
        }
        'category name': {} (repeat for all categories)
}
Code Block
languagexml
titleExample JSON configuration file
{
    "Direct_industrie": 
    {
        "damage function filepath": "../../SSM2015/Functions/393.csv",
        "maximum damage": 1769.0,
        "output grid filepath": "Direct_industrie.tif",
        "weight": 1.0, 
        "units": "m2",
        "exposure grid filepath": "../../SSM2015/25x25m_grid/industrie.tif"
    },
    "Direct_kantoor":
    {
        "damage function filepath": "../../SSM2015/Functions/391.csv",
        "maximum damage": 1283.0,
        "output grid filepath": "Direct_kantoor.tif",
        "weight": 1.0, 
        "units": "m2",
        "exposure grid filepath": "../../SSM2015/25x25m_grid/kantoor.tif"
    },
    "Aantal_eengezinswoningen":
    {
        "damage function filepath": "../../SSM2015/Functions/800.csv",
        "maximum damage": 1,
        "output grid filepath": "Aantal_eengezinswoningen.tif",
        "weight": 1.0, 
        "units": "objecten",
        "exposure grid filepath": "../../SSM2015/25x25m_grid/eeng_aant.tif"
    },
    "Direct_eengezinswoningen_inboedel_normaal":
    {
        "damage function filepath": "../../SSM2015/Functions/8.csv",
        "maximum damage": 70000.0,
        "output grid filepath": "Direct_eengezinswoningen_inboedel_normaal.tif",
        "weight": 1.0, 
        "units": "objecten",
        "exposure grid filepath": "../../SSM2015/25x25m_grid/eeng_aant.tif"
    },
    "Inwoners":
    {
        "damage function filepath": "../../SSM2015/Functions/2_0001.csv",
        "maximum damage": 1283.0,
        "output grid filepath": "Inwoners.tif",
        "weight": 1.0, 
        "units": "personen",
        "exposure grid filepath": "../../SSM2015/25x25m_grid/inwoners.tif"
    }
}

 

 

The max_depth.nc (input) file

The floodwave.nc (input) The JSON file

 

The impact_on_grid.nc (output) file

...