Skip to content

Commit 36e38ed

Browse files
committed
📝 Add file formats for geodata
1 parent 07d9800 commit 36e38ed

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

docs/data-processing/geodata.rst

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,117 @@
55
Geodaten
66
========
77

8+
Dateiformate
9+
------------
10+
11+
.. _pmtiles:
12+
13+
PMTiles
14+
~~~~~~~
15+
16+
`PMTiles <https://docs.protomaps.com>`_ ist ein allgemeines Format für
17+
Kacheldaten, die durch Z/X/Y-Koordinaten adressiert werden. Dabei kann es sich
18+
um kartografische Vektorkacheln, :ref:`Fernerkundungsdaten <remote-sensing>`,
19+
JPEG-Bilder oder ähnliches handeln.
20+
21+
Zum Lesen werden `HTTP Range Requests
22+
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests>`_ verwendet,
23+
um nur die relevanten Kacheln oder Metadaten innerhalb eines PMTiles-Archivs
24+
abzurufen. Die Anordnung der Kacheln und Verzeichnisse ist so konzipiert, dass
25+
die Anzahl der Anfragen beim Verschieben und Zoomen minimiert wird.
26+
27+
PMTiles ist jedoch ein schreibgeschütztes Format: Es ist nicht möglich, einen
28+
Teil des Archivs zu aktualisieren, ohne die gesamte Datei neu zu schreiben. Wenn
29+
ihr transaktionale Aktualisierungen benötigt, solltet ihr eine Datenbank wie
30+
SQLite oder :doc:`postgresql/postgis/index` und `ST_asMVT
31+
<https://postgis.net/docs/ST_AsMVT.html>`_ verwenden.
32+
33+
.. seealso::
34+
* `GitHub Repository <https://github.com/protomaps/PMTiles>`_
35+
* `PMTiles Version 3 Specification
36+
<https://github.com/protomaps/PMTiles/blob/main/spec/v3/spec.md>`_
37+
38+
Mapbox Vector Tiles (MVT)
39+
~~~~~~~~~~~~~~~~~~~~~~~~~
40+
41+
Das `Mapbox Vector Tiles
42+
<https://docs.mapbox.com/data/tilesets/guides/vector-tiles-standards/>`_-Dateiformat
43+
speichert jede Kachel in einem Verzeichnisbaum wie :file:`/Z/X/Y.mvt`. Dies
44+
funktioniert gut für kleine Kachelsätze, aber das Aktualisieren einer kompletten
45+
globalen Pyramide mit ~300 Millionen Kacheln ist sehr ineffizient.
46+
:ref:`pmtiles` ist dagegen eine einzige Datei, in deren Kacheln de-dupliziert
47+
sind, wodurch die Größe globaler Vektor-Basiskarten um ~70% reduziert werden.
48+
49+
Zum Schreiben muss die :ref:`gdal`-Bibliothek mit `SQLite
50+
<https://www.sqlite.org>`_ und `GEOS <https://libgeos.org>`_-Unterstützung
51+
installiert sein. Dabei werden die Mapbox Vector Tiles in SQLite wie
52+
:ref:`mbtiles` gespeichert und können mit dem MBTiles-Treiber verarbeitet
53+
werden.
54+
55+
.. seealso::
56+
* `Mapbox Vector Tile specification
57+
<https://github.com/mapbox/vector-tile-spec>`_
58+
* `MVT: Mapbox Vector Tiles
59+
<https://gdal.org/en/stable/drivers/vector/mvt.html>`_
60+
61+
.. _mbtiles:
62+
63+
MBTiles
64+
~~~~~~~
65+
66+
`MBTiles <https://docs.mapbox.com/help/glossary/mbtiles/>`_ ist ein
67+
Containerformat für Kacheldaten auf der Grundlage von SQLite. Es ist für den
68+
lokalen Zugriff optimiert, nicht wie :ref:`pmtiles` auf den Zugriff via HTTP.
69+
70+
.. seealso::
71+
* `MBTiles specification <https://github.com/mapbox/mbtiles-spec>`_
72+
873
.. _geodata-repositories:
974

75+
Cloud Optimized GeoTIFF (COG)
76+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77+
78+
`Cloud Optimized GeoTIFF <https://cogeo.org>`_ ist eine Raster-TIFF-Datei, die
79+
ähnlich wie :ref:`pmtiles` für das Lesen aus einem Cloud-Speicher optimiert ist.
80+
:ref:`pmtiles` kann jedoch auch andere Kacheldaten, :abbr:`z.B. (zum Beispiel)`
81+
Vektor-Kacheln ausliefern. COG ist jedoch mit den meisten GIS-Programmen, die
82+
mit GeoTIFF arbeiten, abwärtskompatibel.
83+
84+
.. seealso::
85+
* `OGC Cloud Optimized GeoTIFF Standard
86+
<https://docs.ogc.org/is/21-026/21-026.html>`_
87+
88+
.. _geoparquet:
89+
90+
GeoParquet
91+
~~~~~~~~~~
92+
93+
`Parquet <https://parquet.apache.org>`_ ist ein quelloffenes,
94+
spaltenorientiertes Datendateiformat, das für die effiziente Speicherung und
95+
Abfrage von Daten entwickelt wurde. Es bietet effiziente
96+
Datenkomprimierungs- und -kodierungsverfahren mit optimierter Verarbeitung
97+
großer, komplexer Daten. `GeoParquet <https://geoparquet.org>`_ erweitert
98+
Parquet um interoperable Geodatentypen (Punkt, Linie, Polygon).
99+
100+
* :doc:`pyviz:matplotlib/geopandas/index` unterstützt das `Lesen
101+
<https://geopandas.org/en/stable/docs/reference/api/geopandas.read_parquet.html>`_
102+
und `Schreiben
103+
<https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.to_parquet.html>`_
104+
von GeoParquet.
105+
* `GeoParquet Downloader Plugin
106+
<https://plugins.qgis.org/plugins/qgis_plugin_gpq_downloader/>`_ für `QGIS
107+
<https://qgis.org>`_ ermöglicht Streaming-Downloads von großen
108+
GeoParquet-Datensätzen.
109+
* `DuckDB <https://duckdb.org>`_ erlaubt mit der `Spatial Extension
110+
<https://duckdb.org/docs/stable/extensions/spatial/overview.html>`_ das Lesen
111+
und Schreiben von GeoParquet-Dateien.
112+
113+
.. seealso::
114+
* `GeoParquet specification <https://github.com/opengeospatial/geoparquet>`_
115+
* `GeoParquet Software <https://geoparquet.org/#implementations>`_
116+
* `validate_geoparquet.py
117+
<https://github.com/OSGeo/gdal/blob/master/swig/python/gdal-utils/osgeo_utils/samples/validate_geoparquet.py>`_
118+
10119
Daten-Repositorien
11120
------------------
12121

@@ -31,6 +140,8 @@ Software
31140
Lesen und Schreiben
32141
~~~~~~~~~~~~~~~~~~~
33142

143+
.. _gdal:
144+
34145
`Geospatial Data Abstraction Library (GDAL) <https://gdal.org/en/latest/>`_
35146
bietet eine einfache, aber leistungsfähige API zum Lesen und Schreiben von
36147
Hunderten von Datenformaten.
@@ -138,6 +249,8 @@ Lesen und Schreiben
138249
.. seealso::
139250
:ref:`geo-wrappers`
140251

252+
.. _remote-sensing:
253+
141254
Fernerkundung
142255
~~~~~~~~~~~~~
143256

0 commit comments

Comments
 (0)