Ada banyak pertanyaan tentang itu tetapi tidak satupun dari mereka menyelesaikan masalah saya.
Saya punya mesin dengan:
- Windows 7 x64
- Python 3.4.3 x64
- gdal diinstal:
gdalinfo --version --> GDAL 1.11.4, released 2016/01/25
; gdal dipasang dari rodaGDAL-1.11.4-cp34-none-win_amd64.whl
dari sini
GDAL diinstal ke C:\Python34\Lib\site-packages\osgeo
. Di sana saya memiliki banyak file .exe untuk file gdal dan ogr dan .pyd.
- fiona diinstal: diinstal dari roda
Fiona-1.6.3-cp34-none-win_amd64.whl
, dari situs web yang sama.
Saya dapat menjalankan kode ini dan dijalankan dengan sukses:
import gdal
import ogr
from gdalconst import *
shp = r"C:\Data\GIS\PTS.shp"
driver = ogr.GetDriverByName('ESRI Shapefile')
dataset = driver.Open(shp)
layer = dataset.GetLayer()
layer.GetFeatureCount()
schema = layer.schema
fields = [field.GetName() for field in schema]
feature = layer.GetNextFeature()
Saya juga bisa mendapatkan format OGR: ogrinfo --formats
mencetak banyak di Windows cmd (tanpa FileGDB di sana).
Saya dapat menjalankan kode ini dan dijalankan dengan sukses:
import fiona
with fiona.drivers():
with fiona.open(path=r'C:\Data\GIS\TemplateData.gdb', driver='OpenFileGDB') as source:
print(source.meta)
Namun, kode ini tidak akan berjalan:
with fiona.drivers():
with fiona.open(path=r'C:\Data\GIS\TemplateData.gdb', driver='FileGDB') as source:
print(source.meta)
Karena saya tidak memiliki pustaka terkompilasi Esri File GDB yang diperlukan.
Saya telah mengunduh dan membongkar FileGDB_API_VS2012_1_3.zip
dari halaman unduhan Esri . Seperti yang saya mengerti, tidak perlu mengkompilasi apapun karena file .dll sudah ada di sana.
Apa prosedur yang benar untuk mendaftarkan dll dari Esri File GDB API untuk dapat menggunakannya di fiona di lingkungan saya?
UPDATE: (berdasarkan jawaban Luke)
Saya telah mengunduh File Geodatabase API 1.4 version for Windows (Visual Studio 2010)
dari halaman unduhan Esri . Saya menyalin FileGDB_API_VS2010_1_4\bin64\FileGDBAPI.dll
ke C:\Python34\Lib\site-packages\osgeo
. Sekarang saya punya dua file di sini, ogr_FileGDB.dll
dan FileGDBAPI.dll
.
Saya telah membuat variabel Windows GDAL_DRIVER_PATH : C:\Python34\Lib\site-packages\osgeo\gdalplugins
. Dalam PATH
variabel, saya tidak punya sesuatu yang spesifik kecuali Python C:\Python34\Lib\site-packages\osgeo
.
Sekarang ketika menjalankan ogrinfo --formats
I get -> "FileGDB" (read/write)
dan saya dapat menggunakan kode Python untuk bekerja dengan driver FileGDB.
[python install dir]\Lib\site-packages\osgeo
dir seperti yang saya tentukan dalam jawaban saya, bukan dir gdalplugins yang Anda sebutkan di edit. Hanya plugin driver yang masuk direktori itu, bukan dll pihak ke-3.