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.
Public transit rail stops. Includes existing, under construction, and planned MAX, WES, and Portland Streetcar stops. The data have been generalized to improve cartographic display at smaller scales. 169 Point features covering the TriMet
service district in the Portland, Oregon metropolitan area, published by TriMet
as tm_rail_stops and last updated at the source on
December 04, 2024.
The 169 MAX, WES and Portland Streetcar stops, generalized for cartographic
display and carrying real station names rather than intersections. Each stop
records the line or lines that serve it in the same line code space as
rail-lines, so the two layers style consistently.
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:
styles/labeled.json is the reason this collection exists
in a mirror β station gives you the names riders actually use.line code lists
several services.rail-lines to draw a complete, correctly-colored rail diagram.rail-lines, TriMet states this data has
been generalized for display at smaller scales. Platform positions are
approximate; do not use them for pedestrian routing or precise accessibility
work.stop_id here. This layer does not carry TriMet's public stop
number, so it does not join to stops or route-stops on an id. Matching must
be spatial or by name, and neither is exact.stops
(169 versus 161 MAX plus 58 streetcar plus 6 WES rows there).Column descriptions are TriMet's own, taken verbatim from
meta_tm_rail_stops.shtml. The same text is carried in
table:columns in collection.json.
The PMTiles layer is named rail-stops. Styles reference it as ../rail-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_rail_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.
type |
| string |
| Type of service. Values: CR Commuter rail; MAX Light rail; SC Streetcar. |
geometry | binary | Feature geometry, WGS84 lon/lat. |
geometry_bbox | struct<xmin: float not null, ymin: float not null, xmax: float not null, ymax: float not null> | GeoParquet 1.1 covering column, for row-group pruning. Same projected feet as the geometry. |