В двух словах, когда driver.Create(...)
или gdal.Open(...)
и т. Д. Возвращают None
, это способ gdal поднять IOError
или указать, что данное имя драйвера недопустимо. (Или, возможно, указывает на то, что произошла ошибка другого типа, но эти два, похоже, наиболее вероятны)
(Я пропущу разглагольствование о том, насколько мне не нравятся привязки gdal к Python ...)
Вы явно не делаете ничего плохого (в этом примере на моем компьютере создается файл .bin со всеми нулями и должным образом отформатированным файлом .hdr.).
Учитывая, что он создает пустой файл, у вас, похоже, есть разрешение на запись в файл, так что это не проблема ввода-вывода.
Это означает, что либо:
- Ваша версия gdal не поддерживает файлы ENVI (например,
gdal.GetDriverByName("something random")
также вернет None
.)
- Gdal сталкивается с некоторой внутренней ошибкой при создании драйвера для набора данных ENVI.
Проверьте вывод gdalinfo --formats
и убедитесь, что gdal скомпилирован с поддержкой файлов ENVI (хотя я думаю, что это должно быть по умолчанию).
Если нет, проверьте, можете ли вы написать геотиф (или любой другой формат) со всеми нулевыми значениями. Если ничего не работает, вам нужно переустановить gdal.
Надеюсь, что вас направят в правильном направлении!