最近の課題でこの 2 つのソフトウェアを使用しており、maxent を行う際に気象因子が必要です。しかし、worldclim からダウンロードした未来の生物気象因子は 19 個のバンドを含む 1 枚の tif ファイルしかなく、手動で 19 個のファイルに分割する必要があります。arcgis を使って分割する方法が見つからなかったため、python に切り替えました。
コードは以下の通りです:
import gdal
import os
input_file = "G:/4.その他/wc2.1_30s_bioc_ACCESS-CM2_ssp126_2041-2060.tif"#ダウンロードしたtifファイル
output_folder = "G:/4.その他/feature_bio/"#出力フォルダ
if not os.path.exists(output_folder):
os.makedirs(output_folder)
dataset = gdal.Open(input_file)
num_bands = dataset.RasterCount
for i in range(num_bands):
band = dataset.GetRasterBand(i + 1)
output_file = os.path.join(output_folder, f"bio_{i + 1}.tif")
driver = gdal.GetDriverByName("GTiff")
new_dataset = driver.Create(output_file, dataset.RasterXSize, dataset.RasterYSize, 1, gdal.GDT_Float32)
new_dataset.SetProjection(dataset.GetProjection())
new_dataset.SetGeoTransform(dataset.GetGeoTransform())
new_dataset.GetRasterBand(1).WriteArray(band.ReadAsArray())
print(f"{output_file}を作成中...")
new_dataset.FlushCache()
new_dataset = None
dataset = None
しかし、1 つ問題があります。gdal をインストールする際に高確率でエラーが発生します。具体的な理由は私も調べていません。ネットでの推奨方法は conda を使用することです:
conda install gdal
実際の状況では、インストールできない場合やインストールしても呼び出せない場合があります。解決策は以下の通りです:
- インストールに失敗した場合:
Github リポジトリから対応する.whl ファイルをダウンロードします。例えば、python 3.11 の場合は GDAL-3.7.1-cp311-cp311-win_amd64.whl をダウンロードし、手動でpip install GDAL-3.7.1-cp311-cp311-win_amd64.whl
を実行します。 - 呼び出せない場合:
python がインストールされている様々な環境パッケージのフォルダ内、例えばD:Path\To\python3.9.12\Lib\site-packages\
フォルダ内に gdal.py ファイルを新規作成し、以下のコードをコピーします:
# import osgeo.gdal as a convenience
from osgeo.gdal import deprecation_warn
deprecation_warn('gdal')
from osgeo.gdal import *