আমার কাছে ডিটিইডি ফর্ম্যাটে রাস্টারগুলির একটি সেট রয়েছে যা আমি রেস্টার 2pgsql কমান্ড লাইন সরঞ্জামটি ব্যবহার করে পোস্টজিআইএস ডাটাবেসে লোড করি।
প্রতিটি রাস্টার কেবল একটি সারিতে সংরক্ষণ করা হয় এবং মুক্তি এবং রাস্টার ফর্ম্যাটটির মান দ্বারা বর্ণিত।
এখন, আমি একটি ডাটাবেস ফাংশন তৈরি করতে চাই যা একটি বিন্দুর দ্রাঘিমাংশ এবং দ্রাঘিমাংশ নেয় এবং এই পয়েন্টের সাথে পিক্সেলের মান প্রদান করে।
আমার সমস্যাটি হ'ল এটি করতে বেশ সময় লাগে (3-4 সেকেন্ড) কারণ ডেটাবেস ওড্রয়েড বোর্ডে কাজ করে।
আমি জানি যে আমি প্রক্রিয়াকরণটি ডেটাসেটটি বেশ বড় (রাস্টাররা পুরো ইউকে অঞ্চল জুড়ে) তবে পোস্টগ্র্রেএসকিউএল এবং পোস্টজিআইএস-এর সাথে আমি খুব বেশি পরিচিত না বলে আমি সন্দেহ করি যে এটি আরও দ্রুত করা যায় can
আমি এ পর্যন্ত এটিই করেছি:
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)
স্ট্রিং concats পরিবর্তে যদি আপনি যথেষ্ট পুনরাবৃত্তিও হয় কিছু সময় বাঁচাতে পারেন।