我使用地理数据并使用gdal
导入到python中的大型栅格文件。要处理它们,我将它们转换为numpy
数组。
我创建了一个空数组,它在循环中填充数据。但是,我需要NaN值与我导入的rater文件中的位置相同。
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数组仍然只保留零。
答案 0 :(得分:0)
自己想出来...... np.isnan就是解决方案:
for c in range(cols):
for r in range(rows):
dataOut[c][r] = np.nan if np.isnan(data[c][r]) else dataOut[c][r]