複数の離散値を含むラスターを再分類できるGDALのツールを探しています。これまでのところ、GDALとPythonを使用してラスタを再分類しています。ただし、ここでは単一の値しか処理できないようです。
スイートのネイティブツールのようなものはありますか?
複数の離散値を含むラスターを再分類できるGDALのツールを探しています。これまでのところ、GDALとPythonを使用してラスタを再分類しています。ただし、ここでは単一の値しか処理できないようです。
スイートのネイティブツールのようなものはありますか?
回答:
gdal_calc
多くのクラスの再分類に使用できます。
たとえば、12〜10以下の値を変更でき、20、30、40、50の値は同じままで、50〜62の値は60に変更されます。
python gdal_calc.py -A input.tif --outfile=output.file --calc="10*(A<=12)+20*(A==20)+30*(A==30)+40*(A==40)+50*(A==50)+60*((A>50)*(A<=62))" --NoDataValue=0
gdal_reclassifyは、Python GDALバインディングに基づく非公式のPythonツールで、いくつかの値のクラスに従って再分類できます。
要件:
python
numpy
gdal binaries
python-gdal bindings
例:
python gdal_reclassify.py source_dataset.tif destination_dataset.tif -c "<30, <50, <80, ==130, <210" -r "1, 2, 3, 4, 5" -d 0 -n true -p "COMPRESS=LZW"
Pythonスクリプトで作業している場合は、.ReadAsArray
メソッドを使用します。その後、numpyを使用して再分類できます。
import numpy as np
sample = np.random.randint(low = 0, high = 9, size =(5,5))
print(sample)
sample[sample == 4] = 40
sample[sample <= 2] = -20
print(sample)