GDAL/OGR Quickstart¶
Diese Einführung gliedert sich in zwei Teile: GDAL (Raster-Daten) und OGR (Vektordaten).
Dieser Quickstart beschreibt, wie Sie:
- GDAL
Untersuchen von Rasterdaten mit gdalinfo
Formatumwandlung mit gdal_translate
Transformieren von Daten mit gdalwarp
Zusammenfassen von Daten mit gdal_warp oder gdal_merge.py
Erzeugen eines Bildkatalogs in Form einer Shapedatei mit gdaltindex
- OGR
Untersuchen von Vektordaten mit ogrinfo
Verwendung von ogr2ogr zur Umwandlung von Vektordaten in andere Formate
Das einzige, was Sie für diesen Schnellstart benötigen, ist ein Terminal. Wenn Sie die Ergebnisse visualisieren möchten, können Sie eine der Desktop-GIS-Anwendungen auf OSGeoLive verwenden wie beispielsweise QGIS.
Inhalt
Lernen Sie GDAL kennen¶
Sie finden die Demodaten unter /usr/local/share/data. Für die folgenden Übungen werden die Natural Earth Daten verwendet. Wir werden mit einer Kopie der Daten arbeiten. Daher ist der erste Schritte, die Daten in Ihr home-Verzeichnis zu kopieren.
cd /home/user
cp -R /usr/local/share/data/natural_earth2/ ./gdal_natural_earth
Unter dem folgenden Pfad finden Sie eine Natural Earth Rasterdatei und die dazugehörige tfw-Datei:
cd /home/user/gdal_natural_earth
ls HYP_50M_SR_W.*
Tipp
Schauen Sie sich die Datei mit einem Desktop GIS beispielsweise QGIS an.
gdalinfo - zum Untersuchen von Rasterdaten¶
gdalinfo HYP_50M_SR_W.tif
Driver: GTiff/GeoTIFF
Files: HYP_50M_SR_W.tif
Size is 10800, 5400
Coordinate System is:
GEOGCRS["WGS 84",
ENSEMBLE["World Geodetic System 1984 ensemble",
...
Origin = (-179.999999999999972,90.000000000000000)
Pixel Size = (0.033333333333330,-0.033333333333330)
Metadata:
TIFFTAG_SOFTWARE=Adobe Photoshop CS5 Macintosh
TIFFTAG_DATETIME=2012:07:16 09:16:14
TIFFTAG_XRESOLUTION=342.85699
TIFFTAG_YRESOLUTION=342.85699
TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
AREA_OR_POINT=Area
Image Structure Metadata:
SOURCE_COLOR_SPACE=YCbCr
COMPRESSION=YCbCr JPEG
INTERLEAVE=PIXEL
JPEG_QUALITY=90
JPEGTABLESMODE=3
Corner Coordinates:
Upper Left (-180.0000000, 90.0000000) (180d 0' 0.00"W, 90d 0' 0.00"N)
Lower Left (-180.0000000, -90.0000000) (180d 0' 0.00"W, 90d 0' 0.00"S)
Upper Right ( 180.0000000, 90.0000000) (180d 0' 0.00"E, 90d 0' 0.00"N)
Lower Right ( 180.0000000, -90.0000000) (180d 0' 0.00"E, 90d 0' 0.00"S)
Center ( -0.0000000, 0.0000000) ( 0d 0' 0.00"W, 0d 0' 0.00"N)
Band 1 Block=256x256 Type=Byte, ColorInterp=Red
Band 2 Block=256x256 Type=Byte, ColorInterp=Green
Band 3 Block=256x256 Type=Byte, ColorInterp=Blue
- Hinweis:
Treiber (Driver) : „GTiff/GeoTIFF“
Größe (Size) ist 10800x5400
3 Bands (1-3) vom Typ Byte.
Ausgabe der Koordinaten
es liegt keine Angabe zum Koordinatenreferenzsystem vor
gdal_translate zur einfachen Formatumwandlung¶
First get to know your drivers. The –formats command line switch of gdal_translate can be used to see a list of available format drivers.
- Each format reports if it supports the following features:
read only (ro)
read/write (rw)
read/write/update (rw+)
supports virtual file systems (v)
supports subdatasets (s)
gdal_translate --formats
The –format command line switch can be used to query details about a particular driver, including creation options, and permitted data types.
gdalinfo --format jpeg
gdal_translate --format png
Formatumwandlung¶
Formatumwandlungen erfolgen mit gdal_translate. Das Standardausgabeformat ist GeoTIFF. Über die Angabe -of kann ein Ausgabeformat angegeben werden. Über -co können weitere Optionen für die Erzeugung gesetzt werden:
gdal_translate -of JPEG -co QUALITY=40 HYP_50M_SR_W.tif HYP_50M_SR_W.jpg
Der Parameter -ot kann zur Veränderung des Ausgabedatentyps verwendet werden.
gdal_translate -ot Int16 HYP_50M_SR_W.tif HYP_50M_SR_W_Int16.tif
Verwenden Sie gdalinfo zur Prüfung des Datentyps.
Größenanpassung¶
Der -outsize Parameter wird zur Steuerung der Größe der Ausgabedatei verwendet.
gdal_translate -outsize 50% 50% HYP_50M_SR_W.tif HYP_50M_SR_W_small.tif
Verwenden Sie gdalinfo zur Prüfung der Bildgröße.
Der Parameter -scale wird zur Skalierung verwendet. Eine explizite Kontrolle der Eingabe- und Ausgabegröße ist ebenfalls möglich. Über gdalinfo mit der Parameterübergabe -mm können die Pixel min/max-Werte ausgegeben werden.
Lassen Sie unser Bild in zwei Bilder über -srcwin aufsplitten, das eine Kopie auf Grundlage Pixel/line location (xoff yoff xsize ysize) erzeugt. Sie können auch -projwin verwenden und die Eckkoordinaten in Georeferenzierten Koordinaten (ulx uly lrx lry) angeben.
gdalinfo -mm HYP_50M_SR_W.tif
gdal_translate -srcwin 0 0 5400 5400 HYP_50M_SR_W.tif west.tif
gdal_translate -srcwin 5400 0 5400 5400 HYP_50M_SR_W.tif east.tif
Bildkatalog (tileindex) mit gdaltindex erzeugen¶
Sie können eine Shapedatei als Rasterbildkatalog erzeugen. Für jedes Bild wird ein Polygon mit dem Umring der Rasterdatei und dem Pfad zur Rasterdatei erzeugt.
gdaltindex index_natural_earth.shp *st.tif
Schauen Sie sich Ihre Ausgabe-Shapedatei mit QGIS und ogrinfo an (später werden Sie noch mehr über ogrinfo erfahren)
ogrinfo index_natural_earth.shp index_natural_earth
INFO: Open of `index_natural_earth.shp'
using driver `ESRI Shapefile' successful.
Layer name: index_natural_earth
Metadata:
DBF_DATE_LAST_UPDATE=2025-05-13
Geometry: Polygon
Feature Count: 2
Extent: (-180.000000, -90.000000) - (180.000000, 90.000000)
Layer SRS WKT:
GEOGCRS["WGS 84",
...
location: String (254.0)
OGRFeature(index_natural_earth):0
location (String) = west.tif
POLYGON ((-180 90.0,-0.000000000017963 90.0,-0.000000000017963 -89.999999999982,-180 -89.999999999982,-180 90.0))
OGRFeature(index_natural_earth):1
location (String) = east.tif
POLYGON ((-0.000000000017963 90.0,179.999999999964 90.0,179.999999999964 -89.999999999982,-0.000000000017963 -89.999999999982,-0.000000000017963 90.0))
Umprojektion¶
For this process we assume that HYP_50M_SR_W.tif has been properly created with bounds.
gdalwarp kann zur Umprojektion von Daten verwendet werden. Wir werden unser Bild nun von der Geographischen Projektion WGS84 in die Mercator Projektion umwandeln:
gdalwarp -t_srs '+proj=merc +datum=WGS84' HYP_50M_SR_W_4326.tif mercator.tif
Verwenden Sie gdalinfo, um sich die Veränderung anzuschauen. Schauen Sie sich das Bild auch mit QGIS an.
Nun projizieren wir in die Orthoprojektion.
gdalwarp -t_srs '+proj=ortho +datum=WGS84' HYP_50M_SR_W_4326.tif ortho.tif
Note how the poles are clipped? This is because the edges at the pole can’t be reprojected gdalwarp does not read all the data. We can force gdalwarp to read a bunch of surplus data around chunks as one way to resolve this.
Zusammenfassen von Daten¶
gdal_merge.py ist ein Python Skript, das für einfache Zusammenfassungen verwendet werden kann. Fassen Sie die Dateien east.tif und west.tif in eine Datei zusammen:
gdal_merge.py east.tif west.tif -o merged.tif
Diese Aufgabe kann auch mit gdalwarp gelöst werden. gdalwarp hat einige Vorteile gegenüber gdal_merge, kann aber langsam sein, wenn es darum geht, viele Dateien zusammen zu fassen:
gdalwarp east.tif west.tif warpmerged.tif
Lernen Sie OGR kennen¶
cd /home/user/gdal_natural_earth/
Tipp
Schauen Sie sich die Shapedatei mit einem Desktop GIS wie QGIS an.
Nutzen Sie ogrinfo zur Ausgabe von Informationen über Vektordaten¶
ogrinfo -ro /home/user/gdal_natural_earth
INFO: Open of `/home/user/gdal_natural_earth'
using driver `ESRI Shapefile' successful.
1: ne_10m_geography_regions_polys (Polygon)
2: ne_10m_populated_places (Point)
3: ne_10m_urban_areas (Polygon)
4: ne_10m_geography_marine_polys (Polygon)
5: ne_10m_admin_1_states_provinces_shp (Polygon)
6: ne_10m_admin_0_countries (Polygon)
7: ne_10m_ocean (Polygon)
8: ne_10m_rivers_lake_centerlines (Line String)
9: ne_10m_land (Polygon)
10: index_natural_earth (Polygon)
11: ne_10m_geography_regions_elevation_points (Point)
12: ne_10m_geography_regions_points (Point)
13: ne_10m_lakes (Polygon)
Lassen Sie sich eine Zusammenfassung zu Ihren Daten mit ogrinfo und -so ausgeben.
ogrinfo -ro -so ne_10m_admin_0_countries.shp ne_10m_admin_0_countries
INFO: Open of `ne_10m_admin_0_countries.shp'
using driver `ESRI Shapefile' successful.
Layer name: ne_10m_admin_0_countries
Metadata:
DBF_DATE_LAST_UPDATE=2012-11-05
Geometry: Polygon
Feature Count: 254
Extent: (-180.000000, -90.000000) - (180.000000, 83.634101)
Layer SRS WKT:
GEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
...
scalerank: Integer (4.0)
featurecla: String (30.0)
labelrank: Real (16.6)
sovereignt: String (254.0)
sov_a3: String (254.0)
adm0_dif: Real (16.6)
level: Real (16.6)
type: String (254.0)
admin: String (254.0)
adm0_a3: String (254.0)
geou_dif: Real (16.6)
geounit: String (254.0)
gu_a3: String (254.0)
su_dif: Real (16.6)
subunit: String (254.0)
su_a3: String (254.0)
brk_diff: Real (16.6)
name: String (254.0)
name_long: String (254.0)
brk_a3: String (254.0)
brk_name: String (254.0)
brk_group: String (254.0)
abbrev: String (254.0)
postal: String (254.0)
formal_en: String (254.0)
formal_fr: String (254.0)
note_adm0: String (254.0)
note_brk: String (254.0)
name_sort: String (254.0)
name_alt: String (254.0)
mapcolor7: Real (16.6)
mapcolor8: Real (16.6)
mapcolor9: Real (16.6)
mapcolor13: Real (16.6)
pop_est: Real (16.6)
gdp_md_est: Real (16.6)
pop_year: Real (16.6)
lastcensus: Real (16.6)
gdp_year: Real (16.6)
economy: String (254.0)
income_grp: String (254.0)
wikipedia: Real (16.6)
fips_10: String (254.0)
iso_a2: String (254.0)
iso_a3: String (254.0)
iso_n3: String (254.0)
un_a3: String (254.0)
wb_a2: String (254.0)
wb_a3: String (254.0)
woe_id: Real (16.6)
adm0_a3_is: String (254.0)
adm0_a3_us: String (254.0)
adm0_a3_un: Real (16.6)
adm0_a3_wb: Real (16.6)
continent: String (254.0)
region_un: String (254.0)
subregion: String (254.0)
region_wb: String (254.0)
name_len: Real (16.6)
long_len: Real (16.6)
abbrev_len: Real (16.6)
tiny: Real (16.6)
homepart: Real (16.6)
Wenn Sie ogrinfo ohne einen zusätzlichen Parameter aufrufen, erhalten Sie zuerst die Zusammenfassung der Daten gefolgt von einer Sektion für jeden einzelnen Datensatzes.
ogrinfo -ro ne_10m_admin_0_countries.shp ne_10m_admin_0_countries
Sie können die Ergebnisse von ogrinfo an grep weitergeben, um die Daten zu filtern und so beispielsweise nur das Attribut COUNTRY auszugeben.
ogrinfo ne_10m_admin_0_countries.shp ne_10m_admin_0_countries | grep 'admin '
admin (String) = Aruba
admin (String) = Afghanistan
admin (String) = Angola
admin (String) = Anguilla
admin (String) = Albania
admin (String) = Aland
admin (String) = Andorra
etc.
Sie können Ihre Daten in andere Formate konvertieren. Über –formats erhalten Sie die Liste der unterstützten Formate.
Nutzen Sie ogr2ogr um Vektordaten in verschiedene Formate zu konvertieren¶
Sie können ogr2ogr nutzen, um Daten aus einem Format in ein anderes Format zu konvertieren. Eine Liste der unterstützen Formate mit der Information, ob auf diese nur lesend bzw. auch schreibend zugegriffen werden kann, wenn die Option –formats ohne weitere Paramater verwendet wird.
Konvertieren Sie die Länder in das GML-Format.
ogr2ogr --formats
ogr2ogr -f GML countries.xml ne_10m_admin_0_countries.shp
Was Sie noch ausprobieren können¶
Hier sind ein paar weitere Aufgaben, die Sie lösen können:
Verwenden Sie gdalwarp oder gdal_merge.py, um Ihr Daten zu kacheln
Verwenden Sie gdaladdo, um interne Übersichten aufzubauen
QGIS verwendet GDAL/OGR als Datenschnittstelle für die unterstützten Formate. Es steht auch ein GdalTools Plugin für die Verarbeitung von Rasterdaten zur Verfügung. Dieses ist auch in QGIS integriert.
Verwenden Sie ogr2ogr für den Import/Export von Vektordaten in andere Formate, wie z.B. PostGIS. Schauen Sie sich auch die anderen Optionen von ogr2ogr an.
Testen Sie das QGIS Plugin OGR-Layer-Konverter.
Was kommt als Nächstes?¶
Dies war lediglich der erste Einstieg in GDAL und OGR. Es gibt sehr viele weitere Funktionalitäten zu entdecken.
GDAL Projektseite
GDAL Tutorial
GDAL Workshop


