disslucc
Land Use and Cover Change (LUCC) modeling, raster-only, on top of dissmodel
LuccME's components -- demand, potential and allocation -- in Python: continuous (CLUE-like), discrete (CLUE-S-like), spatial-lag potential and saturation. Agreement with the original TerraME/LuccME is checked in disslucc-benchmark; see Validation.
pip install disslucc # from PyPI
pip install "disslucc[examples]" # + matplotlib, for the examples
From a clone, for development: pip install -e ".[dev]".
from dissmodel.core import Environment
from disslucc import DemandInline, PotentialLinearRegression, AllocationClueLike
from disslucc.schemas import RegressionSpec, AllocationSpec
demand = DemandInline(values=[...], land_use_types=["forest", "urban"])
potential = PotentialLinearRegression(backend=backend, demand=demand, ...)
allocation = AllocationClueLike(backend=backend, demand=demand, potential=potential, ...)
Environment(end_time=7).run()
No ModelExecutor, no TOML, no CLI -- the script is the complete
experiment. When automatic provenance matters more (production, CI),
disslucc.executors brings ModelExecutor/ExperimentRecord back as
a second entry point, with a CLI, same math -- see
API Reference.
Where to go next
- Quickstart -- installing, the first model, ready-made examples
- API Reference -- reference for every public class and parameter
- Architecture -- what's faithful to the original repositories, what was simplified, what's new
- Validation -- where the comparison with TerraME lives (disslucc-benchmark) and what is checked in this repository
- Decisions -- full history of decisions and tests throughout development
- Notebooks -- two small, fully synthetic (no shapefiles, no
vendored data) examples you can read top to bottom and run cell by
cell: continuous (CLUE)
and discrete (CLUE-S).
Start here if you want to understand the mechanics before running the
real, validated examples in
examples/.
Part of the DisSModel ecosystem
disslucc is a satellite package built on
dissmodel, the core
discrete spatial modeling framework. See the
dissmodel documentation for
the underlying Environment/Model/RasterBackend concepts this
package builds on.