Methodology
This page documents every data source behind The city that sensors see (and hear and feel), how each number is computed, how often it refreshes and what to be careful about. The page was built with AI assistance in July 2026. There is no database and no server: your browser reads most feeds directly from the agencies, and a scheduled script fills in the rest.
How data reaches the page
Feeds fall into two groups:
- Direct feeds. Sources that allow cross-origin requests are fetched by your browser, live, on a timer of one to five minutes per feed. Nothing passes through any intermediate server.
- Snapshot feeds. Sources that block cross-origin browser requests (the New York Independent System Operator, the National Data Buoy Center, the Metropolitan Transportation Authority, NYC Ferry, the traffic-camera directory and FloodNet) are fetched by a script that runs on GitHub Actions roughly every 15 minutes and writes
data/snapshot.json. Tiles fed this way can be up to about 20 minutes behind; each shows its own "as of" time. GitHub's scheduler can also run late during busy periods, which shows up as amber (stale) status lights.
Every tile carries a status light: green means the latest reading is inside that feed's expected freshness window, amber means the feed is reachable but the reading is older than expected and red means the feed could not be read at all. The masthead counts how many of the feeds are currently reporting.
The map
The map plots every sensor that has a published location, colored by domain and toggleable by layer. Fixed instruments (tide gauges, the wave buoy, stream gauges, weather stations, flood sensors, cameras, bike docks) sit at their installed coordinates; moving things (aircraft, ferries) appear at their last transmitted position. Traffic sensors draw as their actual road segments, colored by the latest speed. Clicking a camera dot loads that camera's live frame.
- Camera and flood-sensor coordinates come from a
data/stations.jsonfile the snapshot script rewrites at most once a day (the hardware doesn't move; this keeps the every-15-minutes commits small). Aircraft refresh with their two-minute feed; ferry positions are up to about 15 minutes old and say so in their popup. - The traffic feed's coordinate strings are dirty — truncated pairs and dropped minus signs. Points outside a plausible New York box are discarded and lines are split where consecutive points jump implausibly far, so a small number of segments render partially.
- Subway trains are counted on the board but not mapped: the public train feed reports positions by track segment and stop, not coordinates. The base map is CARTO's dark tiles over OpenStreetMap data.
Source-by-source detail
| Tile | Source and endpoint | Refresh | Notes and caveats |
|---|---|---|---|
| Surface weather | National Weather Service observations API: api.weather.gov/stations/KNYC|KLGA|KJFK/observations/latest |
Browser, every 5 min; stations report roughly hourly | KNYC is the Central Park station. Airport sensors (Automated Surface Observing Systems) are the gold standard; the API occasionally returns null temperature fields, which the page skips. |
| Weather radar | NEXRAD base-reflectivity tiles composited by the Iowa Environmental Mesonet: mesonet.agron.iastate.edu/cache/tile.py/.../nexrad-n0q-900913/, over a CARTO dark basemap |
Every 5 min | The radar covering the city is KOKX in Upton, Suffolk County. Tiles are a national composite; the panel crops to the region around the city. Transparent tiles mean no echoes. |
| Satellite view | GOES-East (GOES-19) Advanced Baseline Imager, northeast-sector GeoColor composite from NOAA's image server, cdn.star.nesdis.noaa.gov |
Browser, every 5 min; the satellite scans about that often | A geostationary imager 22,236 miles over the equator. GeoColor is true color by day; at night it blends infrared cloud imagery with a static city-lights layer. |
| Low-orbit pass | Visible Infrared Imaging Radiometer Suite (VIIRS) aboard NOAA-20, served as true-color tiles by NASA's Global Imagery Browse Services: gibs.earthdata.nasa.gov |
Browser, hourly check; the satellite passes about 1:30 p.m. and imagery publishes a few hours later | The one public satellite view meant to show the city itself rather than its weather — about 375 meters per pixel from 512 miles up. The panel shows today's pass once processed, otherwise the most recent available day (labeled). No public satellite feed of the city is live at street scale: geostationary satellites are too far away for fine detail, and the daily high-resolution constellations (Planet, Maxar, Airbus) sell their imagery rather than publish it. |
| Aircraft overhead | airplanes.live API: api.airplanes.live/v2/point/40.7128/-74.0060/30 |
Browser, every 2 min | Community-run network of Automatic Dependent Surveillance-Broadcast receivers. Counts aircraft not reporting "ground" status within 30 nautical miles of City Hall. Helicopter count uses the transponder's self-reported category (A7, rotorcraft), which some helicopters leave unset — treat it as a floor. |
| Air quality | Open-Meteo air-quality API (Copernicus Atmosphere Monitoring Service model) | Browser, every 15 min; model updates hourly | This is the one tile that is not a sensor. It is a model estimate for Lower Manhattan, shown because the region's regulatory monitors do not publish a key-free real-time feed. It is labeled MODEL on the board. Confidence: directionally reliable, not monitor-grade. |
| Harbor tides | NOAA Center for Operational Oceanographic Products and Services: stations 8518750 (the Battery) and 8516945 (Kings Point), api.tidesandcurrents.noaa.gov |
Browser, every 5 min; sensors report every 6 min | Heights are in feet above mean lower low water, the standard chart datum. Next high/low times come from NOAA's own harmonic predictions. The Battery gauge is one of the longest-running instruments in the city, in service since 1920. |
| Stream and tide gauges | United States Geological Survey instantaneous values service, queried by the five boroughs' county codes, parameter 00065 (gage height) | Browser, every 10 min; gauges report every 6 to 15 min | The set of gauges is discovered live from the county query, so new deployments appear automatically. All five current gauges measure stream stage on creeks and rivers, not harbor tide (NOAA covers that). |
| Wave buoy | National Data Buoy Center station 44065, ndbc.noaa.gov/data/realtime2/44065.txt |
Snapshot, every 15 min; buoy reports hourly | Moored at the New York Harbor entrance about 15 miles south of Breezy Point. "Significant wave height" is the average of the highest third of waves, the standard oceanographic measure. |
| Ships in the harbor | Automatic Identification System transponders, heard by aisstream.io's network of volunteer shore receivers and relayed through a small Cloudflare Worker (the same relay that powers the harbor-traffic project; the stream key stays inside the Worker) | Browser listens to the stream for about 25 seconds, every 5 min | Counts vessels heard during the listening window, so slow-transmitting anchored ships can be undercounted; large commercial vessels transmit every few seconds. "Underway" means faster than half a knot. |
| Street flood sensors | FloodNet (a New York University and City University of New York project with city agencies), read through the FieldKit platform its dashboard runs on: project 174, sensor wh.floodnet.depth |
Snapshot, every 15 min | Ultrasonic sensors measure water depth over roadways at flood-prone spots. Only stations with a depth reading in the last 6 hours are counted. Depth values are treated as millimeters, matching FloodNet's published data schema; a sensor is counted as "wet" above one inch (25.4 millimeters). Because the unit is inferred from the schema rather than labeled in the feed, treat the wet-sensor count as a floor. Dry readings hover near zero with sensor noise. |
| Traffic speed sensors | NYC Department of Transportation real-time traffic speed detectors, via NYC Open Data dataset i4gi-tjb9 |
Browser, every 5 min; sensors report every few minutes | These sensors sit on highways, bridges and tunnels — not local streets — so the average describes arterial traffic, not a crosstown block. Only readings from the last 40 minutes are counted. Borough averages are unweighted means across sensors. |
| Traffic cameras | NYC Department of Transportation camera network, webcams.nyctmc.org |
Camera list refreshed with the snapshot; images pulled live every 9 seconds as the panel rotates, or on demand when a camera is clicked | The automatic tour cycles through a geographic spread of online cameras; the mini-map beside the frame plots all of them, and clicking any dot loads that camera's live image. Images are typically a few seconds to a minute old at the source. Camera locations refresh daily via data/stations.json. |
| Citi Bike docks | Citi Bike general bikeshare feed specification: gbfs.citibikenyc.com/gbfs/en/station_status.json |
Browser, every 3 min; feed updates about every minute | Totals sum every station in the system, which includes Jersey City and Hoboken stations (a few percent of the system). |
| Bridge clearance | NOAA Physical Oceanographic Real-Time System air-gap sensors: stations 8517986 (Verrazzano-Narrows) and 8519461 (Bayonne Bridge) | Browser, every 5 min; sensors report every 6 min | Microwave sensors under the bridge decks measure the actual air gap for ships, which rises and falls with the tide. These exist so ultra-large container ships know whether they fit. |
| Bike + walk counters | NYC Department of Transportation automated bicycle and pedestrian counters, via NYC Open Data datasets ct66-47at (counts) and 6up2-gnw8 (sensor locations) |
Browser, every 15 min; counters bin in 15-minute intervals but reach the portal hours behind | The tile sums the trailing 24 hours and shows the newest bin's time. This is the least "live" feed on the board — the counters report continuously but the public copy lags a few hours, and the tile's amber light reflects that. |
| Buses reporting | MTA Bus Time SIRI vehicle-monitoring feed, bustime.mta.info |
Browser, every 3 min; positions update continuously | Uses a public, per-key rate-limited Bus Time key (the same one published in the companion bus-tracker project). Counts vehicles transmitting a position; buses deadheading or with dead trackers are invisible. |
| Elevators + escalators | Metropolitan Transportation Authority current-outage feed for subway elevators and escalators | Browser, every 5 min | The feed lists equipment out of service right now, including planned maintenance. "On accessible routes" counts outages the MTA flags as affecting Americans with Disabilities Act accessibility. |
| Commuter trains | Long Island Rail Road and Metro-North real-time feeds (General Transit Feed Specification real-time) | Snapshot, every 15 min | Counts trains present in each railroad's feed; where a feed carries trip updates but not vehicle positions, active trips stand in for trains. |
| Subway trains reporting | Metropolitan Transportation Authority real-time subway feeds (eight General Transit Feed Specification real-time feeds covering all lines) and the subway-alerts feed | Snapshot, every 15 min | Counts trains transmitting a vehicle position. This is "trains the signal system is reporting," which can differ slightly from trains physically in motion; a position message can persist briefly after a trip ends. Alert count includes planned service changes currently in effect. |
| NYC Ferry vessels | NYC Ferry real-time vehicle-position feed | Snapshot, every 15 min | Counts boats transmitting positions; overnight the number drops to zero or near zero, which is real, not an outage. |
| Seismographs | United States Geological Survey earthquake catalog, fed by the Lamont-Doherty cooperative seismographic network's stations around the region: earthquake.usgs.gov/fdsnws/event/1/query |
Browser, every 30 min | Counts cataloged earthquakes within 300 kilometers of City Hall over the trailing 30 days; epicenters appear on the map. Most months the count is a small number of tiny magnitude-1-to-2 events; the tile shows the instruments are listening. |
| Upstate reservoirs | Department of Environmental Protection daily reservoir-levels page (the agency's open-data version of this dataset stopped updating in October 2025, so the snapshot reads the public page itself) | Snapshot, hourly check; the page updates daily with a one-to-two-day lag | Percent of total system capacity, with the normal value for the date. Page scraping is inherently fragile; if the format changes the tile goes stale rather than guessing. |
| PATH trains | Port Authority of New York and New Jersey RidePATH arrivals feed: panynj.gov/bin/portauthority/ridepath.json |
Snapshot, every 15 min | The feed publishes upcoming arrivals per station rather than train positions, so the tile counts arrivals posted for the next 30 minutes — a service-level reading, not a train census. Snapshot timing means it can be up to 20 minutes behind. |
| Power outages | Con Edison outage-map data feed, summary file | Snapshot, every 15 min; the source updates every 15 to 30 min | Customers without power and separate outage events across Con Edison's roughly 3.6 million customers. The Rockaways are served by PSEG Long Island and are not included. On a normal day a few hundred customers are dark somewhere. |
| Geomagnetic field | NOAA Space Weather Prediction Center: planetary K index from its worldwide ground-magnetometer network, plus the current storm scales — services.swpc.noaa.gov |
Browser, every 30 min; the index updates every 3 hours (estimated more often) | Not a New York City sensor, but the geomagnetic conditions it measures act on the city's grid, pipelines and satellite navigation. Kp below 3 is quiet; 5 or higher is a storm with a G-scale rating. |
| Electric demand | New York Independent System Operator real-time actual load, mis.nyiso.com/public/csv/pal/, zone N.Y.C. |
Snapshot, every 15 min; source updates about every 5 min | The N.Y.C. zone (load zone J) covers the five boroughs. The statewide figure sums all 11 zones at the same timestamp. |
| Fuel mix | New York Independent System Operator real-time fuel mix, mis.nyiso.com/public/csv/rtfuelmix/ |
Snapshot, every 15 min; source updates about every 5 min | Statewide, not city-specific — the grid does not track electrons by borough. "Dual fuel" units burn gas or oil; the category is reported as the system operator labels it, without editorial regrouping. |
Private sensor networks: what a sweep found
Several tiles already come from privately run networks with public feeds: airplanes.live (volunteer aircraft-transponder receivers), aisstream.io (volunteer ship-transponder receivers), Citi Bike (Lyft's dock telemetry) and FloodNet (a university consortium). A July 2026 sweep of other private networks found:
- Sensor.Community (citizen air-quality sensors, key-free and open): only 3 sensors currently report inside the five boroughs, one of them indoors — too sparse to summarize. Worth rechecking as the network grows.
- PurpleAir (the largest citizen air-sensor network, with real density in the city): the API requires a key that cannot be published in page code. It could join the 15-minute snapshot if a key were added as a repository secret.
- Raspberry Shake (citizen seismographs): the network's public station service was unreachable when tested; the professional Lamont-Doherty network covers the same ground on the board.
- Weather Underground and Netatmo (thousands of private weather stations in the city): both key-gated, and the airport-grade stations on the board are the better instruments anyway.
- SONYC (the New York University noise-sensor project): its public data releases are historical archives, not a live feed.
- Blitzortung (a volunteer network of lightning-detection receivers, including around New York): live strike maps on its own site, but the project restricts raw data to participating members — no public API to relay.
- BirdCast (Cornell and Colorado State's reuse of the weather-radar network to count migrating birds): a live nightly migration dashboard in season, but no documented public API. Worth revisiting when fall migration starts in August.
- Phone-derived foot traffic (Placer.ai, SafeGraph, Unacast and kin): these firms build crowd estimates from de-identified location pings collected by mobile-app software, and sell them. A July 2026 check found no anonymous public interface — Placer.ai's API and "free tools" all sit behind accounts and contracts, and Google's per-place "popular times" busyness data has no official API at all. The closest public, sensor-based crowd measures are already on the board: subway trains and bus loads, dock telemetry and the bike and pedestrian counters.
What is not here, and why
This board aims to include every public sensor network with a live, public interface. The notable ones that don't qualify, checked as of July 2026:
- Department of Transportation street activity sensors. The Numina-based sensors now at roughly 100 locations count pedestrians, cyclists and vehicles continuously. The city owns the data and says datasets "will be available via NYC Open Data," but as of this writing there is no public real-time interface — only press releases. When it lands, it belongs here.
- New York State's own networks are mostly key-gated. The state Mesonet (126 research-grade weather stations, including several in the city) requires a data agreement, and 511NY (state roadway cameras and incident feeds) requires a registered key. Both could join the board's 15-minute snapshot if a key were added as a repository secret — the free 511NY registration is the lower bar. The state's real-time contributions here instead arrive through the grid operator (New York Independent System Operator) and the Metropolitan Transportation Authority.
- Other feeds requiring a private API key in public page code: PurpleAir and AirNow air-quality monitors and premium aircraft feeds. (Bus Time also requires a key, but a public rate-limited one already circulates, so buses made the board.)
- Indoor heat sensors (the Department of Housing Preservation and Development's Heat Sensors Program): real sensors in apartments of buildings with chronic heat violations, reporting temperatures all winter — but the readings go only to the agency and the building owner. The only public artifact is the annual list of buildings selected for the program. The city's other temperature-sensor experiment, the 475-device Hyperlocal Temperature Monitoring network from the Cool Neighborhoods initiative, stopped collecting in October 2019 and survives only as an archive.
- Gunshot-detection microphones (ShotSpotter/SoundThinking): the police department does not publish sensor activations, live or delayed. A July 2026 check of the city's open-data portal found zero ShotSpotter datasets; the closest public data is the police department's historic shooting-incident file, which is compiled from reports, not from the sensors.
- Noise sensors, the board's biggest gap: a July 2026 check found no live public noise feed anywhere in the city — zero noise-sensor datasets on the open-data portal, the SONYC academic network dormant with historical archives only and the Department of Environmental Protection's meters used for enforcement rather than publishing. The one live-ish exception: the Port Authority's roughly 30 airport noise monitors around Kennedy, LaGuardia and Newark can be watched (on about a 20-minute delay) in its WebTrak viewer, but there is no documented public API behind it.
- Groundwater wells: the United States Geological Survey operates real-time monitoring wells on Long Island, but a July 2026 query found zero transmitting inside the five boroughs — the city's own wells report on a lag or not at all.
- Other sensor networks with no public interface: the city's traffic-signal detection loops, Con Edison's grid telemetry (its outage map has no stable public feed) and the Department of Environmental Protection's water-quality instruments (samples are published on a delay, not live).
- PATH trains publish next-arrival boards but not vehicle positions or a train count worth a tile.
- Anything that identifies people. Everything on the board measures water, air, vehicles in aggregate or infrastructure.
Confidence notes
- Readings are relayed exactly as published, with unit conversions only (Celsius to Fahrenheit, meters to feet, kilometers per hour to miles per hour). High confidence in the relay; the sensors themselves carry the usual instrument error.
- Derived numbers (averages, counts, percentage shares) are simple arithmetic over the latest readings, described on each tile. Medium-high confidence; the main risk is a source publishing a bad value, which this page does not attempt to detect beyond freshness checks.
- The air-quality tile is a model, labeled as such. Treat it as context, not measurement.
- This page is for curiosity and situational awareness, not safety-critical decisions.