ফিওনায় ফাইলজিডিবি (এসরি ফাইল জিডিবি এপিআই) ড্রাইভারের সমর্থন কীভাবে যুক্ত করবেন?


13

এটি নিয়ে প্রচুর প্রশ্ন উঠেছে তবে তাদের কোনওটিই আমার সমস্যার সমাধান করেনি।

আমার সাথে একটি মেশিন রয়েছে:

  • উইন্ডোজ 7 এক্স 64
  • পাইথন 3.4.3 এক্স 64
  • gdal ইনস্টল হয়েছে: gdalinfo --version --> GDAL 1.11.4, released 2016/01/25; gdal একটি চাকা থেকে ইনস্টল করা ছিল GDAL-1.11.4-cp34-none-win_amd64.whlথেকে এখানে

জিডিএল ইনস্টল করা আছে C:\Python34\Lib\site-packages\osgeo। সেখানে আমার কাছে gdal এবং ogr এবং .pyd ফাইলগুলির জন্য .exe ফাইলগুলির একটি গুচ্ছ রয়েছে।

  • ফিওনা ইনস্টল করা: Fiona-1.6.3-cp34-none-win_amd64.whlএকই ওয়েবসাইট থেকে, একটি চাকা থেকে ইনস্টল করা হয়েছিল ।

আমি এই কোডটি চালাতে সক্ষম এবং এটি সফলভাবে কার্যকর করে:

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()

আমি ওজিআর ফর্ম্যাটগুলি পেতে সক্ষম হয়েছি: ogrinfo --formatsউইন্ডোজ সেন্টিমিডিতে সেগুলির একটি গুচ্ছ মুদ্রণ করে (যদিও সেখানে কোনও ফাইলজিডিবি নেই)।

আমি এই কোডটি চালাতে সক্ষম এবং এটি সফলভাবে কার্যকর করে:

import fiona
with fiona.drivers():
  with fiona.open(path=r'C:\Data\GIS\TemplateData.gdb', driver='OpenFileGDB') as source:
    print(source.meta)

তবে এই কোডটি চলবে না:

with fiona.drivers():
    with fiona.open(path=r'C:\Data\GIS\TemplateData.gdb', driver='FileGDB') as source:
        print(source.meta)

কারণ আমার কাছে এসরি ফাইল জিডিবি সংকলিত লাইব্রেরি নেই যা প্রয়োজনীয়।

আমি এসরি ডাউনলোড পৃষ্ঠাFileGDB_API_VS2012_1_3.zip থেকে ডাউনলোড এবং আনপ্যাক করেছি । যেমন আমি বুঝতে পেরেছি, .dll ইতিমধ্যে রয়েছে বলে কোনও কিছুই সংকলনের দরকার নেই।

আমার পরিবেশে ফিয়োনায় তাদের ব্যবহার করতে সক্ষম হতে এসরি ফাইল জিডিবি এপিআইয়ের ডেল নিবন্ধনের সঠিক পদ্ধতিটি কী?


আপডেট: (লুকের উত্তরের ভিত্তিতে)

আমি এসরি ডাউনলোড পৃষ্ঠাFile Geodatabase API 1.4 version for Windows (Visual Studio 2010) থেকে ডাউনলোড করেছি । আমি কপি FileGDB_API_VS2010_1_4\bin64\FileGDBAPI.dllকরতে C:\Python34\Lib\site-packages\osgeo। এখন আমি এখানে দুটি ফাইল আছে, ogr_FileGDB.dllএবং FileGDBAPI.dll

আমি একটি উইন্ডোজ ভেরিয়েবল তৈরি করেছি GDAL_DRIVER_PATH : C:\Python34\Lib\site-packages\osgeo\gdalplugins। ইন PATHপরিবর্তনশীল, আমি ছাড়া কিছু পাইথন নির্দিষ্ট হবে না C:\Python34\Lib\site-packages\osgeo

এখন চলার সময় ogrinfo --formatsআমি -> "FileGDB" (read/write)ফাইলজিডিবি ড্রাইভারের সাথে কাজ করার জন্য পাইথন কোডটি পেতে পারি এবং সক্ষম হয়েছি।


1.4 ফাইল জিওডাটাবেস এপিআই এখন দীর্ঘ সময়ের জন্য প্রকাশিত হয়েছে । আসলেই 1.3 ব্যবহার করার কোনও কারণ নেই।
ভিনস

@ লুক, ধন্যবাদ, তবে আমার জিডিবিতে লেখার অ্যাক্সেস দরকার। আফাইক, আপনি কেবল ওপেনফিলজিডিবি দিয়েই পড়তে পারেন ... কোনও নির্দিষ্ট লিঙ্ক বা ডক পৃষ্ঠাগুলি কীভাবে সংকলনটি অর্জন করবেন এবং কীভাবে ডিএল (উইন্ডোজ ভেরিয়েবল ইত্যাদির মাধ্যমে) নির্দেশ করবেন? খুব সহায়ক হবে।
অ্যালেক্স তেরেশেনকভ

@ ভিনস, 1.4 বা অন্য কোনও সংস্করণ যা আমাকে জিডিবি ফাইলটি সম্পাদনা করার অনুমতি দেবে তা ব্যবহার করতে আমি আপত্তি করি না: কীভাবে কীভাবে সক্ষম হতে হয় তার স্পষ্ট নির্দেশাবলী সহ আমার ডকস পৃষ্ঠা / স্পেসের অভাব রয়েছে।
অ্যালেক্স তেরেশেনকভ

@ অ্যালেক্সট্রেশেনকভ আপনি যেমন 64৪ বিট অজগর ব্যবহার করছেন, [python install dir]\Lib\site-packages\osgeoআমি আমার উত্তরে যেমন উল্লেখ করেছি ঠিক তে এসরি বিন 64 ফাইলজিডিবিপিআই ডিলটি অনুলিপি করুন , আপনার সম্পাদনায় উল্লিখিত গ্ল্ডপ্লাগিনস দির নয়। কেবলমাত্র ড্রাইভার প্লাগইন সেই ডিরেক্টরিতে যায়, তৃতীয় পক্ষের ঘরগুলি নয়।
ব্যবহারকারী2856

1
@ অ্যালেক্সট্রেসেনকভ, ogr_FileGDB.dll ফাইলজিডিবি ড্রাইভার ( ওপেনফিলজিডিবি নয় যা gdal / ogr তে অন্তর্নির্মিত)। এই ডেলটি জিডিএল / ওজিআর ড্রাইভার কোড থেকে সংকলিত । এটি GDAL_DRIVER_PATH env var দ্বারা নির্দিষ্ট ডিরেক্টরিতে থাকা দরকার।
ব্যবহারকারী2856

উত্তর:


9

Gohlke GDAL / OGR চাকা FileGDB চালক একটি প্লাগইন হিসাবে কম্পাইল অন্তর্ভুক্ত করা হয়েছে।

ফাইলজিডিবি ড্রাইভারকে কাজ করতে পেতে:

  1. Esri bin64 \ FileGDB.dll এ অনুলিপি করুন [python install/virtualenv dir]\Lib\site-packages\osgeo(32 বিট পাইথন ব্যবহার করা হলে বিন \ FileGDB.dll ব্যবহার করুন)। Gdalplugins ডিরেক্টরিতে FileGDB.dll অনুলিপি করবেন না।
  2. GDAL_DRIVER_PATH পরিবেশ পরিবর্তনশীল সেট করুন, হয়:
    • ম্যানুয়ালি; অথবা
    • সম্পাদনা করুন [python install/virtualenv dir]\Lib\site-packages\osgeo\__init__.pyএবং কোনও অসুবিধা লাইন 10।
      # uncomment the next line to enable plugins
      os.environ['GDAL_DRIVER_PATH'] = os.path.join(os.path.dirname(__file__), 'gdalplugins')

ফাইলজিডিবি ড্রাইভারের সাথে একটি জিডিবি খোলার এখন কাজ করা উচিত।

>>> import fiona
>>> with fiona.drivers():
...     with fiona.open(path=r'C:\Temp\Default.gdb', driver='FileGDB') as source:
...         print(source.meta)
...
{'crs': {'init': u'epsg:4326'}, 'driver': 'FileGDB', 'crs_wkt': u'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01
74532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]', 'schema': {'geometry': 'MultiPolygon', 'properties': OrderedDict([(u'SHAPE_Length', 'float'), (u'SHAPE_Area', 'float')])}}
>>>

বিঃদ্রঃ:

পাইথন ২.7 ব্যবহার করে আমি কেবল ফাইলজিডিবি এপিআই v1.3 (এমএসভিসি ২০০৮) এর সাথে কাজ করতে ফাইলজিডিবি প্লাগইন পেতে পারি। হিসাবে v.1.4 সেগফোল্টস অজগর। আমি ধরে নিলাম কারণ এটি অজগর এবং গহলকে প্রদত্ত জিডিএল এবং ফিয়ানা গ্রন্থাগারগুলি এমএসভিসি ২০০৮ এবং বনাম 1.4 এর সাথে এমএসভিসি 2010 (এবং পরে) সংকলিত হয়েছে।

ফাইলজিডিবি এপিআই ভি ১.৪ পাইথন ৩.৪ এবং এমএসভিসি ২০১০-সহ সংকলিত গোহলকে প্রদত্ত জিডিএল এবং ফিয়ানা গ্রন্থাগারগুলির সাথে দুর্দান্ত কাজ করে।


এটিকে কাজ করতে আমি github.com/Esri/file-geodatedia-api/tree/master/… এ অবস্থিত bin64\FileGDBAPI.dllথেকে অনুলিপি করতে চাই (পাইথন 3.5 FileGDB_API_1_5_1-VS2010.zipstep 1
64৪ বিবিটে

আমার জিডিএল geopandasমিনিকোন্ডা কমান্ড লাইনটি ব্যবহার করে স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে গেছে conda install geopandas। ইন __init__.pyলাইন 10 ইতিমধ্যে uncommented, তাই আমি মনে করি না এটা লাইন আপনি উল্লেখ করা হয় তা নয়। এছাড়াও কোনও gdalpluginsফাইল নেই
ব্যবহারকারী 32882

@ ব্যবহারকারী 32882 এই নির্দেশাবলী কনডা ইন্সটলড জিডিএল এর জন্য নয় ...
ব্যবহারকারী2856

আমি কীভাবে এটি কনডায়ার জন্য সেট আপ করতে পারি? এটা কি সম্ভব?
ব্যবহারকারী 32882

4

মূল তথ্যটি এখানে:

আমি ওজিআর ফর্ম্যাটগুলি পেতে সক্ষম হয়েছি: ওগ্রিনফো - ফর্ম্যাটগুলি উইন্ডোজ সেন্টিমিডে তাদের একগুচ্ছ মুদ্রণ করে (যদিও সেখানে কোনও ফাইলজিডিবি নেই)।

এটি আমাকে বলে যে আপনার GDAL_DRIVER_PATHপরিবেশের পরিবর্তনশীল সেট করা নেই। Https://trac.osgeo.org/gdal/wiki/FileGDB# টেস্টিংথেড্রাইভারে নির্দেশাবলী দেখুন । একবার "ফাইলজিডিবি" ogrinfo --formats(বা fio env --formats) এর মধ্যে দেখানো হলে আপনি ভাল হয়ে যাবেন।


ধন্যবাদ। জিআইএস.এসইতে প্রশ্নের উত্তর দেওয়ার জন্য আপনার অবাক হওয়ার জন্য অবাক - আপনি সম্ভবত ফিয়োনা, সুদৃশ্য এবং অন্যান্য স্টাফ নিয়ে অতি ব্যস্ত। আপনি লিখেছেন খুব দুর্দান্ত জিনিস। আমি সচেতন যে আমার কাছে ফাইলজিডিবি ড্রাইভার নেই তাই এটি কীভাবে করবেন তা জিজ্ঞাসা করছেন। আপনি যে পৃষ্ঠাটি উল্লেখ করেছেন সেটি আমি দেখেছি, এটিতে বলা দরকার Compile GDAL with the FGDB section commented । আমার জিডিএল উত্স নেই; আমি সবেমাত্র এটি চাকা থেকে ইনস্টল করেছি, সুতরাং আমার ধারণা এই পদক্ষেপগুলি আমার ক্ষেত্রে প্রযোজ্য নয়। আমি এখান থেকে কোথায় যাব?
অ্যালেক্স তেরেশেনকভ

1
GDAL_DRIVER_PATHপরিবর্তনশীল চাবিকাঠি। Trac.osgeo.org/gdal/wiki/ConfigOptions#GDAL_DRIVER_PATH পড়ুন এবং যদি এটি আপনাকে সঠিক পথে নির্ধারণ না করে তবে list.osgeo.org/pipermail/gdal-dev/2014-May/039066.htmlথ্রেডটি দেখুন
সাগিলি

আমার কিছু সংকলনের দরকার পড়েনি বলে কিছুটা বিভ্রান্তিমূলক পদক্ষেপ - আমি যে চাকাগুলি ইনস্টল করেছি তার মধ্যে আমার প্রয়োজনীয় সমস্ত কিছু ছিল, এটি ঠিক ফোল্ডারে থাকা ফাইলগুলি আটকানো সম্পর্কে। তবে যে কোনও উপায়ে দরকারী তথ্যের জন্য একটি টন ধন্যবাদ, কিছু অন্যান্য ব্যবহারের ক্ষেত্রে জেনে রাখা ভাল।
অ্যালেক্স তেরেশেনকভ

এটি একেবারে সঠিক উত্তর। আশেপাশে ইনস্টলেশন পরিবর্তন করার দরকার নেই, কেবল সঠিক পথ নির্ধারণ করুন!
বেনজামিন

1

ফাইল অনুলিপি করা হচ্ছে FileGDBAPI.dll \ প্রোগ্রাম ফাইল \ QGIS 2.18 \ বিন এবং: মধ্যে ফোল্ডারের সি ogr_FileGDB.dll সি ফোল্ডারে: \ প্রোগ্রাম ফাইল \ QGIS 2.18 \ বিন \ gdalplugins আমার জন্য কৌতুক আছে। এখানে একটি দস্তাবেজ যা তাদের ব্যবহারের ব্যাখ্যা দেয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.