Skip to content

Releases: NHERI-SimCenter/BrailsPlusPlus

Version 4.3.0

Choose a tag to compare

@fmckenna fmckenna released this 23 May 00:46
e10fe18

BRAILS++ v4.3.0 Release Notes

Major New Features

  1. Housing Unit Summarizer (brails.aggregators.housing_units.pyncoda)
    New PyncodaHousingUnitSummarizer aggregates detailed household-level data
    produced by pyncoda into building-level attributes (population, vacancy,
    tenure, and demographics such as income, race, and social characteristics).
    This flattening makes the data directly usable for GIS visualization and
    downstream building-level analysis. Vacant units are excluded from
    statistics, and missing values serialize cleanly to JSON.

  2. Inventory Validators framework + Hazus Earthquake validator
    (brails.validators)
    Adds a dedicated validators subpackage. The existing InventoryValidator
    is now an abstract base with an added method for fixing inventories, and a
    new HazusEarthquakeValidator provides the first concrete implementation for
    checking and repairing building inventories against Hazus earthquake
    requirements.

  3. User-supplied housing-unit counts
    (brails.aggregators.housing_units.pyncoda)
    The pyncoda allocator now accepts an optional unit_count_col, letting users
    supply per-building housing-unit counts directly instead of relying on counts
    inferred from occupancy type.

Other Changes

  1. Overpass API robustness — sends a BRAILSv2 User-Agent, adds mirror
    fallback for outages, fixes a vertex-order bug in is_box, introduces a
    safe_overpass_json helper, and resolves a regression where None headers
    were rejected.
  2. Safer HTTP JSON handling — new get_safe_json helper, now used by
    region_boundary and the OSM footprint scraper.
  3. GeoJSON 3D coordinate supportparse_geojson_geometry now strips
    altitude/extra dimensions so GeoJSON files with 3D positions no longer fail
    coordinate validation and lose geometry.
  4. More robust footprint handling — improved handling of varied and
    multi-polygon footprint geometries.
  5. Hardened initialization — better behavior when input_dict values are
    missing.
  6. Validator internalsis_inventory converted to a static method and
    clearer TypeError reporting in the base class.
  7. Bug fix in gpt_base_model utilities.
  8. Dependencies / packaging — cap Python at ≤3.12 for torch compatibility,
    pin torchaudio to fix Google Colab installs, and update the required NumPy
    version.
  9. Updated DOI and contributor list.

This work is based on material supported by the National Science Foundation under grants CMMI 1612843 and CMMI 2131111.

Version 4.2.0

Choose a tag to compare

@fmckenna fmckenna released this 03 Dec 04:51

Major New Features

  1. Housing Unit Allocation (brails.aggregators.housing_units): PyncodaHousingUnitAllocator: New housing allocation model to assign households to building inventories. Pyncoda an open-source package maintained and developed by Nathanael Rosenheim (Texas A&M) https://github.com/npr99/intersect-community-data. Python and Jupyter Notebooks available in the examples/housing_units/ directories.
  2. Methods for merging AssetInventories and Spatial aggregation of Point based features to AssetInventories. (brails.aggregators.points_to_polygons)
  3. Methods to read AssetInventory from existing geoJSON file

Other Changes

  1. Miscellaneous Improvements to GeoTools, AssetInventory, and ImageSet/Fixes to NBI and NTI Scrapers. Example notebooks for the two scrapers.
  2. Inventory: Added get_all_asset_features method to AssetInventory to simplify data retrieval.
  3. Robustness: Improved error handling in the NSI scraper and added multi-geometry support to get_geojson.
  4. Python 3.9+: Updated type hinting across types, scrapers, and aggregators to use modern Python 3.9 syntax (e.g., built-in collection types).
  5. Formatting: Applied ruff format to selected files to improve code style consistency.
  6. CI/CD: Deprecated the legacy runTests workflow in favor of the modern tests workflow and modernized project imports.

Specific Pull Requests

  • Correcting minor typos by @bacetiner in #135
  • Miscellaneous Improvements to GeoTools, AssetInventory, and ImageSet/Fixes to NBI and NTI Scrapers by @bacetiner in #136
  • Fix: GeoJSON Attribute extraction in read_from_geojson and MultiPolygon handling in extract_aerial_imagery by @bacetiner in #137
  • Introduce Household Inventory module and conflict-resolving merge architecture by @zsarnoczay in #138
  • Introduce Household Assignment Test Suite & Enhance Project Configuration by @zsarnoczay in #139
  • feat: Housing Unit Allocation, Spatial Aggregation updates, and Modernization by @zsarnoczay in #140

This work is based on material supported by the National Science Foundation under grants CMMI 1612843 and 2131111

v4.1.4

Choose a tag to compare

@bacetiner bacetiner released this 25 Sep 18:10
d0432f0

New Features

  • Added scrapers for Land Cover, Land Use, and FIRM datasets.
  • Included BRAILS++ Examples and API documentation in the public-facing documentation.

Improvements

  • Updated the supported Python versions for BRAILS++.

v4.1.3

Choose a tag to compare

@bacetiner bacetiner released this 20 Aug 10:00
9ed0c57

This release introduces significant improvements to USGS elevation data integration, Overture Maps scraping, RAPID-UW data processing, geometry handling, and visualization tools, along with substantial improvements to documentation, testing, and overall code stability. Alongside these feature additions, the release improves code stability, utilities, and the overall developer experience through refined documentation, examples, and testing. Below is a summary of the specific enhancements included in this release.

Core Features & Enhancements

  • USGS Elevation Service added to scrapers with improved data handling
  • RAPIDTools functionality integrated into BRAILS++
  • Overture Maps enhancements, including footprint scrapers and server fixes
  • New ImageSet plotting method and Jupyter notebook examples for image downloads
  • Orthomosaic data support: examples for extracting aerial imagery
  • Added centroid calculation for Asset objects
  • Added bbox2poly method and Shapely-to-BRAILS++ geometry conversion utilities
  • Power network inventory support with new sample data

Utilities & Stability Improvements

  • Corrected NTI API endpoint
  • Utility class improvements for computer vision models
  • Added rasterio to setup requirements
  • Refactored constants & unit defaults, with added precision options
  • Improved stability of ImageSet.set_directory
  • Updates to remove_features methods for better flexibility
  • Debugging and improvements in geometry validators and plan area unit conversion

Documentation & Developer Experience

  • Extensive docstring improvements for Sphinx compatibility
  • Added doctest examples and improved example organization
  • Added import instructions for several modules, including AssetInventory
  • Updated Sphinx settings, RST files, and Autosummary references
  • Improved commentary and examples across footprint workflows
  • Updated Colab and Lightning links

v4.1.1

Choose a tag to compare

@bacetiner bacetiner released this 16 Jul 19:27
2180d09

Bug fixes for Inferers

v4.1.0

Choose a tag to compare

@bacetiner bacetiner released this 06 Jun 17:31
6307def

This release introduces expanded functionality across scraping and inference modules, along with performance improvements, better typing support, and updated examples. In brief these enhancements are:

  1. New Scrapers:
    • ASCE Hazard Data Scraper
    • OSM Power Network Inventory Scraper
    • Overture Maps Footprint Scraper
  2. Multi-Hazard Inference:
    • Enhanced support for hurricane wind, flood, and earthquake feature inference
  3. Street-Level Damage Detection:
    • Introduced an image-based module for assessing structural damage from panoramic imagery
  4. Flexible Spatial Join Methods:
    • Added new join strategies to support inventory creation from diverse geospatial sources
  5. Updated & New Example Notebooks:
    • Image classifiers: roof shape, year built, foundation elevation
    • GPT and VLM-based classifiers
    • ChimneyDetector and FacadeParser
    • Street-level damage detection workflows
    • Inventory creation pipelines
  6. Typing and Code Quality:
    • Added PEP 561 compliance for enhanced static type checking
    • Improved consistency of internal data structures

v4.0.0

Choose a tag to compare

@bacetiner bacetiner released this 01 Oct 05:46
fe3285c

This new release of BRAILS brings

  1. A new modular architecture
  2. Various attribute prediction modules created using CLIP, GroundingDino, SAM, and GPT-4 vision language models
  3. Imputers designed to fill data gaps in the inventories generated by BRAILS.