আমি ডেটাবেজে পিক্সেল দ্বারা জিওটিআইএফএফ ফাইল পিক্সেল সঞ্চয় করতে চাই। জিওটিআইএফএফ চিত্রটিতে p পিক্সেলের ল্যাড / লেনের সাথে আমার পিক্সেল মানগুলি সংরক্ষণ করতে হবে। ওটা করা কি সম্ভব?
আমি ডেটাবেজে পিক্সেল দ্বারা জিওটিআইএফএফ ফাইল পিক্সেল সঞ্চয় করতে চাই। জিওটিআইএফএফ চিত্রটিতে p পিক্সেলের ল্যাড / লেনের সাথে আমার পিক্সেল মানগুলি সংরক্ষণ করতে হবে। ওটা করা কি সম্ভব?
উত্তর:
সাধারণ অর্থে, অ্যাফাইন ট্রান্সফর্ম প্যারামিটারগুলি ব্যবহার করুন , যা কোনও রাস্টার ফাইল ফর্ম্যাটের সাথে পাওয়া উচিত। জিডিএএল সহ, এটি গেটজিওট্রান্সফর্ম () , বা পোস্টজিআইএস এর এস T_ জিওরফারেন্স () ফাংশন সহ উপলব্ধ। এই ছয়টি প্যারামিটারগুলি সন্ধান করার পরে, কেবল কোনটি সেগুলি নির্ধারণ করা দরকার, তারপরে লিনিয়ার স্পেসে রূপান্তর করার জন্য একটি ফাংশন তৈরি করা যেতে পারে।
উদাহরণস্বরূপ, পাইথন সহ:
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)
অনুরূপ কিছু পোস্টজিআইএস-এর জন্য এসT_Affine () দিয়ে রান্না করা যেতে পারে ।
জিওটিআইএফএফের সাথে যুক্ত বিশ্ব ফাইল (.tfw) এতে রয়েছে: