

GDAL/OGR クイックスタート¶
このクイックスタートは、GDAL(ラスタデータ)とOGR(ベクタデータ)の2つの部分に分かれています。
このクイックスタートでは、次の方法について説明します:
- GDAL
gdalinfoを使用して画像データを表示
gdal_translateでフォーマット変換
gdalwarpを使用してデータを再投影
データをgdal_warpまたはgdal_merge.pyでモザイク化
シェープファイルをgdaltindex付きのラスタータイルインデックスとして作成
- OGR
ogrinfoでデータに関する情報を取得する
ogr2ogrを使用してデータを他の形式に変換
このクイックスタートに必要なのはターミナルだけです。結果を視覚化する場合は、OSGeoLiveのデスクトップGISソフトウェアアプリケーションの1つである QGIS を使用できます。
目次
GDALについて知る¶
デモデータは /usr/local/share/data
にあります。このクイックスタートの Natural Earthデータ を見てみましょう。データのコピーを操作します。したがって、最初のステップは、データをホームディレクトリにコピーすることです。
cd /home/user
cp -R /usr/local/share/data/natural_earth2/ ./gdal_natural_earth
次のNaturalEarth Rasterファイルと.tfw World-fileがあることを確認してください::
cd /home/user/gdal_natural_earth
ls HYP_50M_SR_W.*
ちなみに
QGISのようなデスクトップGISを使用してファイルを開き、確認します。
gdalinfoでラスタデータの情報を取得¶
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
- 注意:
ドライバーは "GTiff/GeoTIFF"
サイズは10800x5400です
バイト型の3バンドです。
座標
座標系なし
シンプルなフォーマットの翻訳¶
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
変換¶
変換はgdal_translateコマンドで行います。デフォルトの出力形式はGeoTIFFです。-of フラグは出力フォーマットの選択に使用され、-co フラグは作成オプションの指定に使用されます:
gdal_translate -of JPEG -co QUALITY=40 HYP_50M_SR_W.tif HYP_50M_SR_W.jpg
-ot スイッチを使用して、出力データ型を変更できます。
gdal_translate -ot Int16 HYP_50M_SR_W.tif HYP_50M_SR_W_Int16.tif
gdalinfo を使用してデータ型を検証します。
再スケーリング¶
-outsize スイッチを使用して、出力ファイルのサイズを設定できます。
gdal_translate -outsize 50% 50% HYP_50M_SR_W.tif HYP_50M_SR_W_small.tif
gdalinfoを使用してサイズを検証します。
-scale スイッチは、データの再スケールに使用できます。入力および出力範囲の明示的な制御も可能です。gdalinfo -mm スイッチを使用して、ピクセルの最小値/最大値を表示できます。
ピクセル/ラインの位置に基づいてコピーを作成する -srcwin を使用して、イメージを2つに分割してみましょう(xoff yoff xsize ysize)。-projwin を使用して、地理参照座標(ulx uly lrx lry)でコーナーを定義することもできます。
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
gdaltindex付きラスタータイルインデックス¶
シェープファイルをラスタタイルインデックスとして作成できます。すべてのイメージに対して、ポリゴンの範囲とファイルへのパスの境界を持つポリゴンが生成されます。
gdaltindex index_natural_earth.shp *st.tif
QGISとogrinfoを使用して、出力シェープファイルを見てみましょう(ogrinfoについては、このチュートリアルの後半で詳しく説明します)
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))
再投影¶
For this process we assume that HYP_50M_SR_W.tif has been properly created with bounds.
gdalwarpコマンドを使用して、イメージを再投影できます。ここでは、WGS84の地理的イメージをメルカトル図法に再投影します。
gdalwarp -t_srs '+proj=merc +datum=WGS84' HYP_50M_SR_W_4326.tif mercator.tif
gdalinfoを使用して変更を確認し、イメージを確認します。
ここでは、オルソ投影に再投影します。
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.
モザイク¶
gdal_merge.pyは、シンプルなモザイク作業に使用できるPythonスクリプトです。east.tifとwest.tifをモザイク化して単一のファイルにします。
gdal_merge.py east.tif west.tif -o merged.tif
gdalwarpを使用して実行することもできます。gdalwarpはgdal_mergeよりもさまざまな利点がありますが、多くのファイルのマージに時間がかかることがあります。
gdalwarp east.tif west.tif warpmerged.tif
OGRについて知る¶
cd /home/user/gdal_natural_earth/
ちなみに
QGISのようなデスクトップGISを使用してシェープファイルを開き、確認します。
ogrinfoでベクタデータに関する情報を取得する¶
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)
ogrinfoに -so を付けて、データの概要を表示します。
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)
パラメーターを指定せずにogrinfoを実行すると、データの概要と、その後のすべてのデータセットのセクションが表示されます。
ogrinfo -ro ne_10m_admin_0_countries.shp ne_10m_admin_0_countries
ogrinfoの結果をgrepに転送して、COUNTRY属性だけをフィルタリングして取得できます。
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.
データを他の形式に変換できます。対応フォーマットの一覧を --formats で取得します。
ogr2ogrを使用してファイルフォーマット間でデータを変換¶
ogr2ogrを使用して、ファイルフォーマット間で簡単なフィーチャデータを変換できます。--formats を使用して、読み書き可能な情報を持つ対応フォーマットの一覧を取得できます。
国を GML に変換します。
ogr2ogr --formats
ogr2ogr -f GML countries.xml ne_10m_admin_0_countries.shp
試してみること¶
次に、試すべき追加の課題をいくつか示します。
データをモザイク化するには、gdalwarpまたはgdal_merge.pyを試してください
gdaladdoで内部概要を作成
QGISはGDAL/OGRも使用して、多くの形式をサポートしています。また、ラスタデータを処理するためのGdalToolsプラグインも提供しています。このプラグインはgdal-toolsをQGISに統合します。
ogr2ogrを使用して、ベクタデータをPostGISなどの他の形式にインポート/エクスポートしてみてください。ogr2ogrが提供するオプションを見てください。
QGISプラグインOGR-Layer-Konverterを試してみてください。
次のステップは何?¶
これは、GDALとOGRを使用するための最初のステップにすぎません。他にも多くの機能を試すことができます。
GDALプロジェクトホーム
GDAL ラスターのチュートリアル
GDALワークショップ