Python GDAL: ogr.open หรือ driver.open?


10

ฉันใช้ GDAL กับ python เพื่อจัดการรูปร่างของไฟล์ เมื่อเปิดไฟล์ต้นฉบับฉันจะตั้งค่าไดรเวอร์เป็น“ ESRI Shapefile” ก่อนเรียกวิธีการ "เปิด" ของไดรเวอร์ด้วยรูปร่างที่ต้องการ

ฉันไม่มีปัญหากับสิ่งนี้ อย่างไรก็ตามฉันอยากรู้ว่าอะไรคือความแตกต่างระหว่างวิธีการใช้งานอินสแตนซ์ไดร์เวอร์“ เปิด” และฟังก์ชั่น ogr“ เปิด” ตัวอย่างเช่นอะไรคือความแตกต่างระหว่าง:

driver = ogr.GetDriverByName("ESRI Shapefile")
source = driver.Open(“O:\myshp.shp”,0)

และ

source = ogr.Open(“O:\myshp.shp”,0)

มีสถานการณ์เฉพาะที่คุณจะใช้อีกสถานการณ์หนึ่งหรือไม่?


คำถามติดตามผล: ดูเหมือนว่าจะdriver = gdal.GetDriverByNameใช้gdal.Openงานได้ดี แต่ใช้driver.Openไม่ได้ ไม่เทียบเท่าไฟล์แรสเตอร์? ฉันรู้ว่า GDAL และ OGR ได้รับการพัฒนาโดยคนต่าง ๆ แต่ API ที่ไม่สอดคล้องกันและการขาดเอกสารส่วนใหญ่นั้นเจ็บปวดมาก ...
Adam Stewart

คำตอบ:


11

หากคุณระบุไดรเวอร์ OGR จะพยายามเปิดไฟล์ของคุณด้วยไดรเวอร์ที่ระบุเท่านั้น

หากคุณไม่ได้ระบุไว้ OGR จะพยายามเปิดไฟล์ของคุณพร้อมไดรเวอร์ทั้งหมด มันจะวนซ้ำโปรแกรมควบคุมทั้งหมดจนกว่าจะพบไดรเวอร์ที่สามารถเปิดไฟล์ของคุณได้ คำสั่งที่พยายามเปิดพวกเขานั้นเป็นคำสั่งเดียวกับที่ระบุใน ogrinfo - รูปแบบ

ดูคำถามนี้ด้วย: บังคับให้ OGR ใช้ไดรเวอร์เฉพาะสำหรับรูปแบบอินพุต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.