Skip to content

Package Format

A Hydrata scenario package is a self-contained directory (or zip file) with everything needed to run an ANUGA simulation.

Directory structure

package/
  scenario.json                    # simulation configuration
  inputs/
    dem.tif                        # elevation raster (GeoTIFF, projected CRS)
    boundary.geojson               # domain boundary lines
    inflow.geojson                 # surface inflow lines (hydrographs)
    rainfall.geojson               # rainfall polygons (optional)
    friction.geojson               # friction zones (optional)
    friction_raster.tif            # Manning's-n raster (optional)
    structure.geojson              # building footprints (optional)
    mesh_region.geojson            # mesh refinement regions (optional)
    breakline.geojson              # breaklines (optional, dormant)
    catchment.geojson              # catchment polygons (optional)
    nodes.geojson                  # network nodes (optional)
    links.geojson                  # network links (optional)
  outputs_<project>_<scenario>_<run>/   # created at runtime
    run_<p>_<s>_<r>.sww            # ANUGA SWW time-series output
    run_<p>_<s>_<r>_depth_max.tif
    run_<p>_<s>_<r>_velocity_max.tif
    run_<p>_<s>_<r>_depthIntegratedVelocity_max.tif
    run_<p>_<s>_<r>_stage_max.tif
    run_<p>_<s>_<r>_depth_*.tif    # per-timestep depth rasters
    run_anuga_<batch>.log          # simulation log
    checkpoints/                   # checkpoint pickle files

File names are declared, not fixed

The names above are illustrative. Every input file is named by the corresponding field in scenario.json and looked up inside inputs/, so a package you assemble yourself can call them whatever you like as long as the two agree. Packages Hydrata builds name each file after its layer, for example rai_42_design_storm.json, which is why a downloaded package does not look like the tree above. Only scenario.json, the inputs/ directory and the run's output directory have fixed names.

Rainfall has its own file. A rainfall polygon is not an inflow feature with a type tag on it, so a rain-driven model has a rainfall entry and may have no inflow entry at all.

breakline.geojson is part of the format but nothing produces one today: breaklines were retired from the interface and the field is kept so that old packages still load.

Input file formats

Elevation (dem.tif)

  • Format: GeoTIFF
  • CRS: Any projected system (e.g. EPSG:28355). Must be in metres.
  • Band: Single-band float with elevation in metres above datum

Boundary (boundary.geojson)

GeoJSON FeatureCollection with LineString features. Each feature has:

  • properties.boundary: one of Dirichlet, Reflective, Transmissive, Time. Dirichlet is what the interface gives a new boundary.
  • properties.location: External or Internal. Only external boundaries form the domain polygon.
  • properties.data: only meaningful for a Time boundary, which is the one type that takes a value. It is a stage in metres, either a single number or a resolved series of {timestamp, value} objects; the other three types carry no value. Only the first external Time feature is used, because ANUGA collapses them all under one tag.
  • crs.properties.name: EPSG code string

Inflow (inflow.geojson)

GeoJSON FeatureCollection of LineString features, each an inflow location:

  • properties.data: a flow rate in m^3/s, either a constant or a resolved hydrograph
  • properties.description: the location's title

There is no properties.type discriminator. The file holds surface inflow lines and nothing else; rainfall lives in rainfall.geojson.

Rainfall (rainfall.geojson)

GeoJSON FeatureCollection of Polygon features:

  • properties.data: an intensity in mm/hr, either a constant or a resolved hyetograph
  • properties.description: the polygon's title

Intensities are converted to m/s on the way into ANUGA. See Simulation Defaults.

Friction (friction.geojson)

GeoJSON Polygon features with properties.mannings (float). Ground no polygon covers takes the default Manning's n.

Structure (structure.geojson)

GeoJSON Polygon features with properties.method, one of three:

  • Reflective: the footprint becomes an interior hole in the mesh, tagged reflective. This is the default.
  • Mannings: the footprint stays in the mesh and takes a Manning's n of 10.
  • Raised: the footprint stays in the mesh and its ground is raised. properties.raised_height carries the height in metres; without one, the scenario's default applies.

Output files

File pattern Description
*.sww ANUGA's native NetCDF format with full time-series
*_depth_max.tif Maximum water depth (metres) at each cell
*_velocity_max.tif Maximum flow velocity (m/s) at each cell
*_depthIntegratedVelocity_max.tif Maximum momentum at each cell
*_stage_max.tif Maximum water surface elevation (metres)
*_<quantity>_NNNNNN.tif Per-timestep rasters (seconds in filename)
run_anuga_*.log Simulation log with progress and diagnostics