portolan-pipeline
A fixed 5,000-row extract of a 388,550-row live address layer. Two
rules prevent most wrong answers. Never extrapolate counts or
densities from this sample to San Francisco. Never count rows when
you mean addresses, one row is a base address, a unit, and a parcel
link, so count(*) is 5,000 while distinct buildings are 4,488.
Query the GeoParquet data asset in place with DuckDB spatial, read_parquet('san-francisco-addresses.parquet'), or load it with GeoPandas. It streams over HTTP range requests, so query the published URL directly rather than downloading first. For rendering use the visual PMTiles asset with its MapLibre styles.
EPSG:4326 degrees, so ST_Distance returns degrees. Use ST_Distance_Sphere for meters, or transform to EPSG:26910 for planar work.
The grain, records against buildings against units.
Addresses within 250 meters of a point, metric distance done right.
Buildings with the most sampled units.
Nothing joins inside this catalog, the EAS keys point outward. parcel_number joins DataSF's Parcels layer on blklot, cnn joins the street centerlines, nhood joins Analysis Neighborhoods by name. The upstream is a live Socrata endpoint, referenced by URL only. This extract was converted to GeoParquet 2.0 with DuckDB spatial and dates itself, every row carries data_as_of July 24, 2026.