データで部分的にしかカバーされていない画像の統計情報を計算しようとしています。 ComputeBandStatsがファイルnodataと同じ値を持つピクセルを無視するかどうかを知りたいと思います。ここで ComputeBandStatsはnodataを考慮に入れていますか?
が私のコードです:inIMG = gdal.Open(infile)
# getting stats for the first 3 bands
# Using ComputeBandStats insted of stats array has min, max, mean and sd values
print "Computing band statistics"
bandas = [inIMG.GetRasterBand(b+1) for b in range(3)]
minMax = [b.ComputeRasterMinMax() for b in bandas]
meanSD = [b.ComputeBandStats(1) for b in bandas]
print minMax
print meanSD
NODATAない画像の属性出力は次のとおりです。NODATAを持つ画像に対して
Computing band statistics
[(0.0, 26046.0), (0.0, 24439.0), (0.0, 22856.0)]
[(762.9534697777777, 647.9056493556284), (767.642869, 516.0531530834181), (818.0449643333334, 511.5360132592902)]
= 0出力は、次のとおりです。
Computing band statistics
[(121.0, 26046.0), (202.0, 24439.0), (79.0, 22856.0)]
[(762.9534697777777, 647.9056493556284), (767.642869, 516.0531530834181), (818.0449643333334, 511.5360132592902)]
最小値と最大値が変更され、0はもはや最小値になりません。これは意味があります。それはnodataであり、したがってComputeRasterMinMax()によって考慮されない。しかし、平均および標準偏差は変化していない。
これは、ComputeBandStatsがnodata値を無視しないことを意味しますか?
ComputeBandStatsに強制的にnodata値を無視させる方法はありますか?
ありがとう、それは私が必要としたものです! ComputeStatisticsのパラメータをFalseに設定します。パラメータが何であるか知っていますか、それを調べることができるドキュメントはありますか? –
私は通常、元のドキュメントを見てPythonのバインディングを理解することができます:http://www.gdal.org/classGDALRasterBand.html#a48883c1dae195b21b37b51b10e910f9bパラメータは 'bApproxOK'です。 'True'の場合、統計はファイルの概要または部分集合から計算され、' False'の場合はすべてのデータの実際のデータ値を使用して計算されます。 – Benjamin