WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
기차로 갈 수 있는 GR·PR 트레일 하이킹 코스를 찾아보세요
Découvrez des itinéraires de randonnée sur les sentiers GR et PR, accessibles en train. TrainRando est un projet open-source qui répertorie des randonnées entre gares en France.
라이프스타일Python · AstroGitHub @Blightwidow온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Train station-to-station hiking on French GR paths -- car-free hiking made easy.
A Python pipeline fetches hiking routes, train stations, bus stops, and elevation data from open sources, then exports a catalog. An Astro static website displays routes on a map with filters, elevation profiles, section selection, and GPX download.
BUILD TIME RUNTIME (static files)
+-----------------------------------------+ +----------------------------+
| Python Pipeline | | Astro Static Site |
| | | |
| Overpass API --+ | | Leaflet Map + List/Filter |
| SNCF stations -+-> fetch -> match -> | | Elevation chart |
| GTFS bus data --+ geography -> | | Section selector + QR |
| SRTM tiles ----+ elevation -> | | | |
| export | | catalog.json |
| data/catalog.json | | /gpx/{id}.gpx |
| data/gpx/*.gpx | | /geojson/{id}.json |
| data/geojson/*.json | | /elevation/{id}.json |
| data/elevation/*.json | +----------------------------+
+-----------------------------------------+
The pipeline:
routes.yaml (176 trails with OSM relation IDs)catalog.json consumed by the websiteOn macOS, brew bundle at the repo root installs every native tool (uv, osmium-tool, gdal, tippecanoe, rclone, bun). Otherwise:
pois stage; tracks fall back to the Overpass API)cd pipeline
uv sync --all-extras
uv run python -m open_rando pipeline
pipeline chains five stages: tracks, gtfs, pois, link, catalog. The POI stage reads the local OSM extract index, so build it first (make -f Makefile.osm). Each stage also runs alone, see docs/SPLIT_PIPELINE.md.
Options:
uv run python -m open_rando pipeline --route "GR 13" # single route
uv run python -m open_rando pipeline --dry-run # list routes without processing
uv run python -m open_rando pipeline --retry-failed # only routes that failed before
uv run python -m open_rando pipeline --skip-gtfs # reuse the GTFS stop index
Pipeline output goes to ~/.local/share/open-rando/data/, cache to ~/.cache/open-rando/.
cd website
bun install
bun run dev
The dev server copies pipeline data into public/data/ automatically.
To build for production:
bun run build
Static output goes to website/dist/.
open-rando/
pipeline/ Python data pipeline
src/open_rando/
cli.py Entry point
config.py Constants (API config, search radius)
fetchers/ Overpass, SNCF, GTFS, SRTM, POI fetchers
processors/ Station matching, elevation, geography, slicing
exporters/ GPX, GeoJSON, elevation, catalog writers
routes.yaml Curated GR route catalog (176 trails)
website/ Astro static site
src/
pages/ Landing, app (list + map), route detail (FR + EN)
components/ ElevationChart, RouteCard, RouteFilters, RouteList, SearchableSelect
lib/ catalog.ts, i18n.ts, elevation.ts, route-filters.ts
docs/ Architecture, data sources, deployment
| Layer | Tech |
|---|---|
| Pipeline | Python 3.13+, Shapely, requests, gpxpy, pyyaml |
| Website | Astro, Leaflet, Tailwind CSS, qrcode-generator |
| Data sources | OpenStreetMap Overpass API, SNCF open data, transport.data.gouv.fr GTFS, OSRM, SRTM elevation tiles |
All data comes from open sources under the ODbL license.
route=hiking, ref~"^GR")railway=station / railway=halt), filtered for active service via SNCF datatourism=hotel|guest_house|hostel|camp_site) near the trail.hgt tiles, sampled every 50m along the trail# Lint and format (Python)
cd pipeline
uv run ruff check src/
uv run ruff format src/
# Type check
uv run mypy src/
Code and website: GPLv3
Data: ODbL (OpenStreetMap)