WikiProject United States railways

From OpenStreetMap Wiki
Jump to: navigation, search

This page intends to help organize efforts to map railways in the United States.

Editing Railroads starting from TIGER data

Like highways, railroad tracks have been imported from TIGER data and share similar problems like disconnected segments, wrong tagging, missing bridges and crossings and positions that are frequently off quite a lot. So a review is necessary as it is for highways. Sources to improve these data might include Bing imagery and/or a state Public Utilities Commission road/rail crossing spreadsheet. Such review might include following an entire rail "line" from one end to the other, paying particular attention to:

• alignment (against recent aerial or satellite imagery like Bing),
• multiple tracks (each mapped individually, preferably not with tracks=#),
• crossover tracks between mainlines, branches, sidings and spurs,
• tracks which make up yards,
• bridges and tunnels, where they exist and
• assuring that at-grade road/rail crossings are an actual intersecting node with a railway=level_crossing tag.

Reviewed/corrected segments of a single (named) railway should eventually be collected into a named route=railway relation. However, before doing so, given the abundance of TIGER rail data OSM has in the USA, try these steps while doing the above review:

• Select an element of TIGER rail, change its name=* tag to operator=* (rail company, transit district, public works entity...) and add a new name=* tag with a value of the name of the rail segment, often something like "XYZ Subdivision" or "ABC Industrial Line."
• Check the railway=* tag: valid tags include railway=rail, railway=tram, railway=light_rail, railway=subway, railway=disused, railway=abandoned, railway=narrow_gauge, railway=preserved and railway=construction.
• If you find a railway=spur tag, change it to railway=rail and add service=spur.
• See if an odd service=* tag exists (like service=branch, which doesn't make sense) and delete it if necessary. Valid service=* tags include service=spur, service=crossover and service=yard.
• Add a usage=* tag [main, branch, industrial, military, tourism] if one doesn't already exist. These can be subjective (see here), but usage=main is generally correct for heavy-traffic passenger and freight rail, especially as a contiguous named Subdivision.
• If a tiger:reviewed=no tag exists and you "reviewed" the rail (for example, comparing against Bing imagery and correcting where necessary), delete this tag (don't change it to the superfluous tiger:reviewed=yes).

Now you might gather identically named rail segments into a named relation with type=route, route=railway and name=Name of Subdivision or Line. Be aware of private/corporate rail map data being copyrighted; don't copy these into OSM.

These steps (review, proper alignment and tagging, creating a named relation) lead toward excellent OSM data and render well in OpenRailwayMap (ORM) after approximately 24 hours. Definitive ORM tagging documentation is found here, however, see below.

These are only brief, "local" (to the USA) summary guidelines for rail tagging. Also, these are additional useful North American conventions which are helpful to know.

OSM Rail Structure in the USA

ORM documents tagging rail with three "levels" of relations:

Railway Line Railway Route Train Route (Passenger Rail)
route=tracks route=railway route=train or route=light_rail or route=subway or route=tram

However, in the USA, largely because of how our TIGER import entered rail, we essentially skip collecting members into route=tracks relations and collect "physical railroad" elements (track members as infrastructure) directly into route=railway relations. These route=railway relations have become equated with our familiar named Subdivisions, Branches, Industrial Lines and railway=abandoned: contiguous rail segments with identical railway=*, name=*, operator=* and usage=* tags. ORM tagging suggests these be tagged with route=tracks rather than route=railway. The distinction seems like a small extra syntax wrapper we largely dismiss, however wider impact of not using route=tracks relations (on rendering, routing engines...) is unknown. (There remain a few route=tracks relations in Brooklyn, New York, but they are exceptions in North American rail).

Collections of rail segments (tracks) into route=railway relations continues at another "level" as these route=railway relations are themselves collected into super-relations. For example, the USA has a "Transcontinental" route=railway super-relation from Los Angeles to Chicago named Southern Transcon containing the eleven member route=railway relations that make up this route. We call this a "Major Mainline Rail," and there are others like it, not yet entered into OSM (e.g. Northern Transcon).

So, in the USA, we largely express rail with these three kinds of route relations:

Railway Route "Aggregated" Railway Route (Major Mainline Rail) Train Route (Passenger Rail)
route=railway Several contiguous route=railway relations in a super-relation route=train or route=light_rail or route=subway or route=tram

This diverges from tagging as is done in Europe (especially Germany), since in the USA route=tracks relations are nearly always omitted, being conflated into a route=railway relation. For important further discussion, please see the Discussion page.

Train Routes

Rail Renderers

In addition to OpenRailwayMap (ORM) displaying rail infrastructure, OpenPublicTransportMap (OPTM) displays passenger rail in route=train relations. At closer zooms, OPTM also displays route=light_rail, route=subway, route=tram, route=monorail, route=funicular, route=bus, route=trolleybus, route=aerialway and route=ferry with colors similar to ORM. Please compare and contrast ORM (rail infrastructure) and OPTM (passenger rail, bus and ferry routes) with OSM's Transport layer which rather simply displays "any and all rail" (railway=*, excluding railway=disused and railway=abandoned) and at closer zooms, route=bus.

Thanks to Indy Hurt, here is another rail renderer which displays rail-based passenger routes with their colour=* or color=* tag.


If you wish to improve USA railroads in OSM:

• Clean up yards using Bing imagery or better knowledge. Currently yards are moderately correct, but can use improvement from recent Bing imagery or newer real-world data.

• Assemble identically named rail segments (not already gathered) into a named route=railway rail relation. And/or, improve these. (It CAN be tedious to stitch them together properly. Please grin and bear it!)

• Follow unreviewed TIGER rail along its length, comparing it with your best data. This might be many things: a survey or GPS track, Public Utilities Commission crossing data, Bing imagery, rail enthusiast lore that OSM has permission to use or personal rail knowledge that is "on the ground verifiable."

• Using an Overpass Turbo query or ORM (black lines), find unreviewed TIGER rail incorrectly named as a railroad (e.g. name=Union Pacific Railroad). Properly tag these with e.g. operator=Pacific Harbor Line, name=ABC Freight Lead and usage=freight.

• Using an Overpass Turbo query or ORM (railway=disused as brown and railway=abandoned as dashed brown lines), find TIGER rail with incorrect status. Properly tag these with knowledge of whether they are truly disused, abandoned or active rail.

Map Your Train Ride! Add public_transport=platforms to the route=train relation of your commute. It's easy: add a node or draw a small polygon representing the exact location of the platform, and tag with public_transport=platform, railway=platform and rail=yes, light_rail=yes, subway=yes or tram=yes. You might also add it to the proper route=train relation(s) which should be found around that railway=station. For further guidance, see this diagram of a "simple railway station".

Much more work needs doing. This includes yards and reducing or eliminating tracks=# tags (entering each distinct track element). Eventually, all named rail should be in route=railway relations. USA railroads are not 100% there yet, but continue to approach this subgoal. Another goal is for all train routes (passenger rail) to contain accurate relation memberships of (named) track infrastructure, largely done but not complete — another frontier. Other frontiers are maxspeed=* and railway=signal tags, barely extant now. Seriously: should you take a look and decide to do so, everything here can use review and/or improvement, especially improving tagging from public_transport=version v1 to v2. Thank you!

State projects