अजगर की वस्तुओं के लिए GeoJSON परिवर्तित? [बन्द है]


24

साइट पर, और जियोजॉन के लिए, और अजगर के लिए नया।

मेरा लक्ष्य जियोसन डेटा के साथ एक फ़ाइल में पढ़ना है, और इसका उपयोग एक ऐसे अनुप्रयोग में उपयोग किए जाने वाले आकृतियों को उत्पन्न करने के लिए किया जाता है जो अजगर स्क्रिप्टिंग का उपयोग कर रहा है। पायथन में इसे पढ़ने और कुछ हेरफेर करने की क्षमता है। मुझे कुछ उदाहरण मिले हैं, लेकिन वे जियोसन पदानुक्रम को सही ढंग से नहीं बता रहे हैं।

मैं एक पुस्तकालय, या निर्देश की तलाश कर रहा हूं, जियोजोन डेटा फ़ाइल से ज्यामिति डेटा कैसे निकालें। दूसरे शब्दों में, मैं यह कहना चाहूंगा कि "सुविधाओं की सूची प्राप्त करें ..." - फिर, प्रत्येक सुविधाओं के लिए, मैं ज्यामिति प्राप्त करना चाहता हूं, प्रकार पढ़ें, और निर्देशांक प्राप्त करें कि विशेष रूप से ज्यामिति आइटम। सुविधाओं की सूची में प्रत्येक आइटम के लिए दोहराएं।

कोई सुझाव?

जवाबों:


37

जब आप jsonलाइब्रेरी का उपयोग करके एक जेजसन फाइल लोड करते हैं , तो आपको dictएक प्रविष्टि मिलती है features, जिसमें सुविधाओं की सूची होती है। बदले में प्रत्येक सुविधा में एक dict, जिसमें अन्य चीजों के अलावा एक प्रविष्टि शामिल है geometrygeometryएक है dictप्रविष्टियों युक्त typeऔर coordinates। तो आप इस तरह से अपनी जियोजोन फाइल को ट्रेस कर सकते हैं:

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']

बहुत बढ़िया सुझाव। यह उससे कहीं ज्यादा आसान था जितना मैं करने की कोशिश कर रहा था। मुझे लोड को लोड करने के लिए बदलने की आवश्यकता थी, और मेरे मौजूदा अजगर में सुन्न एक पुस्तकालय नहीं है। जल्दी जवाब देने का शुक्रिया। मैं अब आगे बढ़ सकूंगा।
माइक वेबर

1
Numpy तकनीकी रूप से आवश्यक नहीं है। सुविधा ['ज्यामिति'] ['निर्देशांक'] (ऊपर) सिर्फ एक पायथन सूची है।
sgillies

@ शिल्पी: अच्छी बात है, सीन। मैंने numpyभ्रम से बचने के लिए उपयोग को हटा दिया है।
जेक

7

मेरे लिबास PyGeoj को विशेष रूप से एक जियोज़न फ़ाइल रीडर और लेखक के रूप में माना जाता है, एक साधारण एपीआई के साथ जो कि फ़ाइल सामग्री को विशेषताओं के साथ ऑब्जेक्ट में बदल देता है, इसलिए आपको सीधे शब्दकोशों से निपटना नहीं पड़ता है। इसमें कुछ सुविधा विधियाँ भी हैं, जैसे कि संपूर्ण सुविधा संग्रह के लिए या केवल प्रत्येक सुविधा के लिए bbox को जोड़ना और जोड़ना।

उदाहरण के लिए, निम्नलिखित कोड वही करेगा जो पोस्टर ने पूछा था:

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

पुस्तकालय _geo_interface_प्रोटोकॉल के माध्यम से / से अन्य पुस्तकालयों में वस्तुओं को आयात और निर्यात भी कर सकता है, अन्य बातों के अलावा जैसा कि परियोजना के जीथब पृष्ठ पर प्रलेखन में देखा गया है।


आप पुस्तकालय महान हैं, मैंने आज ही इसका उपयोग शुरू कर दिया है
ziggy

अगर मैं अजगर को जार्जसन के साथ वेब-मैपिंग करना शुरू करना चाहता हूं, तो उपयोग करने के लिए सबसे अच्छा सॉफ्टवेयर क्या होगा?
जिग्गी

1
GeoJson के साथ काम करने वाले वेब ऐप के लिए, USC जावास्क्रिप्ट लाइब्रेरी का उपयोग करें। यहाँ एक अच्छा उदाहरण धागा है: gis.stackexchange.com/questions/68489/…
टिप्पणी के लिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.