[general]
name=Itinera – Least-Cost Pathways
qgisMinimumVersion=3.28
qgisMaximumVersion=4.99
description=Least-Cost Path, Corridor (LCC), FETE and PDI validation for archaeological movement modelling.
about=Anisotropic cost-surface analysis using scipy.sparse Dijkstra. Provides Processing algorithms (Slope Cost Surface, Friction Cost Surface, LCP, Stochastic LCP, Corridor, FETE, PDI Validation, Resample DEM) plus an interactive map-click tool for point-to-point LCP. No external pip dependencies required (uses numpy/scipy bundled with QGIS). Released under the MIT licence.
version=0.6.0
author=Patrick Leiverkus (DAO)
email=patrick.leiverkus@uni-oldenburg.de
homepage=https://github.com/leiverkus/itinera
tracker=https://github.com/leiverkus/itinera/issues
repository=https://github.com/leiverkus/itinera
tags=archaeology,least cost path,corridor,fete,cost surface,movement,tobler,anisotropic
category=Analysis
icon=icon.png
experimental=True
deprecated=False
hasProcessingProvider=yes
changelog=
    0.6.0 - The pure numpy/scipy core is now also published as the `itinera` PyPI library (pip install itinera), built single-source from core/ via hatchling. No change to the QGIS plugin itself.
    0.5.9 - Dev tooling: flake8 is now a CI check (max-line-length 88); excluded maintainer/dev-only files (CLAUDE.md, setup.cfg, pytest.ini, requirements-dev.txt) from the packaged zip. No runtime change.
    0.5.8 - QGIS 4 / Qt6 runtime fixes: the settings dialog crashed on QDialogButtonBox.Ok (now scoped StandardButton), and the LCP output used QVariant.Int which PyQt6 removed (now QMetaType on Qt6, QVariant on Qt5). Verified on QGIS 3.28 and 4.0.
    0.5.7 - Code hygiene: removed unused imports (flake8 F401) and added a setup.cfg ignoring W503/W504. No behaviour change.
    0.5.6 - Declared QGIS 4 compatibility via qgisMaximumVersion=4.99 (without it QGIS assumed a 3.99 maximum and marked the plugin incompatible on QGIS 4). Verified loading on QGIS 4.0.
    0.5.5 - Documentation: added QGIS 3.28+/4.0 and Qt5/Qt6 compatibility badges to the README.
    0.5.4 - QGIS 4 / Qt6 compatibility: the settings dialog used exec_(), which PyQt6 removed; switched to exec() (works on QGIS 3 and 4). No other changes.
    0.5.3 - The "Interactive LCP settings…" button now has its own gear icon, distinct from the path icon of the LCP tool button.
    0.5.2 - Replaced the blank placeholder plugin icon with a real, visible one, so the two interactive-tool buttons are findable on the Plugins toolbar. Clarified in the docs where those buttons live.
    0.5.1 - Documentation only: README status badges, future-directions wording, and removal of the internal publishing guide from the README and the packaged zip. No code changes.
    0.5.0 - New "Resample DEM (block mean)" algorithm and a memory pre-flight warning for large DEMs; stochastic_lcp guards against n_iter < 1; added a user manual (docs/MANUAL.md) and verified references (docs/REFERENCES.md, references.bib). Corrected stochastic citation to Lewis 2021.
    0.4.0 - Interactive LCP tool is now configurable: an "Interactive LCP settings…" toolbar/menu action picks the cost function and neighbourhood (parity with the Processing algorithms); the graph cache rebuilds only when settings change.
    0.3.0 - New Stochastic least-cost path (Lewis 2023): N Monte-Carlo realisations with spatially-correlated DEM error (RMSE-scaled) and/or random edge dropping, accumulating a probabilistic corridor in [0,1]. Seed for reproducibility; supports the barrier/multiplier raster.
    0.2.2 - Fix: xy_to_rowcol now floors instead of truncating, so points just west/north of the raster are correctly out of bounds (not wrongly snapped to row/col 0).
    0.2.1 - Fixes: point layers are reprojected to the DEM CRS before cell lookup (algorithms + map tool); barrier/friction rasters are validated against the DEM CRS and geotransform (not just pixel count); rotated/non-square rasters are rejected with a clear error. Documented PDI limitations.
    0.2.0 - Optional barrier / multiplier raster on the slope-based algorithms (slope cost surface, LCP, LCC, FETE): edge cost is scaled by the mean of the two cells' values (>1 discourages, <1 prefers, e.g. known roads); NoData or <=0 cells are impassable (cliffs, deep wadis).
    0.1.0 - Initial release: anisotropic LCP, LCC corridor, FETE, PDI validation, slope & friction cost surfaces, interactive two-click LCP map tool. Pure numpy/scipy/GDAL (no external pip dependencies).
