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).
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.
Klicke nun auf Code → Codespaces → Create codespace on main.
Nach wenigen Momenten erscheint die Codespaces-Umgebung. Wir arbeiten ausschliesslich im Terminal-Bereich.
Installiere zuerst Datasette:
pipx install datasettePrüfe die Installation:
datasette --versionInstalliere danach das Codespaces-Plugin:
datasette install datasette-codespaces💡 Das Plugin verbessert interne Links in Codespaces. Ohne dieses Plugin kann es zu kleinen Stolpersteinen kommen.
Starte Datasette:
datasette data.db --createFalls data.db noch nicht existiert, wird die Datei automatisch erstellt.
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.
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-utilsPrüfe:
sqlite-utils --versionImportiere die vorbereiteten swissNAMES3D-Liniendaten:
sqlite-utils insert data.db linien \
swissNAMES3D_LIN.csv \
--csv -dDamit entsteht eine Tabelle linien mit allen Liniengeometrien:
Brücken, Tunnel, Seilbahnen, Sportanlagen, Fliessgewässer und mehr.
See for yourself!
datasette data.dbDann auf data (Datenbank) -> linien (Tabelle) klicken, um zur Tabelle zu gelangen.
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-schema2. Cluster-Map (für Kartenansicht)
datasette install datasette-cluster-mapStarte 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:
E→longitudeN→latitude
Vorgehen: Zahnrad anklicken → Edit table schema → speichern.
💡 Falls Datasette lokal ausgeführt wird, kann es notwendig sein, die Applikation als root zu starten:
datasette data.db --rootSobald die Spalten umbenannt sind, sollte die Karte der Schweiz mit allen Linien erscheinen.
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
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.
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.
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 --helpUm 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 2056Wo finde ich die Dokumentation von Datasette? docs.datasette.io
Dieses Tutorial basiert auf folgendem Tutorial: Using Datasette in GitHub Codespaces.



