QGIS .prj फ़ाइल से CRS का पता क्यों नहीं लगा रहा है?


9

मेरे पास 1 किमी हेक्सागोनल ग्रिड हैं जो संयुक्त राज्य अमेरिका में पोस्टग्रेक्यूएल / पोस्टग्रेग डेटाबेस में विभिन्न काउंटियों को कवर करते हैं। प्रत्येक ग्रिड में CRS EPSG: 3857 है, और काउंटियों की परत में EPSG: 3857 है। जब QGIS में काउंटियों के साथ ग्रिड को देखते हैं, तो सब कुछ भव्य दिखता है।

लेकिन ... सहकर्मियों के साथ इन ग्रिडों को साझा करने के लिए, मुझे ogr2ogr का उपयोग करके उन्हें आकार-प्रकार में निर्यात करना होगा। क्यूजीआईएस में इन्हें देखने से प्रत्येक ग्रिड लगभग 20 किमी या उससे अधिक दूरी पर दिखता है, और क्यूजीआईएस स्वचालित रूप से सीआरएस को ईपीएसजी: 3395 (जो परियोजना सीआरएस नहीं है) को सेट करता है।

जब मैं QGIS से आकृति के रूप में पोस्टगिस तालिकाओं का निर्यात करता हूं , .prj फ़ाइल बिल्कुल ogr2ogr के आकार के आकार के निर्यात की तरह दिखती है , लेकिन पोस्टजीस निर्यात की गई तालिकाओं को सही ढंग से प्रदर्शित किया जाता है। मैंने देखा QGIS जब शेपफ़ाइलें निर्यात एक .qpj फ़ाइल बनाता है कि QGIS से , तो मैं निष्कर्ष है कि QGIS .prj अनदेखी और एक .qpj के लिए बजाय लग रही है पर आए हैं। यह .qpj के बिना .prj क्यों नहीं पढ़ सकता है? अन्य आकार-प्रकार (जैसे कि अमेरिकी जनगणना से) के पास .qpj नहीं है, लेकिन QGIS इन्हें सही ढंग से प्रदर्शित करता है।

मैं एक default.qpj को सहेजकर और ogr2ogr का उपयोग करके निर्यात करने वाली हर फ़ाइल के लिए इससे एक नया .qpj बनाकर वर्कअराउंड के साथ आया हूं, लेकिन यह गन्दा और स्पष्ट रूप से प्रतिलिपि प्रस्तुत करने योग्य नहीं है क्योंकि यह केवल EPSG: 3857 के लिए काम करता है।

सिडेनोट: मैं QGIS 2.0.1 का उपयोग कर रहा हूं।

संपादित करें:

यहाँ ogr2ogr कमांड का उपयोग किया गया है:

ogr2ogr -f "ESRI Shapefile" /home/matt/data/hex_grid_1 PG:'dbname=mydb user=matt' hex_grid_1

.Prj की सामग्री:

PROJCS [ "WGS_84_Pseudo_Mercator", GEOGCS [ "GCS_WGS_1984", गृहीत [ "D_WGS_1984", उपगोल [ "WGS_1984", 6378137,298.257223563]], PRIMEM [ "ग्रीनविच", 0], यूनिट [ "डिग्री", .017453292519943295]], अनुमान [ "मर्केटर"], पैरामीटर [ "central_meridian", 0], पैरामीटर [ "false_easting", 0], पैरामीटर [ "false_northing", 0], यूनिट [ "मीटर", 1], पैरामीटर [ "standard_parallel_1", 0.0] ]

.Qpj की सामग्री:

PROJCS ["WGS 84 / Pseudo-Mercator", GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137298.257223563, AUTHORITY ["EPSG", "7030"], AUTHORITY [] EPSG "," 6326 "]], PRIMEM [" ग्रीनविच ", 0, प्राधिकार [" EPSG "," 8901 "]], यूनिट [" डिग्री ", .0174532925199433, प्राधिकार [" EPSG "," 9122 "]], प्राधिकारी [ "EPSG", "4326"]],, अनुमान [ "Mercator_1SP"], पैरामीटर [ "central_meridian" 0], पैरामीटर [ "scale_factor", 1], पैरामीटर [ "false_easting", 0], पैरामीटर [ "false_northing" , 0], यूनिट [ "मीटर", 1, प्राधिकार [ "EPSG", "9001"]], एक्सिस [ "एक्स", पूर्व], एक्सिस [ "Y", उत्तर], विस्तार [ "PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_n = 0।0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + इकाइयों = m + nadgrids = @ null + wktext + no_defs "], AUTHORITY [" EPSG "," 38577]]]

संपादित करें :

ईपीएसजी: 3857's को EPSG: 2163 में मेरी सभी लिपियों में परिवर्तित करके समस्या हल की गई। मुझे अभी भी यकीन नहीं है कि समस्या क्या है क्योंकि क्यूजीएस में ग्रिड सही ढंग से प्रदर्शित होते हैं जब मूल रूप से एक पोस्टग्रेक्यूएल टेबल (ईपीएसजी: 3857 के साथ) से लोड किया जाता है।

जैसा कि मैंने सोचा था कि मेरे सहकर्मी ने आर्कगिस में फ़ाइल का उपयोग करने में असमर्थ था, जो कि .prj या ठीक से पढ़ा नहीं था।


क्या आप ogr2ogr कमांड जोड़ सकते हैं?
अल्फाबेटसौप

क्या आप .prj और .qpj दोनों फ़ाइलों की सामग्री पोस्ट कर सकते हैं?
mkennedy

1
हो सकता है कि "WGS84 Web Mercator Projection on a Auxiliary Sphere" पर सीमित क्षमताएं हों। en.wikipedia.org/wiki/Web_Mercator .. दीर्घवृत्त व्यापारी और गोलाकार Mercator की तरह, वेब व्यापारी अपने दीर्घवृत्त के उपयोग के कारण काफी अनुरूप नहीं है। एक गोलाकार प्रक्षेपण के खिलाफ डेटम भौगोलिक निर्देशांक।
हुकफीन

@ हक्फिन मैंने सभी EPSG: 3857's को EPSG में बदल दिया: 2163 मेरी स्क्रिप्ट में और मेरी समस्या अब हल हो गई है। मुझे अभी भी यकीन नहीं है कि यह क्यों होता है क्योंकि जब ईपीएसजी: 3857 के साथ पोस्टग्रेएसक्यूएल तालिकाओं से लोड किए गए सभी ग्रिड सही ढंग से प्रदर्शित होते हैं। पारितोषिक के लिए धन्यवाद।
हैफ

जवाबों:


4

यह EPSG:3857परिभाषा उस प्रक्षेपण को प्राप्त करने के लिए एक गंदा हैक है जिसे Google ने आधुनिक जीआईएस सॉफ्टवेयर में आविष्कार किया था। यह गोले और दीर्घवृत्त का एक संयोजन है जो "सामान्य" अनुमानों द्वारा उपयोग नहीं किया जाता है। दुर्भाग्य से, हर सॉफ्टवेयर इसे अनुकूलित करने के लिए दूसरे तरीके का उपयोग करता है।

QGIS .qpj फ़ाइल, ARCGIS WKT को .prj फ़ाइल में और GDAL का pro.4.4 परिभाषा में उपयोग करता है। .Qpj फ़ाइल WKT परिभाषा में proj.4 परिभाषा को शामिल करती है।

ऐसी समस्याओं से निपटने का सबसे सुरक्षित तरीका Google Mercator है। आप अपने स्थानीय स्टेट प्लेन, UTM या कुछ महाद्वीप-व्यापी लाम्बर्ट या अल्बर्स अनुमानों का बेहतर उपयोग कर सकते हैं।


जानकार अच्छा लगा। आपके उत्तर के लिए धन्यवाद। हालांकि मैंने देखा है कि जब मैं ogr2ogr का उपयोग करके EPSG 2163 के साथ एक आकृति फ़ाइल निर्यात करता हूं, कोई .qpj नहीं बनाया गया है, फिर भी QGIS अभी भी इसे ठीक से पढ़ता है। तो मैं मान रहा हूँ कि QGIS .prj से .qj की अनुपस्थिति में जानकारी पढ़ेगा। सिर्फ एक राज्य में काम करने पर राज्य प्लेन के अनुमान बहुत काम आएंगे, लेकिन मेरी स्क्रिप्ट कई राज्यों से काउंटी के कोड लेती है, इसलिए मेरे मामले में राज्य का विमान व्यावहारिक नहीं होगा।
१०'१६

1
QGIS आम तौर पर .prj फ़ाइल के साथ ठीक काम करता है, लेकिन वर्ल्ड मर्केटोर प्रोजेक्टेड फ़ाइलों के साथ नहीं जो अन्य सॉफ़्टवेयर से आती हैं। सबसे उपयुक्त सीआरएस हमेशा अध्ययन क्षेत्र के आकार पर निर्भर करता है। ईपीएसजी 2163 आपके कार्य के लिए ठीक होना चाहिए।
आंद्रे जे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.