gdal¶
gdal ist eine Bibliothek zur Bearbeitung und Umwandlung von räumlichen Raster- und Vektordaten. Daneben bietet es auch zahlreiche Kommandozeilenprogramme.
gdal ist Open Source und für Linux und Windows verfügbar. Zur Installation sei auf die oben verlinkte Website verwiesen.
Beispiele¶
Datenumwandlung¶
Das Digitale Geländemodell wird im Format GeoTIFF zur Verfügung gestellt. Sie wollen die Daten jedoch im Format ASCII Grid:
$ gdal_translate -of AAIGrid 691_5327.tif 691_5327.asc
Der Schalter -of
gibt hierbei das Ausgabeformat an. gdal_translate --formats
listet die verfügbaren Quell- und Zielformate auf,
gdal_translate -h
liefert eine Kurzbeschreibung der Parameter und die Seite gdal_translate zeigt eine
ausführliche Anleitung zu diesem Kommandozeilentool.
Datenaggregation¶
Sie haben Sich mittels aria2c und dem entsprechenden MetaLink-File die DOP-Kacheln ihrer Gemeinde heruntergeladen. Jetzt haben Sie ein Verzeichnis voll mit 1km²-Kacheln, Sie hätten aber gerne nur ein Bild.
Abhilfe schafft hier gdalwarp
.
$ gdalwarp -dstalpha -co "TILED=YES" -co "COMPRESS=LZW" 32*.tif taufkirchen.tif
-dstalpha
fügt einen Alpha-Kanal für die Transparenz hinzu. Dadurch wird an den Stellen ohne Informationen der Hintergrund sichtbar.
-co "TILED=YES"
sorgt für eine interne Kachelung des Bildes. Dadurch werden beim Hineinzoomen in das Bild nur die Teile gelesen, die für die Darstellung benötigt werden.
-co "COMPRESS=LZW"
sorgt dafür, dass die Rasterdaten im GeoTIFF komprimiert werden.
32*.tif
Die Dateinamen der Kacheln beginnen in diesem Falle alle mit 32.
gdalwarp
liest alle Dateien ein, die auf dieses Pattern passen.taufkirchen.tif
Der Name der Zieldatei, die durch
gdalwarp
erzeugt wird.
Wenn die durch gdalwarp
erzeugte Datei jetzt beispielsweise in QGIS geladen wird, dauert die Darstellung etwas, weil zunächst das ganze Bild geladen und dann
für die Darstellung verkleinert werden muss. Abhilfe schafft hier gdaladdo
, mit dem Overviews (Übersichten) in das Bild gerechnet werden können. Die Datei
wird dadurch zwar größer, aber die deutlich kürzeren Ladezeiten entschädigen dafür ausreichend.
Erzeugen der Übersichten
Die Zahlen sind Bruchteile der Ursprungsauflösung, hier also 1/2, 1/4, ...
$ gdaladdo taufkirchen.tif 2 4 8 16
Das Resultat mit gdalinfo betrachten:
$ gdalinfo taufkirchen.tif
Driver: GTiff/GeoTIFF
Files: taufkirchen.tif
Size is 20000, 17500
Coordinate System is:
PROJCRS["ETRS89 / UTM zone 32N",
BASEGEOGCRS["ETRS89",
DATUM["European Terrestrial Reference System 1989",
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4258]],
CONVERSION["UTM zone 32N",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",0,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",9,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",0.9996,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",500000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",0,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["(E)",east,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["(N)",north,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["unknown"],
AREA["Europe - 6°E to 12°E and ETRS89 by country"],
BBOX[38.76,6,83.92,12]],
ID["EPSG",25832]]
Data axis to CRS axis mapping: 1,2
Origin = (692000.000000000000000,5326000.000000000000000)
Pixel Size = (0.400000000000000,-0.400000000000000)
Metadata:
AREA_OR_POINT=Area
BILDFLUG_DATUM=*
BILDFLUG_NUMMER=*
BILDFLUG_UNTERNUMMER=0
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 692000.000, 5326000.000) ( 11d34'36.77"E, 48d 3'30.12"N)
Lower Left ( 692000.000, 5319000.000) ( 11d34'25.48"E, 47d59'43.62"N)
Upper Right ( 700000.000, 5326000.000) ( 11d41' 2.87"E, 48d 3'21.27"N)
Lower Right ( 700000.000, 5319000.000) ( 11d40'51.11"E, 47d59'34.79"N)
Center ( 696000.000, 5322500.000) ( 11d37'44.06"E, 48d 1'32.50"N)
Band 1 Block=256x256 Type=Byte, ColorInterp=Red
Overviews: 10000x8750, 5000x4375, 2500x2188, 1250x1094
Mask Flags: PER_DATASET ALPHA
Overviews of mask band: 10000x8750, 5000x4375, 2500x2188, 1250x1094
Band 2 Block=256x256 Type=Byte, ColorInterp=Green
Overviews: 10000x8750, 5000x4375, 2500x2188, 1250x1094
Mask Flags: PER_DATASET ALPHA
Overviews of mask band: 10000x8750, 5000x4375, 2500x2188, 1250x1094
Band 3 Block=256x256 Type=Byte, ColorInterp=Blue
Overviews: 10000x8750, 5000x4375, 2500x2188, 1250x1094
Mask Flags: PER_DATASET ALPHA
Overviews of mask band: 10000x8750, 5000x4375, 2500x2188, 1250x1094
Band 4 Block=256x256 Type=Byte, ColorInterp=Alpha
Overviews: 10000x8750, 5000x4375, 2500x2188, 1250x1094
gdalinfo
liefert umfangreiche Informationen über einen Datensatz. Neben den Angaben zur Projektion sind hier vor allem
die Kanäle (vorhandensein eines Alpha-Channels), deren Aufteilung in Blöcke (durch TILED=YES
) und die Overviews (durch gdaladdo
) interessant.