Usiłuję uzyskać dostęp do wektorowego zestawu danych w geobazie plików ESRI przy użyciu języka Python + GDAL. Pomyślnie skompilowałem GDAL za pomocą interfejsu API geobazy API. Sterownik FileGDB działa poprawnie od momentu wejścia
ogrinfo --formats
pokazuje sterownik FileGDB i wprowadzenie
ogrinfo myfilegdb.gdb
daje mi poprawne informacje na temat zawartości bazy danych.
Nie mogę jednak dowiedzieć się, jak uzyskać dostęp do samej zawartości w Pythonie. Aby uzyskać dostęp do pliku kształtu, napisałbym:
driver = ogr.GetDriverByName('ESRI Shapefile')
ds = driver.Open('shapefile.shp', 0)
Podczas uzyskiwania dostępu do klasy funkcji FileGDB przyjąłem następujące polecenia:
driver = ogr.GetDriverByName('FileGDB')
ds = driver.Open('myfilegdb.gdb/feature_class', 0)
ale to nie działa, ponieważ nie można zidentyfikować / zlokalizować zestawu danych. Czy ktoś wie, jak wywoływać poszczególne klasy obiektów z pliku ESRI FileGDB.
Używam Python 2.7, GDAL 1.9.1, filegdb api 1.2 na Ubuntu 12.04 x64. Dziękuję za wszelkie sugestie!
źródło
Odpowiedzi:
Jesteś prawie na miejscu. Dotyczy to Windows 7, Python 2.6.5 32bit i GDAL 1.9.0:
Po otwarciu FGDB użyj przycisku,
GetLayer
aby uzyskać dostęp do swojej klasy funkcji.źródło
Chciałbym dodać, że „FileGDB” to zastrzeżony sterownik, który może nie być dołączony do pakietu GDAL http://www.gdal.org/drv_filegdb.html . Powoduje to
GetDriverByName
powrótNone
.Istnieje również sterownik „OpenFileGDB”, który jest tylko do odczytu i jest domyślnie dołączony http://www.gdal.org/drv_openfilegdb.html
źródło
O wiele prostsze i intuicyjne, jeśli korzystasz z Fiona i geopand
Uwaga: fiona używa gdal, a geopanda używa fiona
Zobacz także Czytanie nazw warstw plików geobazy w Pythonie
źródło