rAPIdtools#

Turn post-disaster imagery into structured, GIS-ready assessments. rAPIdtools crops aerial and street-level imagery around every building, road or pole in your inventory, runs the crops through a vision-language model of your choice, and writes the answers back to GeoJSON or Shapefile.

Installation

pip install rapidtools, then add the API keys or local weights for the models you want to use.

Installation
Quickstart

Grade every building in an orthomosaic in under twenty lines of code, with a local model or a hosted API.

Quickstart
Examples

End-to-end walkthroughs on the 2025 Eaton Fire dataset: aerial damage, street-level recovery, footprint and road extraction.

Aerial damage assessment: Eaton Fire
API Reference

Every public class and function, one page each, with runnable examples.

API Reference

What it does#

  • Ingest at scale. Load footprints from GeoJSON or Shapefiles, filter them spatially, and read multi-gigabyte orthomosaics window by window.

  • Fetch imagery without API keys. Stitch Bing or Google basemap tiles into georeferenced GeoTIFFs, and pull Google Street View or Mapillary panoramas that actually show the asset, with occluded views culled by ray casting.

  • Run any vision-language model. One factory and one analyzer cover Gemini, Claude, OpenAI, Muse Spark and Qwen APIs, plus Gemma 4, Llama, Muse Glimmer, Qwen and any Hugging Face checkpoint locally, with batching, 4-bit loading and rate-limit back-off handled for you.

  • Discover and clean geometries. Scan a raster for a text concept with SAM 3, then regularize the masks into building footprints or road centrelines.

  • Stop cleanly. Every long-running component takes a cancel event, so notebooks and the bundled GUI can interrupt a job and keep partial results.

import rapidtools as rt

rt.configure_logging()
buildings = rt.PhysicalAssetCollection.from_geojson('buildings.geojson')
model = rt.models.load('gemini', api_key='AIza...')  # or 'gemma4', 'claude', ...
pipeline = rt.Pipeline([
    rt.AerialImageryExtractor('ortho.tif', save_directory='crops', buffer_m=20),
    rt.AssetAnalyzer(model, prompt='Rate the damage 0-5 as JSON.'),
])
buildings = pipeline.run(buildings)

Feedback and feature requests#

rAPIdtools is shaped by the surveys it is used on. If a workflow does not fit your data, a page is unclear, or a capability is missing, say so: the feedback page has one form each for feature requests, bug reports and general feedback, and every page of this site has an Open issue entry under the repository button in its header.

Citing rAPIdtools#

rAPIdtools is developed by the NSF NHERI RAPID Facility at the University of Washington, supported by the U.S. National Science Foundation, and released under the BSD 3-Clause license. If it contributes to your research, please cite it; the repository’s Cite this repository button gives APA and BibTeX entries, and each release is archived on Zenodo with a DOI.

@software{rapidtools,
  author  = {Cetiner, Barbaros and {NSF NHERI RAPID Facility}},
  title   = {rAPIdtools: AI inference and localization for post-disaster geospatial datasets},
  year    = {2026},
  version = {0.2.0},
  url     = {https://github.com/RAPID-Facility/rAPIdtools}
}