กำลังแปลงวัตถุ GeoJSON เป็น Python หรือไม่ [ปิด]


24

ใหม่สำหรับไซต์และไปยัง geoJSON และไปยัง python

เป้าหมายของฉันคือการอ่านไฟล์ที่มีข้อมูล geoJSON และใช้มันเพื่อสร้างรูปร่างที่จะใช้ในแอปพลิเคชันที่ใช้สคริปต์งูหลาม Python มีความสามารถในการอ่านและจัดการบางอย่าง ฉันได้พบตัวอย่างบางส่วนแล้ว แต่พวกเขาไม่ได้สำรวจลำดับชั้นของ geoJSON อย่างถูกต้อง

ฉันกำลังมองหาไลบรารีหรือคำแนะนำเกี่ยวกับวิธีแยกข้อมูลเรขาคณิตจากไฟล์ข้อมูล geoJSON กล่าวอีกนัยหนึ่งฉันอยากจะพูดว่า "รับรายการคุณสมบัติ ... " - จากนั้นสำหรับแต่ละคุณสมบัติฉันต้องการได้รูปทรงเรขาคณิตอ่านประเภทและพิกัด รายการรูปเรขาคณิตนั้นโดยเฉพาะ ทำซ้ำสำหรับแต่ละรายการในรายการคุณสมบัติ

ข้อเสนอแนะใด ๆ

คำตอบ:


37

เมื่อคุณโหลดไฟล์ GeoJSON โดยใช้jsonห้องสมุดคุณจะได้รับรายการdictที่มีรายการfeaturesซึ่งมีรายการคุณสมบัติ คุณลักษณะในการเปิดแต่ละประกอบด้วยซึ่งเหนือสิ่งอื่นใดที่มีรายการdict เป็นที่มีรายการและ ดังนั้นคุณสามารถสำรวจไฟล์ GeoJSON ของคุณเช่นนี้:geometrygeometrydicttypecoordinates

import json

with open('test.json') as f:
    data = json.load(f)

for feature in data['features']:
    print feature['geometry']['type']
    print feature['geometry']['coordinates']

ข้อเสนอแนะที่ยอดเยี่ยม นี่ง่ายกว่าสิ่งที่ฉันพยายามทำ ฉันต้องเปลี่ยนโหลดเป็นโหลดและ numpy ไม่ใช่ไลบรารีในการติดตั้ง python ปัจจุบันของฉัน ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว ฉันจะสามารถไปต่อในตอนนี้
Mike Weber

1
Numpy ไม่จำเป็นทางเทคนิค feature ['geometry'] ['พิกัด'] (ด้านบน) เป็นเพียงรายการ Python
sgillies

@sgillies: จุดดีฌอน ฉันได้ลบการใช้งานnumpyเพื่อหลีกเลี่ยงความสับสน
Jake

7

PyGeoj lib ของฉันมีความหมายเฉพาะในฐานะผู้อ่านและเขียนไฟล์ geojson ด้วย API แบบง่ายที่เปลี่ยนเนื้อหาไฟล์ให้เป็นวัตถุที่มีคุณสมบัติดังนั้นคุณไม่ต้องจัดการกับพจนานุกรมโดยตรง นอกจากนี้ยังมีวิธีอำนวยความสะดวกบางอย่างเช่นคำนวณและเพิ่ม bbox สำหรับการรวบรวมคุณลักษณะทั้งหมดหรือเฉพาะสำหรับแต่ละคุณสมบัติ

ตัวอย่างเช่นรหัสต่อไปนี้จะทำในสิ่งที่โปสเตอร์ขอ:

import pygeoj
testfile = pygeoj.load("test.geojson")
for feature in testfile:
    print feature.geometry.type
    print feature.geometry.coordinates

ห้องสมุดยังสามารถนำเข้าและส่งออกวัตถุจาก / ไปยังห้องสมุดอื่น ๆ ผ่านทาง_geo_interface_โปรโตคอลเหนือสิ่งอื่นใดตามที่เห็นในเอกสารประกอบในหน้า Github ของโครงการ


ห้องสมุดของคุณยอดเยี่ยมมากฉันเพิ่งเริ่มใช้มันวันนี้
ziggy

ถ้าฉันต้องการเริ่มทำแผนที่เว็บด้วย python parsing geojson ซอฟต์แวร์ที่ดีที่สุดที่จะใช้คืออะไร
ziggy

1
สำหรับเว็บแอปที่ทำงานกับ GeoJson ให้ใช้ไลบรารี Leaflet javascript นี่คือตัวอย่างที่ดีของเธรด: gis.stackexchange.com/questions/68489/…
สำหรับความคิดเห็น

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