GDALって
gdalとはosgeoの提供するオープンソースライブラリでジオメトリデータを処理するためには必須です。 基本的にはCLIですが、主要なGISソフトのバックエンドで動いています。
詳しくはWikipediaで
python用のモジュールもあります。
GDAL python API 2.1で大きく記述方法が変更されて使いやすくなりました。 (Pythonから使いやすくなったGDAL 2.1がステキだ | giscience.jp参照、未だに古い記述方法で記載されているものが多いので気をつけて下さい。)
最新版は2020/4/28時点で3.0.4でステーブル版は2.3.3です。
linux環境でpythonのgdalを使うときの注意点
本題ですが、 linux環境の場合、gdal Warpを例にあげるとこんな感じになります。
import gdal ds = gdal.Warp('warp_test.tif', infile, dstSRS='EPSG:4326', outputType=gdal.GDT_Int16, xRes=0.00892857142857143, yRes=0.00892857142857143) ds = None
ポイントは2行目のds=~と3行目のds=Noneですが、このように記述しないと上手く動かないです。
ちなみにwindowsの場合、
import gdal ds = gdal.Warp('warp_test.tif', infile, dstSRS='EPSG:4326', outputType=gdal.GDT_Int16, xRes=0.00892857142857143, yRes=0.00892857142857143)
でも、
import gdal gdal.Warp('warp_test.tif', infile, dstSRS='EPSG:4326', outputType=gdal.GDT_Int16, xRes=0.00892857142857143, yRes=0.00892857142857143)
でも動きます。
なぜなのかわかりません。詳しい人教えて下さい。
参考サイト
gis - python: perform gdalwarp in memory with gdal bindings - Stack Overflow
なんとGoogle Colaboratoryには最初からgdalが入ってました。
近日Google Colaboratoryの記事を書きます。