Zum Inhalt springen

GDAL-Integration

Die Spatial-Erweiterung integriert die Übersetzungsbibliothek GDAL, um räumliche Daten aus einer Vielzahl georäumlicher Vektordateiformate zu lesen und zu schreiben. Siehe die Dokumentation zur Tabellenfunktion st_read für die praktische Verwendung.

Damit Benutzer keine zusätzlichen Abhängigkeiten auf ihrem System einrichten und installieren müssen, bündelt die Spatial-Erweiterung eine eigene Kopie der GDAL-Bibliothek. Das bedeutet auch, dass die GDAL-Version von Spatial nicht die neueste verfügbare Version sein muss und nicht alle Dateiformate unterstützen muss, die eine systemweite GDAL-Installation sonst bereitstellen würde. Im Abschnitt zur Tabellenfunktion st_drivers können Sie prüfen, welche GDAL-Treiber derzeit verfügbar sind.

GDAL-basierte COPY-Funktion

Die Spatial-Erweiterung ermöglicht nicht nur den Import georäumlicher Dateiformate (über die Funktion ST_Read), sondern auch den Export von DuckDB-Tabellen in verschiedene georäumliche Vektorformate über eine GDAL-basierte COPY-Funktion.

Um beispielsweise eine Tabelle in eine GeoJSON-Datei mit generierten Bounding Boxen zu exportieren, können Sie die folgende Abfrage verwenden:

COPYtableTO 'some/file/path/filename.geojson'
WITH (FORMAT gdal, DRIVER 'GeoJSON', LAYER_CREATION_OPTIONS ('WRITE_BBOX=YES', 'DESCRIPTION=a sample geojson'), SRS 'EPSG:4326');

Verfügbare Optionen:

  • FORMAT: ist die einzige erforderliche Option und muss auf GDAL gesetzt werden, um die GDAL-basierte Copy-Funktion zu verwenden.
  • DRIVER: ist der GDAL-Treiber für den Export. Verwenden Sie ST_Drivers(), um die Namen aller verfügbaren Treiber aufzulisten.
  • GEOMETRY_TYPE : der Geometrietyp für den erzeugten Layer, der an den GDAL-Treiber übergeben wird. Einer von POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON und GEOMETRYCOLLECTION.
  • LAYER_NAME : weist dem neuen Layer einen alternativen Namen zu
  • LAYER_CREATION_OPTIONS: Liste von Layer-Erstellungsoptionen, die an den GDAL-Treiber übergeben werden. Verwenden Sie Klammern, um eine Liste von Optionen zu übergeben. Siehe die GDAL-Dokumentation für den verwendeten Treiber für eine Liste verfügbarer Optionen.
  • DATASET_CREATION_OPTIONS: Liste von Dataset-Erstellungsoptionen, die an den GDAL-Treiber übergeben werden. Verwenden Sie Klammern, um eine Liste von Optionen zu übergeben. Siehe die GDAL-Dokumentation für den verwendeten Treiber für eine Liste verfügbarer Optionen.
  • SRS oder CRS: Setzt ein räumliches Referenzsystem als Metadaten für den Export. Das kann ein WKT-String, ein EPSG-Code oder ein proj-String sein – im Wesentlichen alles, was Sie normalerweise an GDAL übergeben können. Beachten Sie, dass dabei keine Reprojektion der Eingabegeometrie durchgeführt wird; es werden lediglich die Metadaten gesetzt, sofern der Zieldreiber das unterstützt.

Einschränkungen

Beachten Sie, dass die GDAL-Integration nur vektorbasierte Treiber unterstützt. Das Lesen und Schreiben von Rasterformaten wird nicht unterstützt.