Skip to content

DCC-BS/codespaces-datasette

 
 

Repository files navigation

Verwendung von Datasette in GitHub Codespaces

GitHub Codespaces bietet dir eine vollwertige Linux-Entwicklungsumgebung direkt im Browser – ideal, um mit Datasette zu starten und eigene Daten privat zu erkunden. Wichtig: Codespaces ist nicht zum Hosten öffentlicher Websites gedacht. Jede gestartete Datasette-Instanz bleibt privat.

Dieses Tutorial zeigt dir, wie du Datasette in einem Codespace installierst, Daten importierst und auf einer Karte visualisierst. Voraussetzung: Eine Voraussetzung für das Ausführen des Tutorials in Codespaces ist ein Github-Login.

Für die ganz Mutigen (ohne zu restriktive Laptops): Versucht es gerne direkt lokal auf dem Computer (ohne Codespaces).


🏁 Schritt 1: Codespace erstellen

Jeder Codespace ist an ein GitHub-Repository gebunden.

Du kannst direkt dieses Repository DCC-BS/codespaces-datasette nutzen oder es forken, wenn du deinen Fortschritt bewahren willst. Falls du einen Fork des Repositories erstellen möchtest, kannst du auf den Button Fork oben rechts klicken und dann auf den Button Create Fork.

image

Klicke nun auf Code → Codespaces → Create codespace on main.

Codespace oeffnen

Nach wenigen Momenten erscheint die Codespaces-Umgebung. Wir arbeiten ausschliesslich im Terminal-Bereich.

Codespaces UI


📦 Schritt 2: Datasette installieren

Installiere zuerst Datasette:

pipx install datasette

Prüfe die Installation:

datasette --version

Installiere danach das Codespaces-Plugin:

datasette install datasette-codespaces

💡 Das Plugin verbessert interne Links in Codespaces. Ohne dieses Plugin kann es zu kleinen Stolpersteinen kommen.


🚀 Schritt 3: Datasette starten

Starte Datasette:

datasette data.db --create

Falls data.db noch nicht existiert, wird die Datei automatisch erstellt.

Datasette starten

Codespaces zeigt nun an, dass Port 8001 aktiv ist – klicke auf Open in Browser. Falls kein Button erscheint: nutze den Tab Ports im Terminal-Bereich.


📥 Schritt 4: Daten importieren

Datasette startet mit einer leeren sqlite-Datenbank – also fügen wir Daten hinzu.

Wir wollen folgende Daten in unsere sqlite-Datenbank laden: swissNAMES3D.

Die vorhandenen csv-Dateien wurden in Vorbereitung auf dieses Tutorial von Semikolon-separiert zu Komma-separiert geändert. Zudem wurden die Koordinaten in den Dateien vom schweizerisch-liechtensteinischen Georeferenzsystem (EPSG:2056) auf das globale Koordinatensystem (EPSG:4326) übersetzt, damit die Karte nachher auch funktioniert.

Beende die laufende Datasette-Instanz mit der leeren Datenbank, indem du die Tastenkombination Ctrl+C im laufenden Terminal betätigst.

Installiere sqlite-utils:

pipx install sqlite-utils

Prüfe:

sqlite-utils --version

Importiere die vorbereiteten swissNAMES3D-Liniendaten:

sqlite-utils insert data.db linien \
    swissNAMES3D_LIN.csv \
    --csv -d

Damit entsteht eine Tabelle linien mit allen Liniengeometrien: Brücken, Tunnel, Seilbahnen, Sportanlagen, Fliessgewässer und mehr.

See for yourself!

datasette data.db

Dann auf data (Datenbank) -> linien (Tabelle) klicken, um zur Tabelle zu gelangen.

image

🔌 Schritt 5: Plugins installieren

Stoppe Datasette bei Bedarf, falls die Instanz noch läuft, mit Ctrl+C.

Installiere zwei benötigte Plugins:

1. Schema-Editor (zum Spalten umbenennen)

datasette install datasette-edit-schema

2. Cluster-Map (für Kartenansicht)

datasette install datasette-cluster-map

🗺️ Schritt 6: Daten auf einer Karte anzeigen

Starte Datasette erneut:

datasette data.db

Öffne die Tabelle linien.

Die Spalten heissen aktuell E (Längengrad) und N (Breitengrad). Für die Kartenansicht benötigt Datasette jedoch longitude und latitude.

Benenne die Spalten um:

  • Elongitude
  • Nlatitude

Vorgehen: Zahnrad anklicken → Edit table schema → speichern.

Schema aendern

💡 Falls Datasette lokal ausgeführt wird, kann es notwendig sein, die Applikation als root zu starten:

datasette data.db --root

Sobald die Spalten umbenannt sind, sollte die Karte der Schweiz mit allen Linien erscheinen.


🎉 Schritt 7: Explore!

Probiere die Facetten aus. Was passiert, wenn du unter Suggested facets auf OBJEKTART klickst?

💡 Was sind Facetten? Einfach gesagt, kann man auch von Filtern sprechen.

Wenn Zeit ist, kannst du auch die beiden anderen Tabellen importieren und sie punkte und polygone nennen – ganz analog zu Schritt 4. Du findest die Namen der entsprechenden csv-Dateien in der Seitenleiste am linken Bildrand.

Und falls du mehr brauchst: Entdecke weitere Plugins hier: https://datasette.io/plugins


Schritt 8: Schlussbemerkungen

Warum werden nicht alle Datenpunkte in der Karte gezeigt? Datasette hat als Standardeinstellung eine Zeilenbeschränkung auf 101 Zeilen. Diese kann bei der SQL-Query (View and Edit SQL) angepasst werden.

image

Wie kann die Arbeit in Codespaces gespeichert werden? Falls das Repository am Anfang geforked wurde, kann am linken Seitenrand auf das Icon für die Quellcodeverwaltung geklickt werden. Danach können die Änderungen gestaged, commited und gepushed werden.

image

Können auch eigene csv-Dateien in diesen Codespace geladen und betrachtet werden? Ja, indem lokal gespeicherte csv-Dateien in die Seitenleiste am linken Bildrand gezogen wird. Diese können dann analog zu den vorbereiteten Dateien in Datasette geladen werden. Es ist wichtig, dass die csv-Dateien Komma-separiert sind. Für Kartendaten braucht es Koordinaten im globalen System mit den Spaltennamen longitude und latitude. Hierfür kann das vorbereitete Skript, pre-processing.py genutzt werden. Die Argumente, die man dem Skript mitgeben soll, kann man mit folgendem Befehl aufrufen:

pip install -r requirements.txt
python pre-processing.py --help

Um die Files swissNAMES3D_*.csv zu erhalten, die gerade hier liegen wurden folgende Befehle ausgeführt:

python pre-processing.py swissNAMES3D_LIN.csv --sep ";" --coord-cols "E" "N" --epsg-in 2056
python pre-processing.py swissNAMES3D_PKT.csv --sep ";" --coord-cols "E" "N" --epsg-in 2056
python pre-processing.py swissNAMES3D_PLY.csv --sep ";" --coord-cols "E" "N" --epsg-in 2056

Wo finde ich die Dokumentation von Datasette? docs.datasette.io


Dieses Tutorial basiert auf folgendem Tutorial: Using Datasette in GitHub Codespaces.

About

repository um Datasette in GitHub Codespaces laufen zu lassen. Für die Swiss Community Day on Data.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%