मेरे पास DTED प्रारूप में रस्टर्स का एक सेट है, जिसे मैं raster2pgsql कमांड लाइन टूल का उपयोग करके PostGIS डेटाबेस में लोड करता हूं।
प्रत्येक रेखापुंज बस एक पंक्ति में संग्रहीत किया जाता है और छुटकारा और रास्टर प्रारूप के मूल्य द्वारा वर्णित किया जाता है।
अब, मैं एक डेटाबेस फ़ंक्शन बनाना चाहता हूं जो एक बिंदु के देशांतर और अक्षांश लेता है और इस बिंदु के अनुरूप पिक्सेल का एक मान लौटाता है।
मेरे पास समस्या यह है कि ऐसा करने में काफी समय लगता है (3-4 सेकंड) क्योंकि डेटाबेस ओडायराइड बोर्ड पर काम करता है।
मुझे पता है कि मेरे द्वारा प्रोसेस की जाने वाली डेटासेट काफी बड़ी है (चींटियां पूरे यूके क्षेत्र को कवर करती हैं) लेकिन जैसा कि मैं PostgreSQL और PostGIS से बहुत परिचित नहीं हूं मुझे संदेह है कि यह तेजी से किया जा सकता है।
यह वही है जो मैंने अब तक किया है:
SELECT ST_Value(rast, ST_GeomFromText(CONCAT('POINT(', $1, ' ', $2, ')'), 4326))
FROM (
SELECT * FROM rasters
WHERE rast && ST_GeomFromText(CONCAT('POINT(', $1, ' ', $2, ')'), 4326)
) x;
$1
और $2
क्रमशः लंबे और अव्यक्त हैं।
ST_SetSRID(ST_MakePoint($1, $2),4326)
स्ट्रिंग में पर्याप्त पुनरावृत्तियाँ हैं तो कुछ समय के लिए स्ट्रिंग कॉन्सर्ट के बदले में उपयोग करना आपको बचा सकता है।