मैं एक प्रक्षेपण के बारे में ogr2ogr कैसे सिखाऊं?


11

मेरे पास JSON है ArcGIS से उत्पन्न है जिसे मैं EPSG 4326 में GeoJSON में बदलना चाहता हूं। यह विफल रहता है:

$ ogr2ogr -f GeoJSON -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

मुझे एक फोरम पोस्ट मिली जो कहती है कि 102100 को 3857 में बदला जा सकता है, जो गणितीय रूप से समान है। तो, यह एक ही त्रुटि संदेश के साथ काम करता है:

$ ogr2ogr -f GeoJSON -s_srs EPSG:3857 -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON 
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

हालांकि, मेरे पास 102100 प्रोजेक्शन सिस्टम में कई फाइलें हैं। मैं 102100 प्रक्षेपण के बारे में ogr2ogr सिखाना चाहता हूं, इसलिए मैं रूपांतरण को स्क्रिप्ट कर सकता हूं। क्या कॉन्फ़िगरेशन को अपडेट करने का कोई तरीका है ताकि 102100 को मान्यता दी जाए और उसे 3857 के समान माना जाए?

अद्यतन - यह डेटा ArgGIS सर्वर 9.3.1 के REST एपीआई से है। यदि मैं एक आउटपुट स्थानिक संदर्भ निर्दिष्ट नहीं करता हूं, तो मुझे 102100 मिलते हैं, जिसे वे अनुमानित समन्वय प्रणाली "WGS_1984_Web_Mercator_Auxiliary_Sphere" के रूप में परिभाषित करते हैं । मेरे लक्ष्य को पूरा करने का एक बहुत आसान तरीका है, outSR=4326क्वेरी पैरामीटर के साथ वांछित प्रक्षेपण के लिए पूछना । यदि आपके पास मूल डेटा तक पहुंच नहीं है, तो यह प्रश्न अभी भी मान्य है।

जवाबों:


11

जैसा कि 102100 और 3857 गणितीय रूप से समान हैं, मुझे लगता है कि आप त्रुटियों को सुरक्षित रूप से अनदेखा कर सकते हैं और -s_srs ध्वज का उपयोग करके स्रोत स्रोत को ओवरराइड करना जारी रख सकते हैं ।

आप अपने $ GDAL_DATA $ में 102100 के लिए परिभाषा जोड़ने की कोशिश कर सकते हैं, लेकिन यह वास्तव में अनुशंसित नहीं है। यदि आप वास्तव में इसे करना चाहते हैं, तो यहां विधि और फ्रैंक वार्मरडैम के साथ चेतावनी दी गई है :

.Csv फाइलें प्राथमिक रूप से EPSG समन्वय प्रणालियों के लिए अभिप्रेत हैं, इसलिए उन्हें मैन्युअल रूप से विस्तारित करना वास्तव में उचित नहीं है।

लेकिन आप अपने खुद के कस्टम शब्दकोशों को गदल / डेटा / क्यूबेरएक्स_एक्सट्रा.वॉक के समान तरीके से जोड़ सकते हैं। इन डिक्शनरी फाइलों में एक संक्षिप्त नाम, एक अल्पविराम और फिर समन्वय प्रणाली की डब्ल्यूकेटी परिभाषा शामिल है।

आप SetFromUserInput () और उस फ़ंक्शन का उपयोग करने वाले प्रोग्राम (जैसे s_srs, a_srs, t_srs for gdal_translate, ogr2ogr और gdalhp) से इस तरह की परिभाषा का उपयोग कर सकते हैं:

gdal_translate -a_srs DICT: cubewerx_extra.wkt, 41001

आशा है कि ये आपकी मदद करेगा। सौभाग्य!


1
धन्यवाद, मैंने आपके सुझाव के अनुरूप कुछ किया। मेरी $GDAL_DATA$निर्देशिका /usr/local/share/gdalचालू है, और EPSG 3857 pcs.csvउस फ़ोल्डर में परिभाषित है । मैंने उस पंक्ति को pcs.override.csv3857 से 102100 तक आईडी (पहला कॉलम) में बदल दिया, और उस बिंदु पर, -s_srsध्वज के बिना रूपांतरण पर काम किया । लंबे समय तक समाधान मेरे स्रोत डेटा को एक ज्ञात प्रक्षेपण में प्राप्त करना था, ताकि मैं अनुमानों में मिश्रण के बजाय अकेले प्रारूप रूपांतरण के लिए ogr2ogr का उपयोग कर सकूं।
१२:१४ बजे १२:१४ पर jwhitlock
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.