PHLCRSH is an exploratory map of Philadelphia street segments, crash history, tree canopy, street width, grade, and block group context. The project asks where street geometry and environmental context line up with crash risk, and where the public data itself needs skepticism.
The map is not a causal model. It is a browser-based analytical viewer for comparing patterns across street segments. DuckDB-WASM runs locally in the browser, reads GeoParquet outputs, and powers the map layers, peer comparisons, and story examples.
- Crash records: OpenDataPhilly Crashes data, a Philadelphia subset of PennDOT annual crash data.
- Street geometry: OpenDataPhilly Street Centerlines and OpenDataPhilly Curbs.
- State-road attributes: PASDA PennDOT State Roads, extracted from PennDOT Roadway Management System data.
- Traffic-count context: DVRPC Traffic Counts ArcGIS service.
- Street trees: OpenDataPhilly Philadelphia Tree Inventory.
- Tree canopy and land cover: OpenDataPhilly Philadelphia Land Cover Raster.
- Elevation and grade inputs: OpenDataPhilly Digital Elevation Model.
- Census demographics: Census 2024 ACS 5-year API.
- Census block-group geometry: Census TIGER/Line shapefiles.
- Basemap: CARTO basemaps with OpenStreetMap data attribution.
cd app
npm install
npm run dev -- --host localhost --port 5173Open http://localhost:5173/PHLCRSH/.
To build:
cd app
npm run buildThe notebook expects the source data folders used during analysis. Census API access should be provided through CENSUS_API_KEY; the notebook does not hardcode an API key.
To create a local Python environment:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m ipykernel install --user --name phlcrsh --display-name "PHLCRSH"