Releases: worldbank/GeoE3
Release v2.0.3
GeoE3 v2.0.3 - NTL Classification and UI Fixes
New Features
- Added user-controlled NTL classification mode toggle (Jenks vs Binary) with live UI updates
Bug Fixes
- Fixed NTL binary classification to use explicit split behavior (0 → class 0, > 0 → class 5)
- Fixed EPLEX input flow with normalized input (0.00-0.99) and backward compatibility for older saved values
- Fixed road-network panel gating bug after failed OSM download
Improvements
- Reduced plugin size by removing h3 from bundled dependencies
- Improved build cleanup by excluding
__pycache__,.pyc, and.xcffiles from plugin zip - Updated pygments dependency to 2.20.0
Installation
Download geest.2.0.3.zip and install via QGIS Plugin Manager → Install from ZIP.
Made with ❤️ by Kartoza for The World Bank
v2.0.2 - Stability Fixes
Version 2.0.2 - Stability Fixes
Bug Fixes
- Fixed QGIS crashes in ACLED workflow by adding context and feedback to processing.run calls
- Fixed thread-safety issues in workflow_base.py processing operations
- Fixed ID handling in aggregation workflow to handle spaces in names
Improvements
- Added logging for masked raster path checking in aggregation workflow
- Cleaned up duplicate environment variables in start script
- Added tailspin package for log viewing
Full Changelog: v2.0.1...v2.0.2
Release v2.0.1
What's Changed
- Generating Analysis report as background task by @osundwajeff in #272
- Configure logo does not show on indicators by @osundwajeff in #273
- NTL data by @osundwajeff in #280
- Add project-local Neovim configuration with WhichKey menu by @timlinux in #282
- Add vendored dependency support with h3 library bundling by @timlinux in #283
- Update the logic for the analysis scale for regional by @osundwajeff in #284
- Local and National Fixes by @osundwajeff in #304
- Regional scoring tables and analysis logic by @osundwajeff in #285
- Bump markdown from 3.7 to 3.8.1 by @dependabot[bot] in #303
- Bump black from 25.1.0 to 26.3.1 by @dependabot[bot] in #308
- Local & National Fixes - phase 2 by @osundwajeff in #305
- Refactor RTYPE assignment to use GDAL_OUTPUT_DATA_TYPE constant by @osundwajeff in #312
- Rename Geest to GeoE3 by @osundwajeff in #314
- Docs update geoe3 by @osundwajeff in #320
- Bump requests from 2.32.4 to 2.33.0 by @dependabot[bot] in #318
- Revert src project from 'geoe3' to 'geest' by @osundwajeff in #323
- Update QGIS start scripts to use GEOE3 profile by @timlinux in #313
- Revert to symlinking geest instead of geoe3 by @timlinux in #324
- GeoE3 bug fixes & updates by @osundwajeff in #321
- Update version to 2.0.1 and refine changelog by @osundwajeff in #328
- fix: streamline git configuration setup in release workflow by @osundwajeff in #329
- fix: correct command for bundling dependencies in release workflow by @osundwajeff in #330
- fix: correct safe.directory path in git configuration by @osundwajeff in #331
Full Changelog: v2.0.0...v2.0.1
v2.0.0 - Major Performance & Stability Release
GeoE3 v2.0.0 - Major Performance & Stability Release
This is a major release representing 103 commits and significant improvements across performance, stability, user experience, and branding since the v1.2.6 release.
Highlights
- Complete rebrand from WEE/GEEST to GeoE3 (Geospatial Enabling Environments for Employment)
- Dramatic performance improvements - processing times reduced by up to 70% for large study areas
- Memory-bounded parallel processing - prevents memory exhaustion on large datasets
- Enhanced stability - numerous crash fixes and error handling improvements
- Improved reporting - dimension and factor maps now included in analysis reports
🎨 Branding & Naming
The tool has been comprehensively rebranded from "WEE" (Women's Economic Empowerment) to "GeoE3" (Geospatial Enabling Environments for Employment):
- All user-visible text updated from "WEE Score" to "GeoE3 Score"
- Layer groups renamed from "WEE" to "GeoE3"
- Variable names, dictionary keys, folder names, and QML files updated
- Plugin name and menu items reflect new branding
⚠️ BREAKING CHANGE: Existing project files created with v1.x may need updates for new dictionary keys. We recommend creating fresh projects with v2.0.0.
⚡ Performance Improvements
Grid Processing
- Memory-bounded parallel grid creation - Uses configurable worker count (
grid_creation_workerssetting) with bounded write queues (100K max) to prevent memory blowouts on large study areas - Async writer thread - Batch writes happen in background without blocking analysis
- Two-phase spatial checks - Contains-then-Intersects strategy reduces intersection tests by ~90%
GeoPackage Optimizations
- GDAL tuning -
OGR_SQLITE_JOURNAL=MEMORYandOGR_SQLITE_SYNCHRONOUS=OFFfor faster writes - SQL-based batch updates - Replaces slow feature-by-feature updates with bulk SQL operations
- Segment-based spatial indexing - More efficient queries for long linestrings
Network Analysis
- Optimized feature matching in native network analysis processor
- Optimized OSM polygon processing for greenspaces and other downloads
Reporting
- Skip study_area_grid layer in report generation (too many features to render efficiently)
- Skip grid cells that already have maximum score to reduce unnecessary processing
🐛 Bug Fixes
Critical Stability Fixes
- Fixed crash when concurrency > 1 - Major stability improvement for parallel processing
- Fixed memory blowout in parallel grid creation for large datasets
- Fixed multipart geometry handling in network analysis and study area creation
CRS & Geometry Fixes
- Fixed 2.5D geometry warnings - All geometries now properly flattened to 2D
- Fixed EPSG:54009 CRS warning - Now uses correct ESRI:54009 for Mollweide projection
- Fixed CRS handling in MultiBufferDistancesNativeWorkflow
- Fixed road network CRS issues across multiple workflows
UI & UX Fixes
- Fixed duplicate QMessageBox on OSM download error (was showing both error and cancelled messages)
- Fixed banner text rendering and button styling issues
- Fixed AttributeError in RoadNetworkPanel by reordering attribute initialization
- Open existing project no longer incorrectly shows women's options dialog
Data & Workflow Fixes
- Fixed mask layer creation with proper geometry validation and commitChanges
- Fixed road network and data persistence checks
- Fixed raster layer validation in
_subset_raster_layerwith clear error messages - Reverted multi_buffer_distances_native_workflow to stable v1.2.6 implementation
✨ New Features
GHSL Integration
- Automatic GHSL download fallback - Workflows automatically download Global Human Settlement Layer data if missing
ensure_ghsl_data()method for workflows that need settlement data- GHSL download failure warning during project creation with user prompt to continue or abort
Enhanced Reporting
- Dimension and factor map pages added to analysis summary report
- Exclude unused indicators (analysis_mode="Do Not Use") from reports
- Improved execution time display - Shows "Not run" instead of "None min" for unexecuted indicators
Progress & Feedback
- Progress bar updates during batch operations showing real-time processing progress
- Status label showing current workflow step
- Raster layer validation with helpful error messages before processing begins
🎯 UI Improvements
- Improved banner text rendering and refined button styling throughout
- Updated font sizing for women's considerations section in Create Project Panel
- Move EPLEX Score to contextual dimension only
- Auto-balance weights under dimension for easier configuration
- Better OSM download error messages showing actual network error details
🔧 Code Quality
- Google-style docstrings - All docstrings converted to consistent format
- Qt threading migration - Replaced Python threading with Qt threading (QMutex, QThread, QThreadPool) for better QGIS integration
- GitHub CI improvements - Black version pinned to 25.x to match local development environment
- Comprehensive error handling and logging improvements throughout
📦 Previous 1.3.0 Changes (included)
These changes from the development cycle are also included:
- OSM download: Added spinner animation and improved error feedback
- Reintegrated ORS v0.6 as routing option
- Education factor now uses index score with GHSL
- Fixed workflows stopping after 1 factor under dimension
- Added local caching for Ookla parquet files
- Dynamic font sizing improvements
📋 Upgrade Notes
- Backup existing projects before upgrading
- Project files may need recreation due to dictionary key changes from WEE to GeoE3
- Check grid_creation_workers setting if you have memory constraints (default is optimized for most systems)
- Existing layer groups named "WEE" will appear alongside new "GeoE3" groups - consider cleaning up old layers
🙏 Contributors
Thanks to all contributors who made this release possible, including the World Bank GOST team, Kartoza, and the open source community.
Full Changelog: v1.2.6...v2.0.0
Release v1.2.6
Version 1.2.6
Release v1.2.5
What's Changed
- Bump urllib3 from 2.5.0 to 2.6.0 by @dependabot[bot] in #184
- Add filtering for study areas without GHSL settlements by @osundwajeff in #183
- Bump version from 1.2.4 to 1.2.5 in config.json by @osundwajeff in #212
Full Changelog: v1.2.4...v1.2.5
Release v1.2.4
Release version 1.2.4
Release v1.2.3
Release v1.2.2
Release version 1.2.2
Release v1.2.0
Release 1.2.0