我已经使用文件地理数据库API成功编译了GDAL。由于输入
ogrinfo --formats
显示FileGDB驱动程序并输入
ogrinfo myfilegdb.gdb
,FileGDB驱动程序正常工作有关数据库内容的正确信息。
但是,我找不到如何在Python中访问内容本身的方法。
要访问shapefile,我会这样写:
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调用单个要素类。
我在Ubuntu 12.04 x64上使用Python 2.7,GDAL 1.9.1,filegdb api 1.2。感谢您的任何建议!
#1 楼
你快到了。这是在Windows 7,Python 2.6.5 32位和GDAL 1.9.0上:一旦打开FGDB,请使用GetLayer
来获取要素类。 评论
一旦您知道它似乎很合逻辑:-)非常感谢,您的解决方案将助您一臂之力。
–尼尔斯
2012年9月4日于13:46
#2 楼
我想补充一点,“ FileGDB”是GDAL软件包http://www.gdal.org/drv_filegdb.html中可能未附带的专有驱动程序。这将导致GetDriverByName
返回None
。还有“ OpenFileGDB”驱动程序,该驱动程序是只读的,默认情况下包含在http://www.gdal.org/drv_openfilegdb.html
>>> from osgeo import ogr
>>> driver = ogr.GetDriverByName("OpenFileGDB")
#3 楼
如果您使用fiona和geopandas,则更加简单直观import fiona
import geopandas as gpd
# Get all the layers from the .gdb file
layers = fiona.listlayers(gdb_file)
for layer in layers:
gdf = gpd.read_file(gdb_file,layer=layer)
# Do stuff with the gdf
注意:fiona使用gdal,geopandas使用fiona
另请参阅Python中的地理数据库文件层
评论
先决条件:pip install“ GDAL-3.0.2-cp36-cp36m-win_amd64.whl” #see here lfd.uci.edu/~gohlke/pythonlibs,pip install wheels,pip install pipwin,pipwin install numpy,pipwin install pandas ,pipwin匀称安装,pipwin安装gdal,pipwin安装fiona,pipwin安装pyproj,pipwin安装6,pipwin安装rtree,pipwin安装geopandas,检查python在您的环境路径中,在GDAL CPx.y中显示了Python版本32位系统使用32位,逗号表示换行
– Mohsen Sichani
19年11月25日在19:18
评论
您能给我一些想法来安装OGR for FileGDB驱动程序吗?