Daten-Ingestion mit RenkuLab¶
Dieses Projekt nutzt RenkuLab für reproduzierbare Sessions und persistente Datenablage. Die öffentlichen APIs werden durch Code im Repository abgefragt; RenkuLab Data Connectors stellen die eingebundenen Ordner für Rohdaten und kuratierte Daten bereit.
Repository-Struktur¶
configs/sources.yml # Registry der Datenquellen
scripts/ingest.py # erster Ingestion-Runner
data/raw/ # lokale Rohdaten-Snapshots, von Git ignoriert
data/curated/ # lokale bereinigte MVP-Ergebnisse, von Git ignoriert
environment.yml # Python/Jupyter-Umgebung für RenkuLab
data/raw/ und data/curated/ werden nicht in Git versioniert. Lokal schreibt
das Ingestion-Skript direkt dorthin. In RenkuLab werden Data Connectors als
Ordner neben dem Repository eingebunden, zum Beispiel ../govtech-raw und
../govtech-curated. Skript und Notebook nutzen diese Renku-Mounts automatisch,
wenn sie vorhanden sind.
Lokaler Test¶
python scripts/ingest.py --list
python scripts/ingest.py --source opendata_swiss
Jeder erfolgreiche Lauf schreibt zwei Dateien:
data/raw/<source_id>/<timestamp>/payload.json
data/raw/<source_id>/<timestamp>/metadata.json
Die Datei metadata.json enthält Quelle, Zugriffspfad, Format und den konkreten
Zeitpunkt der Abfrage.
RenkuLab-Schritte¶
- Projekt in RenkuLab erstellen oder öffnen.
- GitHub-Repository
https://github.com/allsparkswiss-hub/GovTECHverbinden. - Branch
renku-data-connectorsauswählen. - Data Connector
govtech-rawaus dem Google-Drive-OrdnerGovTECH-Renku/rawerstellen. - Data Connector
govtech-curatedaus dem Google-Drive-OrdnerGovTECH-Renku/curatederstellen. - Session Launcher aus dem Repository und
environment.ymlerstellen. - Session starten und Ingestion testen:
python scripts/ingest.py --list
python scripts/ingest.py --all
find ../govtech-raw -maxdepth 3 -type f | head
Derselbe Befehl python scripts/ingest.py --all funktioniert lokal und in
RenkuLab. Das lokale Standardziel ist data/raw; das Renku-Fallback-Ziel ist
../govtech-raw.
MVP-Quellen¶
Der erste MVP-Lauf nutzt dreizehn aktivierte Quellen:
opendata_swisssfoe_energy_balance_csvmeteo_swiss_smngeoadmin_army_nature_landscapegeoadmin_civil_protection_meeting_pointsgeoadmin_surface_runoff_hazardgeoadmin_nuclear_emergency_zonesarmasuisse_st_publicationsaramis_armasuisse_research_projectsparliament_affairslindasfedlexbfs_pxweb
Die Quellen decken Energie, Klima/Wetter, Bevölkerungsexposition, öffentliche
Geodaten, armasuisse-Technologiepublikationen, Bundesforschungsprojekte,
parlamentarische Signale und regulatorische Signale ab. Die Daten bleiben
zunächst als Roh-Snapshots unter data/raw/; daraus können später kuratierte
Tabellen und Indikatoren unter data/curated/ entstehen.