[general]
name=PlanX GeoStats Lab
qgisMinimumVersion=3.28
qgisMaximumVersion=4.99
description=PlanX spatial analysis lab for QGIS planning workflows: data preparation, urban pattern scanning, hot spots, centers, exploratory models and scenarios, and machine learning and explainable AI.
version=2.1.2
author=Yusuf Eminoglu
email=yusuf.eminoglu@deu.edu.tr
about=PlanX GeoStats Lab brings advanced spatial statistics and machine learning tools to the QGIS Processing Toolbox with a planning-analysis workflow designed for PlanX: Setup and Diagnostics, Data Preparation and Neighborhoods, Urban Pattern Scan, Hot Spots and Spatial Outliers, Centers Direction and Dispersion, Models and Scenarios, and Machine Learning and Explainable AI. The model workflow includes OLS, Generalized Linear Regression, Spatial Lag Regression, Spatial Error Regression, Spatial Durbin, Spatial Regime Regression, Exploratory Regression, Quantile Regression, GWR, MGWR, Eigenvector Spatial Filtering, model comparison and sensitivity testing. The Machine Learning group adds Random Forest, Extra Trees, Gradient Boosting (scikit-learn/XGBoost/LightGBM/CatBoost), SVM, Neural Network, and TabPFN (2025 tabular foundation model) regression/classification; spatial k-fold cross-validation (K-Means block or kNNDM); and explainability tools including SHAP (global/spatial map/local), the exact-contribution Explainable Boosting Machine, DiCE counterfactual explanations, and distribution-free Conformal Prediction Intervals. Optional GeoStats Python libraries are managed only through Processing Toolbox tools under 00 | Setup and Diagnostics: GeoStats Library Status for non-installing diagnostics and Install / Update GeoStats Libraries for explicit, user-approved pip installation. Developed with feedback from educational workflows at Dokuz Eylul University, Department of City and Regional Planning. Online User Manual & Documentation: https://yusufeminoglu.github.io/planx_geostats/GEOSTATS_REFERENCE_MANUAL.html | If you find this plugin helpful, please consider starring the repository on GitHub (https://github.com/YusufEminoglu/planx_geostats)!
tracker=https://github.com/YusufEminoglu/planx_geostats/issues
repository=https://github.com/YusufEminoglu/planx_geostats
homepage=https://yusufeminoglu.github.io/planx_geostats/GEOSTATS_REFERENCE_MANUAL.html
category=Processing
hasProcessingProvider=yes
tags=planx,qgis,processing,spatial statistics,planning analysis,hotspot,lisa,moran,getis-ord,gini,spatial gini,inequality,equity,gwr,mgwr,regression,model comparison,spatial autoregression,spatial error,spreg,clustering,k-means,sensitivity,monte carlo,directional mean,machine learning,random forest,gradient boosting,xgboost,lightgbm,catboost,support vector machine,neural network,tabpfn,foundation model,explainable ai,xai,shap,explainable boosting machine,glass-box,counterfactual explanation,dice,conformal prediction,uncertainty quantification,knndm,cross-validation,dbscan,hdbscan,gaussian mixture,quantile regression,spatial regime
icon=icons/icon.png
experimental=False
deprecated=False
license=GPL-3
changelog=
    2.1.2 - Bug fixes found by adding real QGIS runtime execution coverage for 06 | Machine Learning and Explainable AI (previously untested end-to-end): Conformal Prediction Interval called a mapie API removed in mapie 1.0's rewrite (fixed against the current CrossConformalRegressor API, same jackknife+ method); TabPFN Regression/Classification crashed with a raw Windows socket error instead of a usable message when the one-time TabPFN license step had not been completed (now raises clear guidance to set a TABPFN_TOKEN environment variable, since TabPFN's interactive browser-login prompt is unreliable on Windows). 19 of the 34 Group 06 tools that need only scikit-learn now run for real on every verify.
    2.1.1 - Bug fix: the docked GeoStats Lab panel's group list (geostats_dock.py) was missing 06 | Machine Learning and Explainable AI entirely, so all 34 algorithms in that group (including every tool added in 2.1.0) were fully registered and runnable from the Processing Toolbox but never appeared in the docked panel. Fixed, and added a smoke test that fails loudly if a future group is ever left out of the dock's list again.
    2.1.0 - 8 new algorithms (73 to 81) in 06 | Machine Learning and Explainable AI: Conformal Prediction Interval (MAPIE jackknife+, distribution-free coverage guarantee, works for every model in the group); TabPFN Regression and Classification (Hollmann et al. 2025 Nature, zero-shot tabular foundation model); DiCE Counterfactual Explanation (minimal-edit "what would flip this prediction" recourse); CatBoost Regression and Classification (4th Gradient Boosting engine, ordered boosting); Explainable Boosting Machine Regression and Classification (glass-box additive model with exact, non-sampled per-field contribution columns). Spatial k-Fold Cross-Validation Evaluator gained a kNNDM fold-assignment option (Linnenbrink et al. 2024) alongside the existing K-Means block method. New optional dependencies (catboost, interpret, mapie, dice-ml, tabpfn) install through the same Setup and Diagnostics workflow. Reference manual expanded with full entries for all 8 new tools and deepened across the 26 pre-existing Machine Learning entries (additional theory, equations, interpretation, and citations). Also fixes two pre-existing MGWR bugs: an adaptive-kernel bandwidth-search precondition that failed with an opaque error on small samples, and a result-extraction crash when hat_matrix=False.
    2.0.0 - Major release: 29 new algorithms (44 to 73) across one new group plus one existing group. 06 | Machine Learning and Explainable AI (26 tools): Random Forest, Extra Trees, Support Vector, and Neural Network (MLP) regression/classification; Gradient Boosting regression/classification across three engines (scikit-learn, XGBoost, LightGBM); Spatial k-Fold Cross-Validation Evaluator, Permutation Feature Importance, Partial Dependence Report, and ML Model Comparison (Leaderboard); SHAP Global Feature Importance, SHAP Spatial Attribution Map (writes per-feature SHAP contributions back onto the map as symbolizable columns), and SHAP Local Explanation Report; Model Residual Spatial Autocorrelation Check and Prediction Uncertainty Map; DBSCAN, HDBSCAN, and Gaussian Mixture Model clustering. 05 | Models and Scenarios gained Spatial Regime Regression (spreg OLS_Regimes with a Chow test for structural instability), Quantile Regression (hand-rolled iteratively-reweighted-least-squares, no new dependency), and Geographically Weighted Summary Statistics. New optional dependencies (xgboost, lightgbm, shap) install through the same Setup and Diagnostics > Install / Update GeoStats Libraries workflow as the existing optional packages. A new synthetic classification QA/demo GeoPackage fills the gap the Izmir FUR sample cannot cover on its own (no categorical field); Sample Dataset Guide and Workflow Advisor updated to load and recommend it. Reference manual expanded with a full theory/math/parameters/interpretation/citations entry for every new tool (44 to 73 entries).
    1.0.0 - New Izmir Functional Urban Region (FUR) street-network/space-syntax sample dataset (391 features, 34 real fields), replacing the old population/heat-map sample, with every workflow example, Workflow Advisor recipe, and manual walkthrough rewritten to match. Added 10 new advanced spatial-statistics tools (34 to 44 algorithms): Geary's C, Join Count Statistics, Global Bivariate Lee's L, and the Geodetector Q-statistic in Urban Pattern Scan; Local Geary's C, Colocation Quotient, and native SKATER spatially constrained regionalization in Hot Spots and Spatial Outliers; Lagrange Multiplier Diagnostics, Spatial Durbin Model, and Eigenvector Spatial Filtering Regression in Models and Scenarios. Each new tool ships with a full elite-depth reference-manual entry (theory, math, parameters, interpretation, citations) and a unique icon. Redesigned the main plugin icon (was illegible at QGIS toolbar sizes) around a bolder spatial-weights network glyph, verified legible at 16px.
    0.10.0 - Deepened every algorithm's in-GUI help text with field-by-field interpretation guidance and cross-tool recommendations; added Theoretical Background sections to the Centers/Direction/Dispersion group; fixed broken helpUrl() deep links on all 34 algorithms, a wrong Bivariate LISA icon, a manual tag-balance bug, 4 mismatched algorithm-id labels, and 1 broken DOI link; added a dockable GeoStats Lab panel (toolbar icon + Plugins menu) grouping all 34 tools with search and one-click launch, now packaged as a hybrid Processing + dock-GUI plugin; added manual copy-anchor links, See Also cross-references, and performance badges.
    0.9.23 - Updated documentation links to point to GEOSTATS_REFERENCE_MANUAL.html.
    0.9.17 - Added Spatial Inequality (Gini and Spatial Gini) with Rey-Smith style neighbor/non-neighbor decomposition, polarization, CSV/JSON outputs, permutation inference, root PNG plugin icon packaging, full QGIS 3/4 runtime matrix coverage, and optional-library import diagnostics.
    0.9.14 - Code quality and Hub submission hygiene.
        - Added setup.cfg (flake8: W503, E203 disabled; max-line-length=120).
        - Fixed 21 flake8 issues: 8 unused QVariant imports, 3 E302 missing blank lines before classes, 1 E261 inline-comment spacing, 3 E122 continuation blocks hoisted from f-strings, W293/W291 trailing whitespace stripped across all 42 .py files.
   0.9.13 - GeoStats provider/runtime smoke coverage updates and QGIS 3.40+/4 compatibility validation.
    0.9.12 - Maintenance release: refreshed Plugin Hub package after QGIS 3 and QGIS 4 compatibility validation.
    0.9.11 - Internal stabilization patch for release pipeline alignment and package verification guards.
    0.9.10 - Beta stabilization complete: centralized optional dependency guidance, hardened output metadata persistence, added null/empty/failed-centroid geometry safeguards across centroid-based workflows, and expanded smoke coverage for release gates.
    0.9.9 - Workflow Advisor decision engine: added user-selectable analysis goal, geometry context, outcome type, explanatory-variable availability, and personalized recommended tool sequences.
    0.9.8 - Professional analytics release: added GeoStats Workflow Advisor, manual QA matrix, shared analyst guidance/report helpers, output-layer metadata aliases, VIF diagnostics, and Model Comparison rank/score auditing.
    0.9.7 - Release QA hardening: added smoke coverage that keeps metadata, changelog, and README release verification commands synchronized on the same plugin version.
    0.9.6 - Sample guide clarity: listed every synthetic model-output QA layer explicitly and added smoke coverage that verifies the guide mentions every loadable sample and QA layer.
    0.9.5 - Sample Dataset Guide improvement: documented loading modes in the generated guide and added smoke coverage that keeps QA fixture load options synchronized with bundled GeoPackage layers.
    0.9.4 - Deep QA expansion: added a separate synthetic QA GeoPackage for point, line, polygon, and model-output runtime checks; added a Sample Dataset Guide load selector for planning and QA fixtures; expanded smoke tests for sample coverage, HTML report module shadowing, multipart geometry guards, and QGIS spatial-index API compatibility.
    0.9.3 - Runtime fixes for QGIS 3.40: fixed Incremental Spatial Autocorrelation HTML report generation and updated KNN spatial weights to use the current QgsSpatialIndex.nearestNeighbor API with a legacy fallback.
    0.9.2 - Hub security scan fix: removed developer-only tests and hidden git metadata from release zip packages while keeping source smoke tests in the repository; no runtime GeoStats behavior changed.
    0.9.1 - Processing-only cleanup: removed the separate GeoStats Libraries menu/toolbar dialog, kept library status and installation under 00 | Setup and Diagnostics, added distinct PNG icons for every algorithm, corrected Poisson GLR likelihood/AIC, and expanded smoke-test coverage.
    0.9.0 - Renamed to PlanX GeoStats Lab; reorganized tools into English PlanX planning workflow groups; added Exploratory Regression; added GeoStats Library Status diagnostics; dependency diagnostics and installer are available only under 00 | Setup and Diagnostics with detailed guidance.
    0.8.0 - Linear Directional Mean; Attribute Randomization Sensitivity Test (Monte Carlo).
    0.7.0 - Multivariate Clustering (K-Means); Export Feature Attributes to CSV/ASCII.
    0.6.0 - Similarity Search; Calculate Distance Band from Neighbor Count.
    0.5.0 - Median Center (Weiszfeld); High/Low Clustering (Getis-Ord General G).
    0.4.0 - Average Nearest Neighbor; Standard Distance; Geographically Weighted Regression (GWR).
    0.3.0 - Global Moran's I; OLS Spatial Regression.
    0.2.0 - Local Moran's I (LISA); Mean Center; Standard Deviational Ellipse; Dependency Installer.
    0.1.0 - Initial release with Getis-Ord Gi* Hot Spot Analysis.
