The project

About Long Hikes

Long-distance hiking trails of the United States and Canada, with their lines where they may be shared.

What this is, and what it is not

This is a dataset, not a guide. Each record says what the trail is, how long it is, where its line came from, and under what terms that line may be used. It is not a navigation product: lines vary in quality, some trails are unfinished, and some records have no line at all. Check a trail's own record before using its line.

The counts at this release:

138 records, 85 with a line, 53 records only. Of these, 34 are person-defined routes: 1 with a line and 33 records only.

Inclusion rule

A long trail here is a named, continuous walking route, or a named loop, of at least 50 miles (80 km), in the United States or Canada: either a trail that a land agency or a trail association designates, maintains and publishes as one trail, or a person-defined route as described below. The floor is 50 miles because that is about what multi-day wilderness backpacking takes. A small number of well-known multi-day trails between 60 km and 80 km are also listed.

Every United States National Scenic Trail is listed. Other trails are listed when they meet the rule above.

Person-defined routes are listed too, at the same 50-mile floor. A person-defined route is one that a person or a small group worked out and published: a high route, a traverse, or a loop of linked trails. Its record names the creator and says where the route is got from the creator: the guidebook, map set or page, and whether it is free or sold. Whether a line is included follows the creator's choice:

  • The creator sells the route, or chooses not to publish a line: the record has no line. No line is included from any source, OpenStreetMap included.
  • The creator publishes the line freely: a line is included only where the creator's terms allow passing it on, or where OpenStreetMap carries the route as a route relation. Otherwise the record points to the creator's own download.
  • Not settled: the record has no line until it is.

A creator who wants a record changed or removed can ask; see NOTICE.md.

A trail may be listed as a record only, with no line, when no line for it may be shared. The record says why.

How to use it

  • Read a trail: open its trail.toml. The [source] section says where the line came from and under what terms it may be used.
  • Read all trails at once: use trails.csv, or index.geojson for a map overview.
  • Check the data: run python3 tools/validate.py. It prints OK <n> trails when all records pass.
  • Rebuild the generated files after editing a record: run python3 tools/build_index.py.

Follow the licence in each record. Lines from OpenStreetMap need the credit "© OpenStreetMap contributors" and stay under the ODbL. Lines from United States federal agencies are public domain in the United States. Other lines carry the credit named in their record.

Report an error

Open an issue, or send a patch, with: the trail's id, what is wrong, and where the correct information can be checked (a source page, a map, or a measured line). Corrections to a line should name the source the corrected line came from and its licence. See CONTRIBUTING.md for how to correct a record, add a trail, or refresh a trail from its source.

Licences

The records, documents and compiled index in this repository are dedicated to the public domain under CC0-1.0 (see LICENSE). The tools in tools/ are under the MIT licence (see LICENSES/MIT.txt). Each trail's line keeps the terms of its source, stated in that trail's record (see SOURCES.md). Lines from OpenStreetMap are © OpenStreetMap contributors, under the ODbL (see LICENSES/ODbL-1.0.txt). Trail logos are not covered by any of these licences; see NOTICE.md.

Sources

See SOURCES.md for each distinct source, the sentence that states its terms, the page it was read on, and the date it was read.

Contributing

Thank you for helping correct or extend this dataset. Please keep changes small: one trail per change where you can.

Correct a trail

  1. Edit only that trail's directory.
  2. Keep every field name in trail.toml (see docs/schema.md). Say in the commit message which fields changed and why.
  3. If you change a line, name its source and licence. A line may only be included when its source's terms allow redistribution. United States federal data is public domain. OpenStreetMap data is ODbL and needs the credit "© OpenStreetMap contributors". If a publisher's own line may not be passed on, do not include it: keep the record, use an OpenStreetMap line if one is already recorded for the trail, or include no line and say why in source.line_absent_reason.
  4. Update release.txt when line files change: source, licence, and the date read.
  5. Rebuild the generated files and check everything:
python3 tools/build_index.py
python3 tools/validate.py

The second command must print OK <n> trails.

Add a trail

A trail belongs here when it meets the inclusion rule in README.md: a named, continuous walking route, or a named loop, of at least 50 miles (80 km) (a few well-known routes of 60-80 km are also listed), in the United States or Canada. It is either a trail that a land agency or a trail association designates, maintains and publishes as one trail, or a person-defined route: a high route, a traverse or a loop that a person or a small group worked out and published.

A person-defined route whose creator chooses not to publish a track is still added, as a record with no line, pointing to where the route is got from its creator. No line for it is included from any source, OpenStreetMap included. The rule is in README.md, section "Inclusion rule"; the fields are in docs/schema.md.

To add one:

  1. Create a directory named with a new stable id: lower-case words joined by hyphens. It never changes afterwards.
  2. Write trail.toml with every required field in docs/schema.md.
  3. Add line.geojson only if the line may be shared (see above), plus release.txt.
  4. Add a logo only as shield.svg or shield.png, and name its holder in shield.logo_owner and where the art came from in shield.logo_source.
  5. Run the two commands above.

Refresh a trail from its source

  1. Read the trail's [source] section. source.url is where to ask for the line; source.discovery says how to tell whether the source has changed.
  2. Fetch the new line from that source. Do not pin a dated file name where the source offers a current layer or relation.
  3. Replace line.geojson (and alternates.geojson or line-<source>.geojson where present), keeping coordinates in longitude, latitude order. The published copy rounds coordinates to 6 decimal places and uses compact JSON.
  4. Update source.source_checked, release.txt, and the [verification] section (measured length of the new line, and the difference from length_km).
  5. If the measured length differs from length_km by more than 15%, explain why in source.length_gap_note (for example: the trail is partly unbuilt, or the published length counts side trails).
  6. Run python3 tools/build_index.py, then python3 tools/validate.py.

Style

  • Plain, short English. No sales talk.
  • Records state facts and sources. If a term comes from a source page, quote the sentence and give the page in source.licence_text or SOURCES.md.
  • Do not add personal names or email addresses, local file paths, or notes about how a change was produced. This is about contributors and about how a change was made. The published name of a route's creator, or of a guide's author, is a fact about the route and belongs in the record (route.creator, guide.author).