Ever wondered what the NYC subway looks like if you actually need an elevator? DANIELLE SCHULZ and XIAOFAN LIANG did. They (more like myself) dragged me along for the ride.
I helped out with the network part, but turns out the real pain comes from wrangling the data. Spoiler: it's mostly data wrangling.
This project constructs an ADA-compliant transit network for the NYC subway system. We take MTA's GTFS data, layer on accessibility information scraped from MTA's website, wrestle with a truly chaotic set of naming conventions, and emerge (barely) with a navigable graph of accessible routes.
Building this involved:
- Discovering that
parent_stationmeans approximately nothing - Learning that One Direction is still relevant (in the MTA accessibility hellscape)
- Manually labeling way more CSV files than any human should
- Consulting Claude more times than I'd like to admit
I recommend using uv for package management:
uv pip install -r requirements.txtThen open up the notebook and enjoy the ride.
All the gory details, data cleaning rants, and Renaissance art metaphors live in the notebooks. Start here:
The full pipeline: GTFS data wrangling, accessibility scraping, network construction, and analysis. This is where the magic (and the suffering) happens.
An alternative network construction approach. We had a friendly disagreement about the most intuitive way to build the network — I lost the debate (or rather, stopped debating) and gave in to Xiaofan's idea. Builds a full GTFS baseline first, then layers ADA accessibility on top. Includes vulnerability analysis and accessibility penalty metrics.
- MTA, for the data (and the chaos)
- Claude, for parsing HTML and keeping me sane
- Carlo Crivelli, for painting a dragon-slaying scene that perfectly captures this experience