Я пытаюсь сохранить 3D masked_array
данных в файл, используя следующий код:Сохранение 3D замаскированный массив
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.
-Эта проблема была решена с помощью предложения Майка Т. Однако, похоже, он сохраняет исходный незамасленный массив, а не необходимый masked_array
.
DATA в вопросе маскируется (masked_array
) MODIS файл поверхностного отражения. Если пиксели, которые не требуются, являются значениями, которые маскируются.
С [исправленной проблемой исправлено] (http://stackoverflow.com/a/31812161/838992) - вам нужно создать [минимальный, полный и проверенный пример] (http://stackoverflow.com/help/ mcve) - в частности, здесь нам нужно знать, что находится в переменной DATA, действительно ли есть ненулевые значения, по крайней мере, в некоторых диапазонах? –
Спасибо, я обновил сообщение. Надеюсь, это то, что вы имели в виду. –