回答:
NoDataをゼロに再分類するための最も簡単な1ステップで、IMOで最も一貫した信頼性のあるソリューションは、処理ツールボックスでグリッド値の再分類ツール(SAGA)を使用することです。
再分類するラスターを選択したら、ダイアログボックスの下部までスクロールし、ボックスreplace no data values
ボックスがオンになっていることを確認します。デフォルト値はゼロです(もちろん、他のものを代用することができます)。次に、replace other values
ボックスをオフにして、他のすべてのフィールドをそのままにします(つまり、1つのボックスがオンになっていることを確認し、別のボックスをオフにしているだけです。他の設定は必要ありません)。
あなたはラスター計算機でそれを行うことができると思います。
そうでない場合は、GRASSプラグインとr.nullを使用すると、簡単に実行できます。そのオプションは、ラスターをインポートするGRASSマップセットを最初に作成する必要があることを意味します。
r.null
私のためにやった。
同じ問題があり、結局私は直接Pythonを使用しました-特定の目的のためにnumpy.whereを調整する必要があるかもしれません。以下の場合、ピクセル値は> = 0の場合と同様に維持され、他のすべてのピクセル(この場合、データのない値のピクセルのみ)は「0」に設定されます。
import gdal, gdalconst, numpy
maskfile = gdal.Open('C:\Users\max\Desktop\Baltic2.tif', gdalconst.GA_Update)
maskraster = maskfile.ReadAsArray()
maskraster = numpy.where((maskraster >= 0), maskraster, 0 )
maskband = maskfile.GetRasterBand(1)
maskband.WriteArray( maskraster )
maskband.FlushCache()
rastercalcプラグインとRaster Calculatorの両方を使用しようとしましたが、どちらも機能しませんでした-構文エラー。どのような仕事をしたことはワープツールと値NODATA送信元と宛先を指定した(同様の質問に対するアンダーダークの回答を参照してくださいラスタレイヤから欠損値を除外するためにどのように?)
私の場合、それは8ビットに変換する必要がある衛星画像であり、gdal_translateで-scaleを使用するとデータ値を出力しませんでした。
ラスター(右クリックレイヤー->エクスポート->レイヤーとして保存...)をレンダリングデータとして新しいファイルにエクスポートすることで問題を解決できました(ダイアログウィンドウの上部にあるチェックボックス)。