Version: [2489] movecost 4.0.1

4.0.1 - Qt6 enum scoping (plugins.qgis.org Qt6 checker, 16 issues):
- Fully scoped every Qt/QGIS enum flagged by the repository checker:
Qt.AspectRatioMode.KeepAspectRatio, Qt.TransformationMode.
SmoothTransformation, Qt.KeyboardModifier.ShiftModifier,
Qt.DockWidgetArea.RightDockWidgetArea, QgsRasterBandStats.Stats.All,
QgsColorRampShader.Type.Interpolated (movecost.py,
movecost_dialog.py, layer_organizer.py).
- The scoped forms resolve on both Qt5 (PyQt5) and Qt6 (PyQt6)
bindings, verified against QGIS 3.x/Qt5; no behavior change.
4.0.0 - Port to the movecost R package 3.0.0 (mc_* API):
- movecost 3.0.0 removed the legacy movecost()/movebound()/movecorr()/
movealloc()/movecomp()/movenetw()/moverank() functions: every call
now errors with ".Defunct". All 14 Processing scripts were ported
to the new architecture: the cost surface is built once with
mc_surface() and reused by every analysis (mc_accum, mc_paths,
mc_corridor, mc_boundary, mc_alloc, mc_network, mc_rank, mc_comp).
- Dependency stack updated: terra + sf + igraph + ggplot2 (raster is
kept only because the QGIS R provider hands rasters over as
RasterBrick; elevatr is needed by the by-polygon variants). The
retired 2.x dependencies chron, gdistance, sp and Matrix are no
longer installed.
- The parameter interface of every algorithm is UNCHANGED (existing
models and pyArchInit keep working). Two new optional parameters:
Corridor_Method (reach/through) on Movecorr — 'through' is the new
directional corridor of movecost 3.0 — and Penalty on Moverank,
whose LCPN is no longer capped at 6.
- IrregularDTM is kept for compatibility but has no effect: NoData
cells are excluded from the cost graph by construction in 3.0.
- Result fields preserved (cost, length_m, length_km, time_converted,
area_m2/km2/ha) plus the new cost_hms from mc_paths/mc_rank;
movebound polygons now carry the exact area and perimeter computed
by mc_boundary; the corridor accumulated surfaces A/B are two
cheap extra mc_accum() queries on the shared cost surface.
- Plots are ggplot2-based and still saved to
<tempdir>/movecost_plots/movecost_latest_plot.png for the
pyArchInit results panel.
- Note: movecost 3.0.0 also corrects errors of the 2.2 cost
functions (ks, ma, pcf, p, vl, h and dynamic-speed metabolic
costs with V=0): results with those settings differ (correctly)
from the 2.x series.
3.1.4 - Pass plugins.qgis.org Bandit + flake8 review (W503/W504 +
B112/B110):
- Collapsed the Qt5/Qt6 dock feature flags expression into a single
line via getattr(QDockWidget, 'DockWidgetFeature', QDockWidget),
removing the multi-line OR that triggered W503 when split before
and W504 when split after the operator.
- Narrowed 4 broad 'except Exception:' handlers in plot-discovery
code to 'except (OSError, PermissionError):' to satisfy Bandit
B112 (try-except-continue) and B110 (try-except-pass) rules.
No behavior change: the operations that can fail are filesystem
calls (os.listdir, glob, getmtime), which raise OSError variants.
3.1.3 - Plugin repository W504 compliance:
- In movecost_dialog.py (Qt5/Qt6 dock feature flags), moved the '|'
operator to the beginning of the continuation lines instead of the
end (modern PEP 8 recommendation; resolves W504 warnings from the
plugins.qgis.org review).
3.1.2 - Document Topo_Dist parameter in algorithm help files:
- Added Topo_Dist parameter description to all 14 .rsx.help files
(shown in the QGIS Processing parameter dialog when hovering).
- Bumped Version 2.1 -> 2.2 marker in movecost.rsx.help ALG_DESC.
3.1.1 - Plugin repository compliance:
- Removed deprecated supportsQt6 metadata flag (Qt6 compatibility is
now determined solely by qgisMaximumVersion=4.99).
- Cleaned up Python source files to satisfy plugins.qgis.org's
Bandit/flake8 review: removed ~30 unused imports, replaced bare
'except:' with explicit 'except Exception:', fixed long lines,
replaced star imports in movecost_dialog with explicit imports,
removed orphan 'standard_library.install_aliases()' call.
- No behavior changes; this is a tooling/cleanup release.
3.1.0 - Support movecost R package 2.2 (topo.dist parameter):
- New "Topo_Dist" parameter (default FALSE) added to all 14 algorithm
scripts
(movecost, movealloc, movebound, movecomp, movecorr, movenetw,
moverank,
plus their _by_polygon variants). When TRUE, accumulated cost is
calculated using topographic surface distance instead of planar
distance (surface = planar * sqrt(1 + slope^2)). Recommended for
time-based hiking functions; use with caution on metabolic energy
functions which are derived from planar measurements.
- Bumped minimum required movecost R package version from 2.1 to 2.2
(auto-installer in each rsx will now prompt the update).
3.0.1 - Fix Qt6 compatibility: replaced PyQt5 import in
resources_rc.py with qgis.PyQt
3.0 - Major UI redesign and improvements:
- Converted dialog to dockable panel (QDockWidget) that docks to right
side of QGIS
- New tabbed interface: Algorithms, Results, Export, Settings
- R Plot Viewer: displays plots directly in the plugin panel
- Cost Summary: shows statistics from analysis results
- Export options: CSV tables, HTML reports
- Modern CSS styling with color-coded algorithm buttons
- movecomp: now supports unlimited cost function comparison
(comma-separated input)
- All LCP outputs now include cost, time_converted, length_m,
length_km fields
- All polygon outputs now include area_m2, area_km2, area_ha fields
- Fixed barrier support: proper sf to Spatial conversion for all
algorithms
- Layer organization: automatic grouping and styling of output layers
2.1 - Qt6/QGIS 4 compatibility, removed deprecated rgdal dependency,
multilingual help files
2.0 - Initial release with sf/terra support

yes

enzo

2026-09-10T07:44:15.451371+00:00

3.0.0

4.99.0

None

no

Version management

Plugin details