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 lines. Includes existing, under construction, and planned MAX, WES, and Portland Streetcar lines. The data have been generalized to improve cartographic display at smaller scales. 171 LineString features covering the TriMet
service district in the Portland, Oregon metropolitan area, published by TriMet
as tm_rail_lines and last updated at the source on
September 26, 2024.
TriMet's rail network β MAX light rail, WES commuter rail and Portland Streetcar
β as 171 segments generalized for cartographic display. Each segment records
which line or lines run over it (line), whether it is at surface level, on a
bridge or in a tunnel (passage), its operational status, and its service type.
The line codes are what make this layer unusual: a value like BGR means the
Blue, Green and Red lines all share that track. That is why TriMet draws it with
a solid base stroke plus one dashed overlay per additional line, and why
styles/default.json here does the same.
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:
line codes encode directly
and no other layer in this catalog does.passage.routes for the operational alignment.passage is a drawing hint, not an inventory. TriMet's own note: this
attribute "is intended for use in cartographic display rather than analysis".
It does not identify specific bridges or tunnels.Column descriptions are TriMet's own, taken verbatim from
meta_tm_rail_lines.shtml. The same text is carried in
table:columns in collection.json.
The PMTiles layer is named rail-lines. Styles reference it as ../rail-lines.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_lines.
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.
tunnelstatus | string | Operational status of the segment. Values: Existing Service currently provided on rail segment; Planned Rail segment in advanced planning stages; UC Rail segment is under construction. |
type | string | Type of service. Values: CR Commuter rail; MAX Light rail; MAX/SC Shared light rail and streetcar; 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. |
| TriMet's rail cartography with the LINE code drawn along each segment. Because a code such as BGR means three lines share that track, the labels are the fastest way to read which services run where. |