कच्चे OSM डेटा को Openstreetmap.org के लिए कैसे संसाधित किया जाता है


12

किसी को भी जानकारी प्रदान कर सकते हैं कि कैसे www.Menstreetmap.org के लिए OSM डेटा संसाधित या प्रस्तुत किया जाता है?

एक विशिष्ट उदाहरण ... मैंने मिसूरी के एक क्षेत्र के लिए हाल ही में planet.osm PostGIS डेटासेट से डेटा निकाला। ओएसएम डेटा को सही शैलियों का उपयोग करके प्रदान किए जाने से पहले बहुत अधिक सफाई की आवश्यकता होती है। कई जल निकायों को लाइन स्ट्रिंग्स के रूप में संग्रहीत किया जाता है जो ठीक से बंद नहीं होते हैं, इसलिए मुझे तड़क और बहुभुज निर्माण के लिए एफएमई का उपयोग करना होगा ताकि मेरे पास नीली भरी नदियां / झीलें हो सकें।

अगर मैं समान डेटा को देखूं तो यहां जलस्रोतों को अपेक्षित रूप से प्रस्तुत किया गया है।

मुझे उन सभी मामलों की पहचान करने में कठिनाई हो रही है जहाँ तड़कना आवश्यक है (जैसे कि 'प्राकृतिक' प्रकारों की आवश्यकता होती है और सहिष्णुता क्या होनी चाहिए)। इसके अलावा मुझे संदेह है कि कई अन्य डेटा मुद्दे हैं जो मैं कभी नहीं देखूंगा क्योंकि मैं सभी उत्तरी अमेरिका के साथ काम कर रहा हूं।

क्या हर कोई जो OSM डेटा डाउनलोड और उपयोग करता है, अपनी स्वयं की सफाई प्रक्रिया से गुजरता है? क्या किसी को पता है कि इस सफाई को www.openstreetmap.org ने कैसे संभाला है? ऐसा लगता है कि उनकी प्रक्रिया सबसे अच्छी तरह से सूचित और सबसे अधिक परीक्षण किया जाएगा।

किसी भी अंतर्दृष्टि बहुत सराहना की।

संपादित करें : यहाँ मेरे वर्कफ़्लो पर अधिक जानकारी है

एक planet.osm फ़ाइल डाउनलोड की जाती है और पोस्टगिस में लोड की जाती है, ओस्मोसिस का उपयोग करके pgsql स्कीमा में। मैं फिर बहुत से छोटे क्षेत्रों के लिए PostGIS से OSM xml निकालता हूं, फिर से ओस्मोसिस का उपयोग कर रहा हूं। इन छोटी xml फ़ाइलों में से प्रत्येक को FME और इसकी व्यापक सुविधा श्रेणियों का उपयोग करके शेपफाइल्स में परिवर्तित किया जाता है। यह इस चरण (OSM xml -> Shp via FME) है कि मैं लाइनों को बहुभुज में बदलने और डेटा पर अन्य सफाई करने की उम्मीद कर रहा हूं।

इन शेपफाइल्स को जियो सेवर के माध्यम से परोसा जाता है (और GWC का उपयोग करके कैश किया जाता है)।


क्या आप टाइल्स की सेवा करना चाहते हैं? यदि हां, तो शुरू करने के लिए एक जगह यहां है: switch2osm.org/serves-tiles
neuhausr

जवाबों:


9

ठीक है, इसके कुछ अलग-अलग कोण हैं, और चूंकि यह स्पष्ट नहीं है कि आप शुरू में डेटा कैसे संसाधित कर रहे हैं, मुझे लगता है कि मैं अभी एक सिंहावलोकन दूंगा।

OSM डेटा का उपभोग करने के दो मुख्य तरीके हैं - osm2pgsql का उपयोग करके , एक पुरानी उपयोगिता जो 'स्टाइलशीट्स' और डिफरेंशियल अपडेट्स को सपोर्ट करती है , और पायथन-आधारित सिस्टम जो कि पायथन-आधारित सिस्टम ट्रांसफॉर्मेशन को सपोर्ट करता है, एक नया, इपसम है । जब लोग प्रोसेसिंग करते हैं, तो इसका बहुत कुछ उस तरह की स्क्रिप्ट में होता है। उदाहरण के लिए, यहाँ ऑस्म-ब्राइट के लिए एक इम्पोज़म मैपिंग है , जिस पर मैपबॉक्स स्ट्रीट्स (प्रकटीकरण / कर्मचारी) आधारित स्टाइलशीट आधारित है।

जो आप सामना कर रहे हैं, उसके लिए और अधिक विशिष्ट होने के लिए, यह संभावना है कि आप ओएसएम संबंधों को ठीक से संसाधित नहीं कर रहे हैं , जो कि डेटा मॉडल में बहुभुज बनाने के लिए कई linestrings की अनुमति देते हैं। Imposm और osm2pgsql जैसे उपकरण आम तौर पर आपके लिए इस तरह के डेटा परिवर्तन को संभालते हैं।

जहां तक ​​OSM.org खुद चीजों को कैसे करता है: संपादन एक 'शब्दार्थ' पोस्टग्रेज डेटाबेस में है, और लगातार ऑस्मोसिस के साथ पोस्टजीआईएस डेटाबेस में आयात किया जाता है , और मेपनिक के साथ प्रदान किया जाता है । डेटाबेस और मैप रेंडरिंग के बीच कोई मैनुअल सफाई कदम नहीं है, क्योंकि दोनों अत्यधिक युग्मित हैं और मैप का लक्ष्य अप-टू-डेट होना है।


जानकारी के लिए धन्यवाद। क्या आप मेरे संपादन को देखने के लिए इतने दयालु हैं और मुझे बताएंगे कि यह मेरे विकल्पों को कैसे प्रभावित करता है? मुझे इन क्षेत्रों को बनाने के लिए Imposm या osm2pgsql का उपयोग करने का विचार पसंद है, लेकिन मुझे लगता है कि यह PostGIS में एक अलग (गैर-pgsql) स्कीमा की आवश्यकता है क्योंकि मुझे पूरा यकीन है कि इसमें केवल नोड और रास्ता टेबल हैं, कोई क्षेत्र नहीं। संभवत: अगर मुझे PostGIS में क्षेत्र मिले तो मैं OSM xml को निकालते समय उन्हें फिर से खो दूंगा? क्या मुझे PostGIS में अलग से डेटा स्टोर करना चाहिए और फिर किसी तरह सीधे Shp को निकालना चाहिए?
टोमफंब

5

सामान्य तौर पर आपको "स्नैपिंग" की आवश्यकता नहीं होती है, क्योंकि मूल OSM डेटा स्थैतिक रूप से व्यवस्थित है - एक बहुभुज (= OSM तरीका), उदाहरण के लिए, नोड सूचकांकों की सूची के माध्यम से परिभाषित किया गया है (और सीधे उनके निर्देशांक द्वारा नहीं) - इसलिए यदि आरंभिक और अंतिम संकेत समान हैं, तो इसे एक बंद बहुभुज माना जाता है। अन्यथा, यह एक पॉलीलाइन (सड़क की तरह) है।

बड़ी निकायों (आपके मामले में ओसेज नदी की तरह) आम तौर पर के माध्यम से परिभाषित कर रहे हैं OSM multipolygons , जो OSM तरीके (LineStrings) है कि आकार और छेद (यदि कोई हो) को परिभाषित की एक श्रृंखला से मिलकर बनता है। OSM मल्टीप्लगॉन के साथ कई संभावित समस्याएं हैं:

  1. उन्हें परिभाषित करने का एक से अधिक तरीका है (केवल चश्मा देखें)। अलग-अलग लोग अलग-अलग नियमों का उपयोग करते हैं।
  2. नियम निहित हैं - आपको ओएसएम विकी डॉक्स के माध्यम से पढ़ने की जरूरत है ताकि यह समझने की कोशिश की जा सके कि उन्हें कैसे संभालना है।
  3. यदि आप OSM डेटा एक्सट्रैक्ट का उपयोग करते हैं, तो मल्टीप्लगॉन के कुछ हिस्से गायब हो सकते हैं (क्योंकि वे भौगोलिक रूप से मिसौरी राज्य के अंदर नहीं हैं)। तो आपको जल निकाय बहुभुज को बंद करने का एक तरीका खोजने की आवश्यकता है (या तो इसे राज्य सीमा का उपयोग करके या मैन्युअल रूप से इसे कुछ जीयूआई उपकरण के साथ बंद करके)।

हां, अन्य डेटा समस्याएँ भी हैं। मुख्य रूप से वे ओएसएम मैपिंग की प्रकृति से उपजी हैं: विभिन्न लोग चीजों को अलग-अलग तरीके से मैप करते हैं और यह कैसे करना है, इस पर कोई सेट-इन-स्टोन नियम नहीं हैं। यह कमोबेश एक स्व-संगठित अराजकता है;)

मैं स्वयं कभी भी ओएसएम 2 पीजीएससीएल द्वारा निर्मित सपाट ओएसएम डेटा के साथ काम नहीं करता हूं - मैं हमेशा ओएसएम एक्सएमएल फॉर्म में मूल टोपोलॉजिकल डेटा के साथ शुरू करता हूं और कोड को लिखने की प्रक्रिया करता हूं जो मुझे चाहिए। लेकिन फिर मैं रेंडरिंग के लिए मेपनिक का उपयोग नहीं करता, इसलिए मैं शायद अल्पसंख्यक में हूं।


1

यदि आप osm2pgsql से मूल डेटाबेस स्कीम का उपयोग करते हैं, तो आपके पास संबंधित ऑसम डेटा मॉडल 'बंद रास्ता' और 'बहुभुज-संबंध' बहुभुज में बदल जाते हैं और 'planet_polygon' नामक तालिका में रख दिए जाते हैं। तरीके और नोड्स 'planet_line' और 'planet_point' में हैं। आप क्वांटम जीआईएस के माध्यम से इन तालिकाओं तक पहुंच सकते हैं, और उन्हें सीधे आकार के लिए निर्यात कर सकते हैं। आप डेटा को फ़िल्टर करने के लिए क्वांटम GIS के अंदर से SQL क्वेरी भी कर सकते हैं।

मैं उसके लिए परासरण का उपयोग नहीं करूंगा। इसमें पॉलीगॉन हैंडलिंग नहीं है जैसा कि osm2pgsql करता है। ऑस्मोसिस डेटा को उसी तरीके से संग्रहीत करता है जिस तरह से योगदानकर्ता उनसे निपटते हैं (नोड्स, तरीके और संबंध)। यह प्रतिपादन के लिए एक उपयुक्त डेटाबेस योजना नहीं है।

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