Я уже некоторое время борюсь с правильной установкой GDAL, и когда я подумал, что все работает правильно, я обнаружил еще один препятствие.

Я установил GDAL с помощью решения, описанного здесь, которое представляет собой форму который поддерживает форматы файлов HDF4. Например, использование gdalinfo --formats в bash возвращает список поддерживаемых форматов файлов, и туда включается HDF4. Кроме того, gdalinfo XYZ.hdf возвращает полное описание любого файла hdf, который я ввел.

Однако при попытке работать с файлами HDF4 через Python я выхожу ошибку о том, что HDF4 не является поддерживаемым форматом файла. С использованием

 import osgeo.gdal as gdal
 gdal.GetDriverByName('HDF4')

Не приносит никакой отдачи.

Я смущен, потому что GDAL, кажется, построен для меня правильно, но я не могу заставить его работать через Python. Я изучил этот источник, а также этот источник, но они описывают установку GDAL с поддержкой HDF4, которую я уже удавшийся. По какой-то причине кажется, что Python не знает, как использовать установленный мною GDAL в полной мере ...

Версии: Mac OSX El Capitan версии 10.11.6; GDAL 2.2.1, выпущен 23.06.2017

0
JepsonNomad 1 Авг 2017 в 17:42
Python, вероятно, поставляется со своей собственной версией библиотек gdal.
 – 
Dmitri Chubarov
2 Авг 2017 в 04:57
Хорошо, тогда что я могу сделать, чтобы gdal python поддерживал hdf4?
 – 
JepsonNomad
2 Авг 2017 в 20:33
HDF4 в for i in range(gdal.GetDriverCount()): print i, gdal.GetDriver(i).GetDescription()
 – 
Logan Byers
3 Авг 2017 в 16:48
Нет, это не так. Означает ли это, что мне нужно установить драйвер или переделать gdal в Python?
 – 
JepsonNomad
3 Авг 2017 в 20:05
Вы используете виртуальную среду или есть вероятность, что на вашем компьютере установлено несколько экземпляров GDAL? Например, если у вас уже установлен QGIS.
 – 
Logan Byers
3 Авг 2017 в 20:47

1 ответ

Лучший ответ

Наконец-то разобрался, ребята. Я не уверен, какие именно шаги мне нужны, а какие нет, поэтому я опубликую свой полный рабочий процесс, чтобы сохранить прозрачность.

В соответствии с комментариями Дмитрия и Логана выше, я исследовал, есть ли у меня правильная библиотека gdal python , а не просто библиотека gdal bash. Все еще не уверен, в чем разница, но, как оказалось, у меня была пара разных библиотек gdal, присутствующих в подпапке пакетов в anaconda (cd /Users/myusername/anaconda/pkgs, ls). Я удалил эти библиотеки, используя rm и какой-то тег (может быть, -r?).

Затем я переустановил свои пространственные библиотеки с помощью anaconda, следуя рекомендациям, опубликованным здесь. К сожалению, моему bash не удалось получить доступ к веб-сайту jgomezdans, но я смог обойти этот элемент уравнения, используя conda install proj4 (а не conda install -c https://conda.binstar.org/jgomezdans proj4) и т. Д.

После установки всего scipy и т. Д. Я ввел proj4, hdf4 и gdal (в указанном порядке). При попытке установить geos я обнаружил ошибку, что он уже установлен.

Когда все это было завершено, я использовал команду в моем исходном сообщении, а также в комментарии Логана, чтобы проверить, присутствует ли HDF4. Моя команда возвращает следующее:

<osgeo.gdal.Driver; proxy of <Swig Object of type 'GDALDriverShadow *' at 0x10fc66180> >

Logan возвращает полный список доступных драйверов gdal в питоне gdal. Конечно же, hdf4 есть в списке.

tl; dr Я удалил все и переустановил многие вещи.

0
JepsonNomad 13 Авг 2017 в 02:15