Recent Releases of DamageScanner

DamageScanner - v1.0.1

v1.0.1 — Patch Release

This patch fixes two bugs in the vector damage calculation pipeline.

MultiLineString geometry support (_convert_to_meters)
Vector features with MultiLineString geometries were not handled correctly, causing failures during length conversion. The fix extracts the first component geometry (.geoms[0]) before proceeding with the geodesic length calculation.

Cell area estimation for meter-based CRS (_get_cell_area_m2)
When the features were provided in a projected coordinate system (meters rather than degrees), the cell area estimation produced NaN values. The fix reprojects the asset point to the hazard CRS before buffering, ensuring valid area estimates regardless of the input coordinate system.

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 22 days ago

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 (.nc files)
  • 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 processing
  • return_full: Option to return all features, not just those with hazard exposure (useful for mapping)

Vector-Vector Overlay

  • New _overlay_vector_vector function 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 uses pyproj.Geod for accurate geodesic length calculations
  • Fixed np.trapz deprecation by updating to np.trapezoid

Data Processing

  • Fixed point geometry handling - proper dtype conversion for values and coverage columns
  • 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 for values and coverage columns
  • 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_col parameter not being passed through VectorScanner
  • Fixed asset_type filtering to only apply for OSM data (not user-provided vector files)
  • Replaced bare except: with except 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 workflows
  • test_raster.py - RasterScanner functions
  • test_vector.py - VectorScanner, VectorExposure, vector-vector overlay
  • test_utils.py - Utility functions
  • test_osm.py - OSM data extraction
  • test_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:

  1. Raster Damage Assessment - Basic flood damage with raster data
  2. Vector Damage Assessment - Vector exposure with raster hazard
  3. OSM Infrastructure Assessment - Roads, buildings, and critical infrastructure
  4. NetCDF Hazard Assessment - Climate data (windstorms, etc.)
  5. 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

  • VectorExposure now returns 5 values instead of 4 when using the is_osm flag (if you destructure the return value)
  • Default behavior for return_full may affect downstream code expecting only exposed features

Contributors

  • Elco Koks (@ElcoK)
  • Jens de Bruijn (@jensdebruijn)

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 1 month ago

DamageScanner - v1.0.0b3

Climate Change - Natural Hazard and Storms - Python
Published by jensdebruijn about 1 month ago

DamageScanner - 1.0.0b2

Climate Change - Natural Hazard and Storms - Python
Published by jensdebruijn about 1 month ago

DamageScanner - v1.0.0b1

Climate Change - Natural Hazard and Storms - Python
Published by jensdebruijn about 1 month ago

DamageScanner - v0.9-beta.25

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.22...v0.9beta.25

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 1 month ago

DamageScanner - v0.9beta.23

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.22...v0.9beta.23

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 7 months ago

DamageScanner - v0.9beta.22

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.21...v0.9beta.22

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 7 months ago

DamageScanner - v0.9beta.21

Climate Change - Natural Hazard and Storms - Python
Published by jensdebruijn 9 months ago

DamageScanner - v0.9beta.20

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.19...v0.9beta.20

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 10 months ago

DamageScanner - v0.9beta.19

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.18...v0.9beta.19

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 10 months ago

DamageScanner - v0.9beta.18

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.17...v0.9beta.18

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 10 months ago

DamageScanner - v0.9beta.17

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.16...v0.9beta.17

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 11 months ago

DamageScanner - v0.9beta.16

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.15...v0.9beta.16

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 11 months ago

DamageScanner - v0.9beta.15

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9beta.14...v0.9beta.15

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK 11 months ago

DamageScanner - 0.9-beta.14

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.9-beta.13...v0.9beta.14

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 1 year ago

DamageScanner - 0.9-beta.13

Fix several small issues, including the download that did not work and the osm_ids missing.

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 1 year ago

DamageScanner - 0.9-beta.12

  • rasterscanner was suddenly gone
  • fix some internal dependencies
  • fix that it tries to convert to meters if data is already provided in meters.

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 1 year ago

DamageScanner - 0.9-beta.11

  • Fixed gdal dependency in raster file.

  • fixed some osm infra type issues in the osm.py file.

  • Added config and download from osm-flex to also overcome gdal dependency issue

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 1 year ago

DamageScanner - 0.9-beta.10

Fully refactored the damagescanner, now uses exactextract and fully integrated OSM.

Full documentation will come at release v1.0

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 1 year ago

DamageScanner - 0.9-beta.9

Fully refactored the damagescanner, now uses exactextract and fully integrated OSM.

Full documentation will come at release v1.0

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 1 year ago

DamageScanner - 0.9-beta.8

Fully refactored the damagescanner, now uses exactextract and fully integrated OSM.

Full documentation will come at release v1.0

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 1 year ago

DamageScanner - 0.9-beta.7

Fully refactored the damagescanner, now uses exactextract and fully integrated OSM.

Full documentation will come at release v1.0

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 1 year ago

DamageScanner - 0.9-beta.5

Fully refactored the damagescanner, now uses exactextract and fully integrated OSM.

Full documentation will come at release v1.0

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 1 year ago

DamageScanner - 0.9-beta.4

Fully refactored the damagescanner, now uses exactextract and fully integrated OSM.

Full documentation will come at release v1.0

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 1 year ago

DamageScanner - 0.8-beta.1

Thus update uses the new Python bindings for exactextract to speed up and simplify the damage assessment of objects. For now this new object_scanner replaces only some functionality of the old VectorScanner. Over the next (few) beta release(s) we will re-integrate the old VectorScanner functionality using the new object_scanner

Climate Change - Natural Hazard and Storms - Python
Published by jensdebruijn over 1 year ago

DamageScanner - DamageScanner v0.7.2

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 2 years ago

DamageScanner - DamageScanner v0.7.1

What's Changed

Full Changelog: https://github.com/VU-IVM/DamageScanner/compare/v0.6.2...v0.7.1

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 2 years ago

DamageScanner - DamageScanner v0.7

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 2 years ago

DamageScanner - DamageScanner v0.7

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK over 2 years ago

DamageScanner - DamageScanner v0.6.2

Update everything to natural hazards

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 3 years ago

DamageScanner - DamageScanner0.6.1

  • Compatible with Shapely 2.0
  • Object-based calculation added
  • Allows for reading hazard netcdf files
  • hazard type should not matter anymore

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 3 years ago

DamageScanner - DamageScanner0.3.5

Improved extraction from OpenStreetMap

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK almost 6 years ago

DamageScanner - DamageScanner0.3.0

  • Added support for risk calculations
  • Better working VectorScanner
  • Added plot capabilities

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 7 years ago

DamageScanner - DamageScanner0.2.1

Give it a DOI with Zenodo

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 7 years ago

DamageScanner - DamageScanner0.2

This new version of the DamageScanner includes support for vector-based damage assessments and a ReadTheDocs.

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 7 years ago

DamageScanner - DamageScanner0.1

First working version of the DamageScanner using as raster-based approach

Climate Change - Natural Hazard and Storms - Python
Published by ElcoK about 7 years ago