Releases: VU-IVM/DamageScanner
Releases · VU-IVM/DamageScanner
v1.0.0
DamageScanner v1.0.0 Release Notes
🎉 First Major Release
We're excited to announce DamageScanner v1.0.0! This release marks a major milestone with comprehensive testing, new features, and improved stability.
New Features
Improved NetCDF Hazard Support
- Full support for NetCDF climate and hazard data (
.ncfiles) - Handles various NetCDF structures (with
band,z, or other dimensions) - Robust CRS detection with fallback for files without EPSG codes
New Parameters
extract_strategy: Choose between"feature-sequential"and"raster-sequential"for exactextract processingreturn_full: Option to return all features, not just those with hazard exposure (useful for mapping)
Vector-Vector Overlay
- New
_overlay_vector_vectorfunction for damage assessment using vector hazard data (e.g., flood polygons from hydraulic models) - Supports polygon, line, and point exposure features
- Automatic CRS reprojection to metric coordinates for accurate area/length calculations
Bug Fixes
Core Calculations
- Fixed discrepancies between gridded and non-gridded approaches - both methods now produce consistent results
- Fixed
_convert_to_meters()- now correctly usespyproj.Geodfor accurate geodesic length calculations - Fixed
np.trapzdeprecation by updating tonp.trapezoid
Data Processing
- Fixed point geometry handling - proper dtype conversion for
valuesandcoveragecolumns - Fixed xarray DataArray detection to avoid calling
.to_dataarray()on already-converted data - Fixed buildings extraction from OSM to use multipolygons only (building points are POI markers, not footprints)
- Fixed invalid OSM geometry handling with
on_invalid="ignore" - Fixed parquet file reading in
VectorExposure
CRS Handling
- Added
_crs_is_meters()helper function for robust CRS unit detection - Fixed crashes when NetCDF files lack valid EPSG codes
- Improved CRS fallback to EPSG:4326 when undefined
Data Consistency
- Added
_ensure_list()helper to guarantee consistent list output forvaluesandcoveragecolumns - Fixed numpy array vs Python list inconsistency from exactextract
- Fixed
_convert_to_meters()to handle empty, None, and NaN coverage values
Other Fixes
- Fixed
object_colparameter not being passed through VectorScanner - Fixed asset_type filtering to only apply for OSM data (not user-provided vector files)
- Replaced bare
except:withexcept Exception:for proper error handling - Fixed FutureWarning for
rio.set_crs()→rio.write_crs()
Testing Infrastructure
Comprehensive Test Suite
- 137+ tests covering all major functionality
test_core.py- DamageScanner class, raster/vector/OSM workflowstest_raster.py- RasterScanner functionstest_vector.py- VectorScanner, VectorExposure, vector-vector overlaytest_utils.py- Utility functionstest_osm.py- OSM data extractiontest_download.py- Download functions (mocked)
Continuous Integration
- GitHub Actions workflow for automated testing on every push/PR
- Ruff formatting and linting checks
- Test markers for slow tests (
@pytest.mark.slow)
Documentation
Example Notebooks
Five new example notebooks demonstrating key workflows:
- Raster Damage Assessment - Basic flood damage with raster data
- Vector Damage Assessment - Vector exposure with raster hazard
- OSM Infrastructure Assessment - Roads, buildings, and critical infrastructure
- NetCDF Hazard Assessment - Climate data (windstorms, etc.)
- Risk Assessment - Expected Annual Damage from multiple return periods
Updated Documentation
- New GitHub Pages documentation site
- Updated README with CI badges (tests, docs, linting)
- Improved docstrings throughout the codebase
Breaking Changes
VectorExposurenow returns 5 values instead of 4 when using theis_osmflag (if you destructure the return value)- Default behavior for
return_fullmay affect downstream code expecting only exposed features
Contributors
- Elco Koks (@ElcoK)
- Jens de Bruijn (@jensdebruijn)
v1.0.0b3
Merge pull request #54 from VU-IVM/jens-test-lower-numpy test lower numpy bound
1.0.0b2
v1.0.0b2 support python 3.14
v1.0.0b1
set version to b1
v0.9-beta.25
Full Changelog: v0.9beta.22...v0.9beta.25
v0.9beta.23
Full Changelog: v0.9beta.22...v0.9beta.23
v0.9beta.22
Full Changelog: v0.9beta.21...v0.9beta.22
v0.9beta.21
update uv lock
v0.9beta.20
Full Changelog: v0.9beta.19...v0.9beta.20
v0.9beta.19
Full Changelog: v0.9beta.18...v0.9beta.19