PythonとGDALを使用してファイルジオデータベースのフィーチャクラスにアクセスする方法は?


21

Python + GDALを使用して、ESRIファイルジオデータベースのベクターデータセットにアクセスしようとしています。ファイルジオデータベースAPIを使用してGDALを正常にコンパイルしました。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から個々のフィーチャクラスを呼び出す方法を知っている人はいますか。

Ubuntu 12.04 x64でPython 2.7、GDAL 1.9.1、filegdb api 1.2を使用しています。提案をありがとう!


OGR for FileGDBドライバーをインストールするためのアイデアを教えてください。
ガイザー

回答:


18

あなたはほとんどそこにいます。これは、Windows 7、Python 2.6.5 32ビット、およびGDAL 1.9.0上にあります。

>>> from osgeo import ogr
>>> driver = ogr.GetDriverByName("FileGDB")
>>> ds = driver.Open(r"C:\temp\buildings.gdb", 0)
>>> ds
<osgeo.ogr.DataSource; proxy of <Swig Object of type 'OGRDataSourceShadow *' at 0x02BB7038> >
>>> ds.GetLayer("buildings")
<osgeo.ogr.Layer; proxy of <Swig Object of type 'OGRLayerShadow *' at 0x02BB7050> >
>>> b = ds.GetLayer("buildings")
>>> sr = b.GetSpatialRef()
>>> sr
<osgeo.osr.SpatialReference; proxy of <Swig Object of type 'OSRSpatialReferenceShadow *' at 0x02BB7080> >
>>> sr.ExportToProj4()
'+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs '
>>>

FGDBを開いたら、を使用GetLayerしてフィーチャクラスを取得します。


それを知ったら、それはとても論理的に思えます:-)どうもありがとう、あなたのソリューションはトリックをします。
ニールズ


3

フィオナとジオパンダを使用すると、はるかにシンプルで直感的になります

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

注:フィオナはgdalを使用し、ジオパンダはフィオナを使用します

Pythonでのジオデータベースファイルレイヤーの名前の読み取りも参照してください。


前提条件:pip install "GDAL-3.0.2-cp36-cp36m-win_amd64.whl"#こちらをご覧くださいlfd.uci.edu/~gohlke/pythonlibs、pip install wheels、pip install pipwin、pipwin install numpy、pipwin install pandas 、pipwin install shapely、pipwin install gdal、pipwin install fiona、pipwin install pyproj、pipwin install 6、pipwin install rtree、pipwin install geopandas、pythonが環境パスにあることを確認し、GDAL CPx.yでPythonのバージョンを表示します32ビットシステムは32ビットを使用し、コンマは改行を意味します
mohsen hs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.