Recent Releases of Itzï

Itzï - Itzï 26.6

Itzï 26.6 marks the tenth anniversary of Itzï's first publication on PyPI,
on 30 June 2016.
This anniversary edition introduces hotstart checkpointing and resume support,
improves the robustness of timed inputs and flow routing, and expands
programmatic workflows with new xarray, NumPy, Icechunk and CSV-based
providers.
It also strengthens validation and testing, while simplifying the internal
configuration and simulation setup code.

Improvements

  • Add hotstart checkpoints and resume support,
    with a new --resume-from CLI option.
  • Continuity error is now checked regularly during the simulation,
    even when output intervals are long.
  • Flow routing is now more robust in steep-slope and shallow-flow cases.
  • Add new programmatic input and output providers based on xarray,
    NumPy, Icechunk and CSV.

Changes in the configuration file

  • Add an optional [hotstart] section with wallclock_step and
    save_file to configure checkpoint writing.

Corrected bugs

  • Force a time-step break when an input map changes,
    preventing incorrect mass balance accounting.
  • Statistics output now works correctly with raster masks.
  • Prevent division by zero in the Froude computation.
  • Detect empty input rasters when loaded.
  • Check the temporal type of existing STRDS at initialization,
    failing early on mismatches.
  • Relative swmm_inp paths are now resolved relative to the
    configuration file directory, if not found in the current working directory.

Internals

  • Refactor ConfigReader to build validated configuration models.
  • Introduce SimulationBuilder and decouple SimulationRunner from
    configuration parsing.
  • Replace several internal dataclasses with Pydantic BaseModel and
    improve type hints and validation.
  • Move messaging to Python's logging framework.
  • Improve GRASS session cleanup on exit.
  • Add an optional cloud dependency extra for xarray and icechunk support.
  • Update supported Python versions to 3.12 and 3.13.
  • Expand the automated test suite, especially for hotstart, timed inputs,
    statistics, cloud-style providers, and non-square cells.

Climate Change - Natural Hazard and Storms - Python
Published by lrntct about 1 month ago

Itzï - Itzï version 25.8

Itzi 25.8

This version introduces several practical improvements that make flood modeling more reliable and efficient.
It adds support for water surface elevation and soil water content as direct inputs,
implements real-time mass balance error tracking to prevent simulation issues, and saves complete drainage network results to the database.
The update also fixes important bugs related to boundary conditions, mass balance calculations, and capillary pressure conversions,
while improving the internal code structure for better maintainability.

Improvements

  • Accept water surface elevation (terrain + water depth) as an input value (issue #27)
  • Accept soil water content as an input value (issue #96)
  • Mass balance error is now tracked in real time.
    The simulation will stop if the mass balance error is above a given threshold (issue #114)
  • In the water depth maps exported to GRASS, the values under the threshold are no longer deleted, but exported and then masked with r.null (issue #123)
  • The results for all the nodes and links of the drainage simulation are now saved to the database, not only those with coordinates.
  • The output map "mean_losses* now has the same units (mm/h) as the input map losses.
  • The distributed wheels are now targeting armv8-a and x86-64-v3.
    This allows better performance with NEON and AVX2 vector extensions.
    Most platforms less than 10 years old are compatibles.
    In case of incompatibilities, building from source remains an option.
  • A wheel for Windows on ARM64 is now available.

Corrected bugs

  • Fix the conversion factor of input capillary pressure (#132)
  • Fix and improve the mass balance computation in the statistical file (issue #77)
  • Open boundary condition is now properly applied on all domain boundaries (issue #41)
  • The layer assignation for drainage links is now working correctly (issue #138)

Internals

  • The reporting functionality is improved and better isolated.
    Memory output providers are added in addition to GRASS. (#112, #121, #125, #127, #129)
  • Array names, description, units, etc. are now centralized (#134)
  • Add benchmark for the tutorial (#113)
  • Main surface flow functions in cython are better optimized for vectorization,
    with less branching and accepting only c_contiguous arrays. (#146)
  • The boundary condition logic is now included into the Cython loop, instead of being done in python with numpy slices. (#151)

Climate Change - Natural Hazard and Storms - Python
Published by lrntct about 1 year ago

Itzï - Itzi version 25.4

itzi version 25.4

Climate Change - Natural Hazard and Storms - Python
Published by lrntct over 1 year ago