Version: [4436] Hotspot Analysis v3 4.0.0

4.0.0
- Complete migration to QGIS Processing framework
(QgsProcessingAlgorithm)
- Three independent algorithms in the Processing Toolbox, Graphical
Modeler, and batch mode
- Compatible with QGIS 3.22+ and 4.x via qgis.PyQt — no custom dialog
required
- Provider structure: Hotspot Analysis v4 > LISA (extensible for
future methods)
- Fixed: G_Local now uses star=True — correct Gi* definition; previous
versions
computed Gi (star=False), a different statistic
- Fixed: p-values use 1-Phi(|Z|) — one-tailed with absolute Z-score,
aligned with
GeoDa and Ord & Getis (1995); previous versions used signed Z causing
cold spots
to be invisible in output styles
- Fixed: removed Z-score sign flip for datasets with negative mean —
methodological
bug present since v1 with no reference implementation support
- Fixed: output field names changed from hyphens (Z-score, p-value,
q-value) to
underscores (Z_score, p_value, q_value) — hyphens broke QML filter
expressions
silently, causing Moran styles to never work in any prior release
- New parameter: binary vs continuous spatial weights
(binary=True/False)
- New parameter: distance metric — Euclidean (p=2) or Manhattan (p=1)
- New parameter: Two-tailed p-value checkbox for v1/v3.x backward
compatibility
- Automatic threshold detection using maximum nearest-neighbour
distance (KDTree)
- Automatic threshold range derivation when optimization fields are
left empty
- StylePostProcessor pattern for correct QML application after layer
load
- QML styles: classification by p_value (primary) + sign(Z_score)
(direction),
aligned with GeoDa and Anselin (1995); thresholds 0.005 / 0.025 /
0.050
- QML styles: RdYlBu ColorBrewer palette for Gi*; GeoDa LISA
convention for Moran
- Full scientific documentation in README.md including methodology
audit comparing
v1, GeoDa, ArcGIS, and original literature with full references
- Removed legacy build tools: Makefile, pb_tool.cfg, plugin_upload.py,
i18n/, help/, scripts/

3.0.2
- Special thanks to Prof. Edson Augusto Melanda (UFSCar-Brazil) for
testing
and suggestions
- Added full dependency guard for libpysal/esda with blocking behavior
(plugin no longer loads the dialog when required libraries are
missing)
- Detailed cross-platform installation guidance for missing
dependencies
(Windows OSGeo4W Shell, macOS QGIS Python, Linux QGIS Python)
- Added validation of project layers before opening the dialog: plugin
blocks
execution when no shapefile (.shp) vector layers are present in the
project
- Introduced user-facing message explaining the shapefile requirement
- Hardened run() workflow to prevent silent failures and guarantee
proper
preconditions before statistical computation
- Minor GUI and UX refinements aligned with QGIS interaction patterns
- Codebase cleanup and normalization of early-return logic

3.0.1
- Modernization to libpysal/esda (replacement of deprecated PySAL
imports)
- Rewritten Z-score and p-value computation for Getis-Ord Gi* and
Local Moran
- Correct handling of two-tailed p-values and removal of sign
artifacts
- q-value applied only for Local Moran analyses (never for Gi*)
- New KDTree-based distance threshold computation with O(n2) fallback
- Stabilized construction of KNN and Queen weights and standardization
modes
- Improved write_file(): safer attribute output, NaN checks, encoding
fixes
- Added stdout/stderr guards to avoid QGIS crashes on Windows systems
- GUI fixes and attribute filtering to show only numeric fields when
required
- General code cleanup and removal of obsolete legacy paths

2.0.0
- Port to PySAL 2
- Data import fix for QGIS 3.16

1.0.4
- Port to PySAL 2

1.0.3
- Code cleaning

1.0.2
- Enhancements to Gi* computation with negative values
- Icon fixed

1.0.1
- QGIS 3 plugin version
- Minor bugs fixed

0.3
- Enabled K-nearest neighbors spatial weights matrix
- Minor bugs fixed

0.2
- Enabled Anselin Local Moran's I and Bivariate Local Moran
computation

yes

ceredajunior

2026-05-06T20:40:53.396571+00:00

3.22.0

4.99.0

None

no

Version management

Plugin details

QGIS sustaining members

Flagship membership


Flagship membership


Flagship membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership