Releases: worldbank/GeoE3
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
Release v1.1.0
Release version 1.1.0
Release v1.0.0
Release version 1.0.0
Release v0.7.4
Fixed issue with accessibility zones not calculating.
Fixed issue with progress update visualisation.
Fixed tests
Fixed regression with top level analysis not running