gdalのインストールがうまく行かずに悩んでいるあなたに朗報です。
gdalのdockerコンテナを使うとgdalをインストールせずに使用することが可能です。
使いたいバージョンのGDALを指定することも簡単です。
準備
dockerがインストールされていることが前提になります。インストールされていない場合はまずdockerをインストールしてください。
GDALのコンテナ取得
docker pull ghcr.io/osgeo/gdal:ubuntu-full-latest
動作確認
docker run --rm ghcr.io/osgeo/gdal:ubuntu-full-latest gdalinfo --version
出力結果の確認
GDAL 3.11.0dev-f1386937cde9e540784909294fdd45cda3ee65d2, released 2025/01/15
最新バージョン以外で動かしたい場合
特定のバージョンで動かしたい場合はタグを指定することで特定のバージョンで動かすことが可能です。
docker pull ghcr.io/osgeo/gdal:ubuntu-full-3.10.2
インストールできるバージョンは「https://github.com/OSGeo/gdal/pkgs/container/gdal」で確認できます。
実行サンプル
例1) EPSGコードを使った投影変換
-vを使ってフォルダをマウントして、GDALのコンテナ内でgdalwarpコマンドを使用し、投影変換を行います。
docker run --rm -v /tmp:/mnt ghcr.io/osgeo/gdal:ubuntu-full-latest 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 ghcr.io/osgeo/gdal:ubuntu-full-latest 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 ghcr.io/osgeo/gdal:ubuntu-full-latest python /mnt/test.py