Skip to content

Releases: LambdaGeo/dissmodel

v0.3.0

20 Mar 11:02
c04d393

Choose a tag to compare

What's Changed

Added

Sync models — automatic .past snapshot semantics (equivalent to TerraME's cs:synchronize()):

  • SyncSpatialModel — vector substrate, manages <col>_past columns automatically
  • SyncRasterModel — raster substrate, manages <n>_past arrays automatically
  • Both expose a public synchronize() method

I/O — dissmodel.geo.raster.io

  • shapefile_to_raster_backend — load any vector file (Shapefile, GeoJSON, GPKG, ZIP) directly into a RasterBackend, with automatic "mask" band
  • save_raster_backend — write arrays to GeoTIFF without a band_spec
  • load_geotiff / save_geotiff updated with .zip support

RasterMap — new visualization options: scheme (equal_interval, quantiles), legend, auto_mask, save_frames

Map — headless fallback (saves PNGs), new figsize, interval, save_frames parameters

Fixed

  • RasterMap: multiple instances now maintain independent windows — plt.close("all") no longer closes other figures
  • Map: AttributeError: 'Map' object has no attribute 'fig' with Streamlit
  • Map: no longer raises RuntimeError when no display is available
  • make_raster_grid() deprecated → raster_grid() (alias kept until v0.4.0)

Full changelog: CHANGELOG.md

v0.2.1

14 Mar 00:52
c13c25f

Choose a tag to compare

What's Changed

API improvements

  • parse_idx now returns GridPos(row, col) — a namedtuple that eliminates the
    (col, row) vs (row, col) ambiguity. Tuple unpacking remains fully compatible,
    so existing code continues to work without changes.
  • regular_grid() renamed to vector_grid() for symmetry with the raster substrate.
    The old name is kept as a DeprecationWarning alias and will be removed in v0.3.0.
  • GridPos is now exported from dissmodel.geo.vector.regular_grid.

Bug fixes

  • Fixed TypeError: parameter 'kwargs' not allowed in RasterModel.setup() and
    RasterCellularAutomaton.setup() caused by a salabim incompatibility with **kwargs.

Documentation

  • API reference split into api/geo/vector.md and api/geo/raster.md.
  • getting_started.md expanded with execution modes and substrate comparison table.
  • visualization.md updated to cover RasterMap.
  • core.md expanded with OOP modeling section and per-model time control example.
  • CHANGELOG.md updated.

Upgrade notes

# before
from dissmodel.geo import regular_grid
gdf = regular_grid(dimension=(30, 30), resolution=1)

# after
from dissmodel.geo.vector.regular_grid import vector_grid
gdf = vector_grid(dimension=(30, 30), resolution=1)

# parse_idx
from dissmodel.geo.vector.regular_grid import parse_idx
pos = parse_idx("3-4")
pos.row  # 3
pos.col  # 4

Full changelog: [CHANGELOG.md](https://github.com/lambdageo/dissmodel/blob/main/CHANGELOG.md)

Add Raster/NumPy Backend for Cellular Automata Models

10 Mar 19:24
f5ba82b

Choose a tag to compare

This release introduces a RasterBackend that allows cellular automata models in DisSModel to run using NumPy arrays instead of iterating over GeoDataFrame rows.

The existing vector backend (GeoPandas + libpysal) remains unchanged. The raster backend is an optional execution engine behind the same API.

0.1.5

27 Feb 17:57
0863219

Choose a tag to compare

  • Description:
## What's new in v0.1.5

- Consolidated all dependencies in `pyproject.toml`
- NumPy docstrings and type annotations across all modules
- All CA and SysDyn models refactored to English
- Fixed PATTERN fill ID convention (`row-col`)
- Performance: `neighbor_values()` in all CA rules
- Fixed `Environment` salabim animation crash in headless environments
- Added CLI, Streamlit and Jupyter notebook examples for all models
- MkDocs documentation with mkdocstrings
- CI workflow with pytest and mypy

0.1.4

09 Jun 13:17
1af9a84

Choose a tag to compare

0.1.4 Pre-release
Pre-release
Merge pull request #10 from profsergiocosta/doc

Doc

0.1.3b_fix

29 May 17:37
d243ec1

Choose a tag to compare

0.1.3b_fix Pre-release
Pre-release
Update pyproject.toml