gdalのインストールがうまく行かずに悩んでいるあなたに朗報です。
gdalのdockerコンテナを使うとgdalをインストールせずに使用することが可能です。
使いたいバージョンのGDALを指定することも簡単です。
準備
dockerがインストールされていることが前提になります。インストールされていない場合はまずdockerをインストールしてください。
GDALのコンテナ取得
docker pull osgeo/gdal
動作確認
docker run --rm osgeo/gdal gdalinfo --version
出力結果の確認
GDAL 3.6.0dev-a813c324b468423211f83ecb814dc8e5ddb20fc4, released 2022/06/02
最新バージョン以外で動かしたい場合
特定のバージョンで動かしたい場合はタグを指定することで特定のバージョンで動かすことが可能です。
docker pull osgeo/gdal:ubuntu-full-3.2.1
インストールできるバージョンは「https://hub.docker.com/r/osgeo/gdal/tags」で確認できます。
実行サンプル
例1) EPSGコードを使った投影変換
-vを使ってフォルダをマウントして、GDALのコンテナ内でgdalwarpコマンドを使用し、投影変換を行います。
docker run --rm -v /tmp:/mnt osgeo/gdal gdalwarp -co COMPRESS=LZW -co PREDICTOR=2 -co BIGTIFF=YES -t_srs 32654 /mnt/InputGeotiff.tif /mnt/OutputGeotiff.tif
例2) 画像をベクタ変換
.py系のコマンドもそのまま使用することができます。
docker run --rm -v /tmp:/mnt osgeo/gdal gdal_polygonize.py /mnt/Geotiff.tif -f "GeoJSON" /mnt/Geojson.json
例3) PythonでGDALを使う
PythonでGDALを使うことも可能です。まず、簡単なPythonプログラム「test.py」を準備します。
/tmp/test.py
from osgeo import gdal
image=gdal.Open('/mnt/Geotiff.tif')
print(image.RasterXSize)
下記のコマンドで実行します。
docker run --rm -v /tmp:/mnt osgeo/gdal python /mnt/test.py