2016-10-14 2 views
4

Мне нужно открыть растровые файлы .jp2 в python.GDAL: драйвер jp2 отсутствует в python

Я установил GDAL после these instructions.

Использование командной строки gdalinfo --formats содержит список драйверов JP2OpenJPEG. gdalinfo filename.jp2 возвращает ожидаемый результат.

Но питона import gdal data=gdal.Open('filename.jp2')

ничего не возвращает (.tiff работает).

Есть еще 2 приложения, использующие GDAL, поэтому я предполагаю, что python использует неправильную установку GDAL.

У меня такая же проблема в R, но там я могу указать на правильную установку с library(gdalUtils) gdal_chooseInstallation('JP2OpenJPEG')

Есть ли способ, чтобы указать питон правой установки или добавить драйвер для JP2?


для Windows 10

Python 2.7

GDAL 2.1.0

+0

Привет, может быть длинный выстрел, но вы получите rgdal R пакет для использования другой локальной установки GDAL? – Mark

+0

gdal_chooseInstallation() из пакета gdalUtils – unnic

ответ

0

Я на той же платформе, и сталкивается с той же проблемой.

Я думаю, что я нашел обходной путь для этого:

Установите OSGEO4W https://trac.osgeo.org/osgeo4w/ это установит GDAL с драйверами JP2.

Правильно настройте переменные среды. Посмотрите, что OSGEO делает в bin \ O4W_ENV.bat, убедитесь, что вы добавили их в свою переменную Path. %OSGEO4W_ROOT%\bin;%WINDIR%\system32;%WINDIR%;%WINDIR%\WBem При заказе имеет значение, убедитесь, что у вас есть их в этом порядке в переменной PATH, иначе у вас могут быть проблемы.

Чтобы проверить сделать gdalinfo --format JP2OpenJPEG

С анаконда может испортить с переменной PATH добавляю OSGeo дома в моем сценарии снова.

# set environment osgeo_home_bin = "C:\\OSGeo4W64\\bin" # the path order matters so make sure OSGEO4W64 is the first one os.environ['PATH'] = ''.join([osgeo_home_bin,";",os.environ['PATH']])

+0

спасибо за ваш вклад. У меня есть драйвер jp2, переустановив gdal, как описано выше. проблема в том, что он недоступен через python. – unnic

+0

Как выглядит ваша переменная PATH? сделать больным% OSGEO4W_ROOT% \ bin; находится на фронте, когда я запускаю anaconda, он беспорядок с переменной пути, поэтому мне нужно добавить его обратно в свой скрипт python, как это # ​​set environment 'osgeo_home_bin =" C: \\ OSGeo4W64 \\ bin " # путь так что болеть OSGEO4W64 является первым os.environ ['PATH'] = '.join ([osgeo_home_bin, ";", os.geviron [' PATH ']]) ' – Atti