Skip to content

aareblau/CampSiteScouter

Repository files navigation

CampSiteScouter

Identifiziert geeignete Camping-Plätze in der Schweiz anhand amtlicher Geodaten.

Funktionsweise

Der Benutzer gibt LV95-Koordinaten oder einen Ortsnamen ein. Das Tool erstellt eine 10×10 km Suchfläche, subtrahiert alle No-Go-Zonen (Strassen, Gebäude, Gewässer, Militärbereiche etc.) aus dem SwissTLM3D-Datensatz und gibt die verbleibenden freien Flächen als GeoJSON aus.

Koordinaten / Ortsname
        ↓
  10×10 km AOI erstellen (LV95)
        ↓
  SwissTLM3D No-Go-Zonen laden
  (Strassen, Gebäude, Wasser, Vegetation, ...)
        ↓
  AOI − No-Go-Zonen = freie Flächen
        ↓
  Optional: Waldnähe-Filter
        ↓
  lagerplaetze_lv95.geojson
  lagerplaetze_wgs84.geojson

Voraussetzungen

  • Python 3.10+
  • swissTLM3D GeoPackage (SWISSTLM3D_2025.gpkg, lokal ablegen)
  • Internetzugang (SwissALTI3D-Download, geo.admin Geocoding)

Installation

git clone https://github.com/aareblau/CampSiteScouter.git
cd CampSiteScouter
pip install geopandas rasterio pyproj shapely fiona requests numpy flask

Verwendung

CLI

python programm.py

Das Programm fragt nach LV95-Koordinaten (E/N). Unterstützte Formate:

2600000 1200000
2'600'000 1'200'000
2600000,1200000

Web-Interface

python web_server.py

Öffne gui.html im Browser. Die interaktive Karte (OpenLayers + geo.admin) zeigt AOI, No-Go-Zonen und Kandidatenflächen.

Konfiguration

config_runtime.json definiert die Buffer-Abstände je Landnutzungskategorie:

Kategorie Standard-Buffer
Hochleistungsstrassen 300 m
Bahnverkehr 200 m
Flughäfen 2000 m
Nebenstrassen 5 m
Naturgewässer 0 m

Projektstruktur

Datei Beschreibung
programm.py Einstiegspunkt, orchestriert den Workflow
pipeline.py AOI-Konstruktion und Geometrie-Filterung
config.py Globale Parameter (Suchradius, EPSG, Schwellenwerte)
config_runtime.json Buffer-Abstände der No-Go-Kategorien
converter.py SwissALTI3D-Download und Steigungsanalyse
geometry_utils.py Koordinatentransformation, Polygon-Operationen
io_cli.py CLI-Koordinaten-Parser mit Validierung
tlm_processing.py GeoPackage-Lesezugriff und No-Go-Union
web_server.py Flask-Backend für Web-GUI
gui.html Interaktive Kartenoberfläche (OpenLayers)
index.html Landing Page

Verwendete APIs & Daten

Quelle Verwendung
geo.admin Search Ortsname → LV95-Koordinaten
SwissALTI3D STAC Höhenkacheln für Steigungsanalyse
swissTLM3D Landnutzungs-Geometrien (lokal, ~GB)

Lizenz

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors