ध्रुवीय स्टीरियोग्राफिक के लिए जियोट्रांसफॉर्मेशन?


16

वर्तमान में मैं आर्काइविस में CANGRID जलवायु डेटा (सर्फर ग्रिड ascii, ".grd" फ़ाइलों के रूप में) प्रदान करने के लिए काम कर रहा हूँ। ग्रिड 95 पंक्तियों में 125 स्तंभों के आकार का है। मेटाडाटा लेट / लोन ऑफ ओरिजिन (निचले बाएं कोने), सेल आकार (50 किमी) के साथ-साथ केंद्रीय मेरिडियन (110 डिग्री डब्ल्यू) और मूल के अक्षांश (60 डिग्री एन) के साथ ध्रुवीय स्टीरियोग्राफिक के रूप में नोट प्रक्षेपण प्रदान करता है।

पहले .grd को .ascii और .flt के रूप में चूहों में बदलने का प्रयास करने के बाद, मैं GDAL का उपयोग करने के लिए हद और प्रक्षेपण सेट करने में कामयाब रहा, हालांकि डेटासेट सही ढंग से इच्छित क्षेत्र की सीमाओं के साथ संरेखित नहीं करता है। छवि के नीचे देखें।

क्या ध्रुवीय स्टीरियोग्राफिक के लिए एक स्वीकृत जियोट्रांसफॉर्मेशन है जो संरेखण की इस कमी को समझा सकता है?

उदाहरण के लिए, क्या कोई विशिष्ट रूपांतरण कारक या रोटेशन है जिसका मुझे उपयोग करना चाहिए?

डेटासेट से एक उदाहरण फ़ाइल यहाँ है: "t201113.grd"

यह कोड मैं वर्तमान में GDAL में उपयोग कर रहा हूं

ds = gdal.Open("t201113.grd")
array = ds.ReadAsArray()

x_rotation = 0
y_rotation = 0
xres = 1
yres = -1

llx = -129.8530
lly = 40.0451
ulx = -175.144
uly = 71.385

input_osr = osr.SpatialReference()
input_osr.ImportFromWkt(ds.GetProjection())

wgs84_osr = osr.SpatialReference()
wgs84_osr.ImportFromEPSG(4326)

wgs_to_nps_trans = osr.CoordinateTransformation(wgs84_osr, input_osr)
x, y, z = wgs_to_nps_trans.TransformPoint(llx,lly)

geo_transform = [ x, xres, x_rotation, y, y_rotation, yres ]

ncol = ds.RasterXSize
nrow = ds.RasterYSize

out_driver = gdal.GetDriverByName("HFA")
out_ds = out_driver.Create(t201113.img", ncol, nrow, 1, gdal.GDT_Float32)

out_ds.SetGeoTransform(geo_transform)

out_prj = 'PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",60.0],UNIT["50_Kilometers",50000.0]]'

out_ds.SetProjection(out_prj)

out_ds.GetRasterBand(1).WriteArray(array)
out_ds.GetRasterBand(1).SetNoDataValue(1.70141e+038)
out_ds.FlushCache()
out_ds = None
`

इसके अलावा, यहाँ प्रक्षेपण जानकारी है, जैसा कि इनपुट द्वारा परिभाषित है, "गेटप्रोजेक्ट ()" से:

'PROJCS [ "North_Pole_Stereographic", GEOGCS [ "GCS_WGS_1984", गृहीत [ "WGS_1984", उपगोल [ "WGS_1984", 6378137.0,298.257223563]], PRIMEM [ "ग्रीनविच", 0.0], यूनिट [ "डिग्री", .0174532925199433]], अनुमान [ "Stereographic"], पैरामीटर [ "False_Easting", 0.0], पैरामीटर [ "False_Northing", 0.0], पैरामीटर [ "Central_Meridian", 0.0], पैरामीटर [ "Scale_Factor", 1.0], पैरामीटर [ "Latitude_Of_Origin", 90.0 ], यूनिट [ "50_Kilometers", 50,000.0]] '

और इनपुट GeoTransform:

(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)

लैट, ग्रिड निर्देशांक के लंबे हिस्से भी प्रदान किए जाते हैं, और जब अनुमानित समन्वय प्रणाली में दृश्य नीचे की तरह दिखता है। जब जियोट्रांसफॉर्म को निचले बाएं (पीले) या ऊपरी दाएं (गुलाबी) कॉर्डिनेट के निर्देशांक द्वारा परिभाषित किया जाता है, तो मैं प्रभावी रूप से सीमा निर्धारित कर सकता हूं, लेकिन पूरे रेखापुंज में संरेखण मुद्दे रहते हैं।

यहाँ छवि विवरण दर्ज करें


यदि आप ArcGIS का उपयोग कर रहे हैं, तो Stereographic North Pole पर जाएँ और मानक को 60.0 के समानांतर सेट करें। आर्कजीआईएस स्टिरियोग्राफिक कार्यान्वयन एक मानक समानांतर के बजाय एक स्केल फैक्टर का उपयोग करता है क्योंकि प्रोज कहीं भी केंद्रित हो सकता है।
19enn पर mkennedy

धन्यवाद @mkennedy - क्या आप का अर्थ है "उत्तरी ध्रुव स्टीरियोोग्राफिक" प्रोज (WKID 102018)? मैंने इस प्रक्षेपण का उपयोग करके मूल और केंद्रीय मध्याह्न मूल्यों का अक्षांश निर्धारित किया है और अभी भी एक ही मुद्दा है। शायद आप एक और प्रक्षेपण की बात कर रहे हैं?
jsnider

नहीं, आपको एक की आवश्यकता है जहां प्रक्षेपण (विधि) Stereographic_North_Pole है। मुझे नहीं लगता कि हमारे पास सटीक पीसीएस है; 3995 या 3413 से संशोधित करने की कोशिश करें।
mkennedy

1
मेटाडेटा ध्यान दें कि "फ़ाइल ग्रिड_पेंट_lls.txt प्रत्येक x / y (ग्रिड के 0,0 = SW कोने) के लिए अक्षांश / देशांतर को सूचीबद्ध करता है।" हाथ में इस फ़ाइल के साथ आप इस ग्रिड को अपने इच्छित किसी भी समन्वय प्रणाली को फिर से अस्वीकार कर सकते हैं और वहां से जा सकते हैं।
whuber

1
हम वेक्टर लेयर को परीक्षण के लिए कहां डाउनलोड कर सकते हैं?
फरीद चरगही

जवाबों:


2

एक टिप्पणी के लिए बहुत लंबा, यह @ मतेज के जवाब के साथ है

  1. ArcGIS में ".grd" डेटा जोड़ें।
  2. "अन्य प्रारूप में रेखापुंज" फ़ंक्शन का उपयोग करें और अपनी .grd फ़ाइल को ESRII GRID प्रारूप में परिवर्तित करें। यह महत्वपूर्ण है क्योंकि आर्कजीआईएस में अधिकांश रेखापुंज फ़ंक्शन केवल इस प्रारूप के लिए सुलभ हैं, या तो यह या तो आमतौर पर बहुत धीमा हो जाता है जब आप इसे अन्य प्रारूपों पर उपयोग करते हैं।

  3. जैसा कि इसमें पहले से ही प्रोजेक्शन फाइल से जुड़ी फाइल है। नए रूपांतरित डेटा को प्रोजेक्ट करने के बजाय, इसके प्रक्षेपण को परिभाषित करें। आर्कटूलबॉक्स> डेटा प्रबंधन उपकरण> अनुमान और रूपांतरण> प्रोजेक्शन को परिभाषित करें। आप पूर्व-परिभाषित ध्रुवीय स्टीरियो ग्राफिक ESRII प्रक्षेपण पर नेविगेट कर सकते हैं और देख सकते हैं कि क्या इसके पैरामीटर मेटाडेटा में दिए गए से मेल खाते हैं (यह नहीं है), इसलिए आप इसे @Matej के अनुसार संशोधित कर सकते हैं। केवल यहां - संशोधित करने के बजाय, केंद्रीय मध्याह्न रेखा के साथ एनपीएस प्रक्षेपण के आधार पर एक नया बनाएं और उत्पत्ति का अक्षांश बदल गया और इसे डिस्क पर सहेजें, फिर नए प्रक्षेपण पर नेविगेट करें और अपने प्रक्षेपण को परिभाषित करते समय उपयोग करें। इसका कारण यह है कि जब आप अपने डेटा फ़्रेम के लिए समन्वय प्रणाली सेट करने के लिए इसका उपयोग करना चाहते हैं, तो फ़्लाय संशोधन पर आपका बाद में उपलब्ध नहीं होगा,



1

मुझे नहीं लगता कि आपको छवि को फिर से प्रस्तुत करने की आवश्यकता है। केवल निम्नलिखित कार्य करें:

  1. परिभाषित (संशोधित) आधार का प्रक्षेपण
  2. georeference (बदलाव) निर्दिष्ट स्थान पर छवि

ध्यान दें कि छवि (जीआरडी) पहले से ही उत्तरी ध्रुव स्टीरियोग्राफिक प्रक्षेपण में है, जो आपको केवल यह संकेत देती है कि छवि के साथ गठबंधन किए गए बेसमैप को कैसे समायोजित किया जाए।

चरण 1 :

उत्पत्ति और मध्य मेरिडेशन की अक्षांश को समायोजित करने के लिए मूल उत्तरी ध्रुवीय स्टीरियो प्रक्षेपण (WKID: 102018) को संशोधित करें:

यहाँ छवि विवरण दर्ज करें

चरण 2:

निर्दिष्ट-समन्वय (निचले, लोन) के निचले-बाएँ कोने को सेट करके जीआरडी फ़ाइल को सुरक्षित करें। जब आप georeferencing अपडेट करते हैं, .gdwx फ़ाइल उसी फ़ोल्डर में बनाई जाती है। (40.0451, -129.853) के लिए SW कोने को असाइन करते समय फ़ाइल की सामग्री इस प्रकार दिखती है:

50000
0
0
-50000
-1730620.4315
2744092.9724

संपादित करें: ऊपर दी गई विश्व फ़ाइल को सेल आकार के आधार पर मैन्युअल रूप से संशोधित किया गया है और SW कोने के स्थान को प्रदान किया गया है - 5 वीं और 6 वीं पंक्ति छवि के ऊपरी-बाएँ पिक्सेल के परिकलित स्थान का प्रतिनिधित्व करती है। छवि की स्थिति थोड़ी बदल गई।

उपरोक्त मान निर्दिष्ट स्थान पर छवि को स्थानांतरित (स्थानांतरित) करते हैं और पैमाने को परिभाषित करते हैं।

और यह आउटपुट है: यहाँ छवि विवरण दर्ज करें

यदि यह ठीक से संरेखित नहीं होता है, तो मैं छवि के SW कोने के लिए दिए गए निर्देशांक पर सवाल उठाऊंगा। यदि आपके पास छवि के NE कोने के निर्देशांक तक पहुंच है, तो आप परिवर्तन मापदंडों को पुनर्गणना कर सकते हैं जो छवि को दो (या अधिक) बिंदुओं के बीच स्केल और घुमाएंगे।


.Gdwx फ़ाइल एक विश्व फ़ाइल है ? यदि ऐसा है, तो लिंक किए गए विकी लेख में 5 और 6 पंक्तियों को ऊपरी बाएँ पिक्सेल का संदर्भ दिया गया है। क्या आप इसे दक्षिण-पश्चिम (निचले बाएँ) पिक्सेल पर सेट करने का सुझाव दे रहे हैं?
किर्क कुएकेन्डल

नहीं, मैंने केवल SW कोने का स्थान निर्दिष्ट किया है जैसा कि रीडमी फ़ाइल में दिया गया है। फ़ाइल की संरचना विश्व फ़ाइल की तरह दिखती है। यह आर्कपोर में Georeferencing टूल का उपयोग करके उत्पन्न किया गया था, जिसने NW कोने के स्थान की गणना और संग्रहित किया हो सकता है - अभी तक जाँच नहीं की गई है।
मतज

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