Copenhagen Phase 3: render.py -> PNG/SVG/PDF map

- render.py: parameterized CLI (--modes, --no-buses, --bus-subset,
  --max-bus-routes, --dpi, --size, --format, --out, --no-basemap, --no-labels)
- basemap: OSM standard tiles via contextily (EPSG:3857)
- two-tone lines: dark casing + colour body per route, z-order
  bus->s_tog->light_rail->regional->metro
- shapeburst fade mask outside City Pass area (distance-transform alpha)
- station labels for metro + S-tog via adjustText
- title + attribution
- styling.yaml: switch basemap to OpenStreetMap.Mapnik (CartoDB now needs API key)
- .gitignore: exclude generated outputs (regenerable via render.py)
- verified: full map, --no-buses, --bus-subset, --modes, SVG all work
This commit is contained in:
2026-09-13 01:27:55 +02:00
parent 8e32ca2b1c
commit d38c280a4e
3 changed files with 287 additions and 1 deletions
+5
View File
@@ -4,6 +4,11 @@ copenhagen/data/processed/**
!copenhagen/data/raw/.gitkeep
!copenhagen/data/processed/.gitkeep
# Generated map outputs (regenerable via render.py)
copenhagen/output/*.png
copenhagen/output/*.svg
copenhagen/output/*.pdf
# Python
.venv/
__pycache__/