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