Я пытаюсь получить доступ к набору векторных данных в файловой базе геоданных ESRI, используя Python + GDAL. Я успешно скомпилировал GDAL с помощью API файловой базы геоданных. Драйвер FileGDB работает правильно с момента ввода
ogrinfo --formats
показывает драйвер FileGDB и ввод
ogrinfo myfilegdb.gdb
дает мне правильную информацию о содержании базы данных.
Тем не менее, я не могу узнать, как получить доступ к самому контенту в Python. Для доступа к шейп-файлу я написал бы:
driver = ogr.GetDriverByName('ESRI Shapefile')
ds = driver.Open('shapefile.shp', 0)
При доступе к классу объектов FileGDB я бы предположил, используя команды:
driver = ogr.GetDriverByName('FileGDB')
ds = driver.Open('myfilegdb.gdb/feature_class', 0)
но это, похоже, не работает, так как не может идентифицировать / найти набор данных. Кто-нибудь знает, как вызвать отдельные классы пространственных объектов из ESRI FileGDB.
Я использую Python 2.7, GDAL 1.9.1, filegdb api 1.2 на Ubuntu 12.04 x64. Спасибо за любые предложения!
источник
Ответы:
Ты почти там. Это на Windows 7, Python 2.6.5 32bit и GDAL 1.9.0:
После того, как вы откроете FGDB, используйте кнопку для доступа
GetLayer
к вашему классу объектов.источник
Я хотел бы добавить, что «FileGDB» является проприетарным драйвером, который не может быть включен в ваш пакет GDAL http://www.gdal.org/drv_filegdb.html . Это приводит к
GetDriverByName
возвращениюNone
.Существует также драйвер «OpenFileGDB», который доступен только для чтения и включен по умолчанию http://www.gdal.org/drv_openfilegdb.html.
источник
Гораздо проще и понятнее, если вы используете Фиона и геопанды
Примечание: Фиона использует GDAL, а геопанда использует Фиона
Смотрите также Чтение имен файловых слоев базы геоданных в Python.
источник