趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

linux環境でpythonのgdalを使うときの注意点

スポンサーリンク

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の記事を書きます。