Skip to content

Releases: worldbank/GeoE3

v2.0.0 - Major Performance & Stability Release

02 Feb 23:43

Choose a tag to compare

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_workers setting) 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=MEMORY and OGR_SQLITE_SYNCHRONOUS=OFF for 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_layer with 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

  1. Backup existing projects before upgrading
  2. Project files may need recreation due to dictionary key changes from WEE to GeoE3
  3. Check grid_creation_workers setting if you have memory constraints (default is optimized for most systems)
  4. 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

15 Jan 11:51
9ac0b55

Choose a tag to compare

Version 1.2.6

Release v1.2.5

13 Jan 05:50
38d6311

Choose a tag to compare

What's Changed

Full Changelog: v1.2.4...v1.2.5

Release v1.2.4

04 Dec 19:19
fb08a73

Choose a tag to compare

Release version 1.2.4

Release v1.2.3

04 Dec 06:51
6bcc482

Choose a tag to compare

What's Changed

Full Changelog: v1.2.2...v1.2.3

Release v1.2.2

02 Dec 08:08
2d1d5b2

Choose a tag to compare

Release version 1.2.2

Release v1.2.0

03 Nov 00:38
v1.2.0
98cad50

Choose a tag to compare

Release 1.2.0

Release v1.1.0

17 Jun 23:28
v1.1.0
32ee6ca

Choose a tag to compare

Release version 1.1.0

Release v1.0.0

04 Jun 22:59
v1.0.0
2af4aeb

Choose a tag to compare

Release version 1.0.0

Release v0.7.4

27 May 09:05
v0.7.4
a5035b2

Choose a tag to compare

Fixed issue with accessibility zones not calculating.

Fixed issue with progress update visualisation.

Fixed tests

Fixed regression with top level analysis not running