GeoTIFF फ़ाइल में प्रत्येक पिक्सेल के लिए lat / lon मान कैसे खोजें?


9

मैं डेटाबेस में पिक्सेल द्वारा जियोफाई फ़ाइल को स्टोर करना चाहता हूं। मुझे GeoTIFF छवि पर उस पिक्सेल के lat / lon के साथ पिक्सेल मूल्यों को संग्रहीत करने की आवश्यकता है। क्या यह करना मुमकिन है?


1
क्या लक्ष्य लाट / लोन द्वारा क्वेरी करने में सक्षम है? आप जियोट्रांसफॉर्म विशेषता का उपयोग करके जीडीएएल के साथ इसे पूरा कर सकते हैं - मैं एक अजगर उदाहरण प्रदान कर सकता हूं। रूपांतरण को 2 बैंड जियोटीफ़ (Band1 - LAT, Band2 - LON) में प्री-रेंडर किया जा सकता है, लेकिन मुझे आश्चर्य है कि अगर यह मक्खी पर ऐसा करने के लिए अधिक कुशल नहीं होगा। मुझे लगता है कि एक उपयोग मामला मदद करेगा।
जय लौरा

जवाबों:


9

एक सामान्य अर्थ में, एफाइन ट्रांसफॉर्म मापदंडों का उपयोग करें , जो किसी भी रेखापुंज फ़ाइल प्रारूप के साथ उपलब्ध होना चाहिए। GDAL के साथ, यह GetGeoTransform () , या PostGIS ' ST_GeoReference () फ़ंक्शन के साथ उपलब्ध है। इन छह मापदंडों को खोजने के बाद, किसी को केवल यह निर्धारित करने की आवश्यकता है कि वे कौन से हैं, फिर एक फ़ंक्शन को रैखिक स्थान में बदलने के लिए बनाया जा सकता है।

जैसे, पायथन के साथ:

from osgeo import gdal
ds = gdal.Open('myfile.tif')

# unravel GDAL affine transform parameters
c, a, b, f, d, e = ds.GetGeoTransform()

def pixel2coord(col, row):
    """Returns global coordinates to pixel center using base-0 raster index"""
    xp = a * col + b * row + a * 0.5 + b * 0.5 + c
    yp = d * col + e * row + d * 0.5 + e * 0.5 + f
    return(xp, yp)

उदाहरण के लिए, यदि कोई पिक्सेल = 10, पंक्ति = 22 पर पिक्सेल है, तो पिक्सेल केंद्र के लिए वास्तविक दुनिया निर्देशांक हैं:

>>> pixel2coord(10, 22)
(2780000.0, 6162300.0)

ST_Affine () के साथ PostGIS के लिए कुछ इसी तरह पकाया जा सकता है ।


1

यह थोड़ा पुरातन हो सकता है: पिक्सेल को बिंदुओं में परिवर्तित करें, अव्यक्त और लंबे क्षेत्रों को जोड़ें, और अक्षांश और लंबे मानों के साथ आबाद करें।


0

दुनिया फ़ाइल (.tfw) जिसमें एक GeoTIFF शामिल है:

  • मानचित्र इकाइयों / पिक्सेल और में x- दिशा (और y- दिशा) में पिक्सेल आकार
  • ऊपरी बाएँ पिक्सेल के केंद्र का x- समन्वय (और y- समन्वय)। यह आप सभी पिक्सेल के लैट / लो में स्थिति की गणना करने की आवश्यकता है।

2
आप जो वर्णन करते हैं, उसके अलावा, आपको न्यूनतम समन्वय प्रणाली को जानना होगा! (ए दुनिया फ़ाइल इस तरह की जानकारी शामिल नहीं है।)
whuber

1
इसके अलावा, हर जियोफाई में विश्व फाइल नहीं है। एक सच्चे GeoTIFF में हेडर में संग्रहीत जानकारी समन्वयित होती है, एक अलग फ़ाइल में नहीं। हालांकि, शब्द "जियो टीआईएफएफ" अक्सर एक विश्व फ़ाइल के साथ टीआईएफएफ छवियों पर लागू होता है। मुद्दा यह है, हमेशा एक TFW नहीं होगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.