This is a portolan catalog version of https://developer.trimet.org/gis/ - taking the static data layers there and making them fully cloud-native and interactive.
Active transit stops. 6,316 Point features covering the TriMet
service district in the Portland, Oregon metropolitan area, published by TriMet
as tm_stops and last updated at the source on
July 30, 2026.
Every active TriMet stop, deduplicated β one row per physical stop, 6,316 of them. 6,075 are bus stops; the rest are 161 MAX platforms, 58 streetcar stops, 14 shared bus/streetcar stops, 6 WES platforms and 2 aerial tram terminals.
stop_id is TriMet's public stop number, the one printed on the pole and used by
the arrivals API, which makes this collection the natural bridge between this
catalog and TriMet's real-time services.
Agents: see AGENTS.md for join keys, verified query recipes and the caveats that will otherwise cost you a wrong answer.
Preview it on a map, inspect the schema and license, and download the GeoParquet or PMTiles directly.
Read it straight from object storage β DuckDB fetches only the byte ranges it needs, so there is nothing to download first:
Or with GeoPandas:
stop_id.styles/density.json is built for this.stop_id values are not re-issued, but a stop that vanishes
between vintages simply disappears.route-stops is for. Nor is there any frequency, shelter, accessibility
or boarding-count attribute.stop_name is a location, not a name. Values are intersections or street
addresses ("SE Hawthorne & 39th"), so they are not unique and not suitable as
display names for rail stations β use rail-stops.station for those.Column descriptions are TriMet's own, taken verbatim from
meta_tm_stops.shtml. The same text is carried in
table:columns in collection.json.
The PMTiles layer is named stops. Styles reference it as ../stops.pmtiles,
so they load unmodified against this directory.
Produced by TriMet GIS (4012 SE 17th Ave, GIS3,
Portland, OR 97202,
gis@trimet.org) and distributed at
developer.trimet.org/gis as tm_stops.
The originals are linked as assets and are the authoritative copy: Shapefile Β· KML Β· Metadata
This collection was produced by converting TriMet's Shapefile to GeoParquet,
keeping its native EPSG:2913 (NAD83(HARN) / Oregon North (ft)), and to PMTiles in
WGS84 for display. No features were added, removed or edited. The exact commands
are in tools/convert.py.
This catalog is generated, and both halves are open source: the catalog at
cholmes/portolan-catalog-trimet and the
data browser at
cholmes/trimet-data-browser. If something here is wrong or
could be better β a description, a column definition, a query, a style β
open an issue or send a pull request. Corrections to
the underlying data go to TriMet at gis@trimet.org.
TriMet distributes these datasets free of charge, but the terms of use do not
grant redistribution rights. Section 4 of TriMet's
Terms of Use reserves
reproduction, modification, distribution and republication of site Content
without written consent; the redistribution license in section 5 covers the Web
Services API, not these GIS downloads. The collections therefore declare
"license": "other" with a link to those terms, rather than claiming an open
license the source does not offer.
Practically: use the data, and contact gis@trimet.org before redistributing it or building a product on it. If you need transit data under clear open terms, TriMet's GTFS feed is the better starting point.