QGISでnodata値をゼロに再定義しますか?


7

AOIポリゴンでクリップした画像があります。輪郭領域はピクセル値= 0に設定されており、-32768のnodata値があります。nodata値をゼロに再定義したい。以前はラスター計算機でArcMapを使用してこれを簡単に実行していましたが、QGISではどのように実行できるかわかりません。何か案は?


2
これを純粋に視覚化したいですか、それともnullに設定して、さらにラスター計算を行う必要がありますか?
2011

回答:


13

QGISでは、次の計算でラスター計算機を使用できます。

("your_raster" != -32768) * "your_raster"

この計算では、セルの値が-32768の場合、そのセルは0になり、-32768と異なる場合、セルはその値を保持します。


1
素晴らしい解決策。これを試す他の人へのメモ:QGISでは、レイヤーのnodata値はレイヤーの[プロパティ]、[情報(一番上のアイテム)]、[バンド]までスクロールして確認できます。
ジョン

これは-3.40282e + 38のような値では機能しないことに注意してください。
ジョージー

12

NoDataをゼロに再分類するための最も簡単な1ステップで、IMOで最も一貫した信頼性のあるソリューションは、処理ツールボックスでグリッド値の再分類ツール(SAGA)を使用することです。

再分類するラスターを選択したら、ダイアログボックスの下部までスクロールし、ボックスreplace no data valuesボックスがオンになっていることを確認します。デフォルト値はゼロです(もちろん、他のものを代用することができます)。次に、replace other valuesボックスをオフにして、他のすべてのフィールドをそのままにします(つまり、1つのボックスがオンになっていることを確認し、別のボックスをオフにしているだけです。他の設定は必要ありません)。


1
同意する。他には何も実際に機能しませんでした(私のnodata値は-3.4e + 38のようなものでした)。
ArMoraer 2016

@ArMoraerとまったく同じ問題がありました。これは最も簡単な解決策であり、完全に機能しました。
Rauni 2016年

nodataの値が0になる問題を修正しましたが、それまでに他のラスター値にほとんど変更を適用しませんでした
ZKB

残念ながら、この方法はQGIS 3.8では機能しないようです。処理フォームは、他のすべての設定を調整しないと実行されません。エラー:「パラメーター値が間違っているか欠落しています:....」
geordie

11

私はこれに対する解決策を見つけました。最初に-srcnodata 0を使用して画像をvrtレイヤー(gdalbuildvrt)に変換し、次にgdal_translate -a_nodataを使用してtifファイルに変換します。うまくいきました!:)


8

あなたはラスター計算機でそれを行うことができると思います。

そうでない場合は、GRASSプラグインとr.nullを使用すると、簡単に実行できます。そのオプションは、ラスターをインポートするGRASSマップセットを最初に作成する必要があることを意味します。


5
ラスター計算機でそれを行う方法について詳しく説明してもらえますか?
rudivonstaden

1
r.null私のためにやった。
メタセコイア2016

8

同じ問題があり、結局私は直接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()


1

ラスターを.ascファイルとしてエクスポートし、テキストエディターで開いて、検索と置換を使用して古いNoData値を必要な値に置き換えました。


1

私の場合、それは8ビットに変換する必要がある衛星画像であり、gdal_translateで-scaleを使用するとデータ値を出力しませんでした。

ラスター(右クリックレイヤー->エクスポート->レイヤーとして保存...)をレンダリングデータとして新しいファイルにエクスポートすることで問題を解決できました(ダイアログウィンドウの上部にあるチェックボックス)。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.