【发布时间】:2015-08-04 14:32:56
【问题描述】:
我正在尝试使用以下代码将 3D masked_array 的数据保存到文件中:
print "Writing results to a file..."
format = "GTiff"
driver = gdal.GetDriverByName(format)
fileName = 'path_to_folder/FLENAME.tif'
NumberOfBands = 46
new_dataset = driver.Create( fileName, 2400, 2400, NumberOfBands,gdal.GDT_Float32)
new_dataset = None
for band in range( NumberOfBands ):
new_dataset.GetRasterBand(band + 1).WriteArray(DATA[band,:,:])
这样我得到了错误:
'NoneType' object has no attribute 'GetRasterBand'
我在没有 GetRasterband 的情况下试了一下,得到了'NoneType' object is not attainable
最初尝试np.save 作为替代方法,但未实现,建议尝试此方法。
任何帮助将不胜感激。
谢谢。
更新: 由于凯文的建议,原始错误得到了解决。 然而,在保存文件后,检查它是否包含所需的数据,发现所有值都是 0.0。
-使用 Mike T 的建议解决了这个问题。然而,它似乎只保存了原始的未屏蔽数组,而不是所需的masked_array。
有问题的数据是表面反射率的蒙版 (masked_array) MODIS 文件。不需要的像素是被屏蔽的值。
【问题讨论】:
-
使用immediate problem fixed - 你需要生成一个Minimal, Complete and Verifiable example - 特别是在这里我们需要知道
DATA变量中的内容 - 至少在某些情况下确实存在非零值乐队的? -
谢谢你,我已经更新了帖子。我希望这就是你的意思。
标签: python arrays save mask gdal