0
我使用地理數據,並使用gdal
導入到python中的大型光柵文件。爲了處理它們,我將它們轉換爲numpy
陣列。將NaN值從一個numpy數組轉換爲另一個
我創建了一個空數組,用循環中的數據填充。但是,我需要將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值被轉移到我的dataOut數組中。這些解決方案中沒有一個建議here爲我而... dataOut數組仍然只保留零。
你爲什麼要檢查'如果isinstance(數據[C] [R],no.ndarray)'?對於二維數組,這絕不會是真的......您可能只想要'dataOut [np.isnan(data))' –
這不工作不幸(沒有錯誤信息,根本沒有改變)。 dataOut仍然只保留0,而不是數據中那些位置的NaN。 – GeoEki