Releases: NHERI-SimCenter/BrailsPlusPlus
Release list
Version 4.3.0
BRAILS++ v4.3.0 Release Notes
Major New Features
-
Housing Unit Summarizer (
brails.aggregators.housing_units.pyncoda)
NewPyncodaHousingUnitSummarizeraggregates 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. -
Inventory Validators framework + Hazus Earthquake validator
(brails.validators)
Adds a dedicatedvalidatorssubpackage. The existingInventoryValidator
is now an abstract base with an added method for fixing inventories, and a
newHazusEarthquakeValidatorprovides the first concrete implementation for
checking and repairing building inventories against Hazus earthquake
requirements. -
User-supplied housing-unit counts
(brails.aggregators.housing_units.pyncoda)
The pyncoda allocator now accepts an optionalunit_count_col, letting users
supply per-building housing-unit counts directly instead of relying on counts
inferred from occupancy type.
Other Changes
- Overpass API robustness — sends a
BRAILSv2User-Agent, adds mirror
fallback for outages, fixes a vertex-order bug inis_box, introduces a
safe_overpass_jsonhelper, and resolves a regression whereNoneheaders
were rejected. - Safer HTTP JSON handling — new
get_safe_jsonhelper, now used by
region_boundaryand the OSM footprint scraper. - GeoJSON 3D coordinate support —
parse_geojson_geometrynow strips
altitude/extra dimensions so GeoJSON files with 3D positions no longer fail
coordinate validation and lose geometry. - More robust footprint handling — improved handling of varied and
multi-polygon footprint geometries. - Hardened initialization — better behavior when
input_dictvalues are
missing. - Validator internals —
is_inventoryconverted to a static method and
clearerTypeErrorreporting in the base class. - Bug fix in
gpt_base_modelutilities. - Dependencies / packaging — cap Python at ≤3.12 for torch compatibility,
pintorchaudioto fix Google Colab installs, and update the required NumPy
version. - 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
Major New Features
- 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.
- Methods for merging AssetInventories and Spatial aggregation of Point based features to AssetInventories. (brails.aggregators.points_to_polygons)
- Methods to read AssetInventory from existing geoJSON file
Other Changes
- Miscellaneous Improvements to GeoTools, AssetInventory, and ImageSet/Fixes to NBI and NTI Scrapers. Example notebooks for the two scrapers.
- Inventory: Added get_all_asset_features method to AssetInventory to simplify data retrieval.
- Robustness: Improved error handling in the NSI scraper and added multi-geometry support to get_geojson.
- Python 3.9+: Updated type hinting across types, scrapers, and aggregators to use modern Python 3.9 syntax (e.g., built-in collection types).
- Formatting: Applied ruff format to selected files to improve code style consistency.
- 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
v4.1.3
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
ImageSetplotting method and Jupyter notebook examples for image downloads - Orthomosaic data support: examples for extracting aerial imagery
- Added centroid calculation for Asset objects
- Added
bbox2polymethod 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
rasterioto setup requirements - Refactored constants & unit defaults, with added precision options
- Improved stability of
ImageSet.set_directory - Updates to
remove_featuresmethods 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
v4.1.0
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:
- New Scrapers:
- ASCE Hazard Data Scraper
- OSM Power Network Inventory Scraper
- Overture Maps Footprint Scraper
- Multi-Hazard Inference:
- Enhanced support for hurricane wind, flood, and earthquake feature inference
- Street-Level Damage Detection:
- Introduced an image-based module for assessing structural damage from panoramic imagery
- Flexible Spatial Join Methods:
- Added new join strategies to support inventory creation from diverse geospatial sources
- 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
- Typing and Code Quality:
- Added PEP 561 compliance for enhanced static type checking
- Improved consistency of internal data structures
v4.0.0
This new release of BRAILS brings
- A new modular architecture
- Various attribute prediction modules created using CLIP, GroundingDino, SAM, and GPT-4 vision language models
- Imputers designed to fill data gaps in the inventories generated by BRAILS.