私は地理データを扱い、大きなラスタファイルを持っています。私はgdal
でPythonにインポートします。それらを処理するために、私はそれらをnumpy
配列に変換します。numpyの配列から別の配列にNaN値を転送する
私はループ内のデータでいっぱいになる空の配列を作成します。しかし、NaN値は、インポートされた評価者ファイルと同じ場所にある必要があります。
data = ds.GetRasterBand(1).GetNoDataValue()
data = np.array(ds.GetRasterBand(1).ReadAsArray())
data[data==-9999] = np.nan # set all -9999 as no data value
cols, rows = data.shape
dataOut = np.zeros([ds.RasterYSize, ds.RasterXSize]) # create empty array with zeros
for c in range(cols):
for r in range(rows):
dataOut[c][r] = np.nan if isinstance(data[c][r], np.ndarray) else dataOut[c][r]
私のデータ配列からのNaN値をmy dataOut配列に転送する必要があります。それらの解決策のどれも私にとってhereが駄目だと示唆していませんでした... dataOut配列はまだゼロだけを保持しています。
チェックしていますか? 2次元配列の場合は決して真実ではないでしょう...おそらく 'dataOut [np.isnan(data)]' –
がうまくいきません。残念ながら(エラーメッセージなしで、まったく変更がありません)。 dataOutは、データ内のNaNの代わりに0だけを保持します。 – GeoEki