আমি বর্তমানে আর্কজিআইএসে কনগ্রিড জলবায়ু ডেটা (সার্ফার গ্রিড ascii, ".grd" ফাইল হিসাবে সরবরাহ করা) আমদানি করার জন্য কাজ করছি। গ্রিডটি আকারে 125 কলাম দ্বারা 95 টি সারি। মেটাডেটা উত্সের দীর্ঘ / দীর্ঘতর (নীচের বাম কোণে), কোষের আকার (50 কিলোমিটার) পাশাপাশি কেন্দ্রীয় মেরিডিয়ান (110 ডিগ্রি ডাব্লু) এবং উত্সের অক্ষাংশ (60 ডিগ্রি এন) সহ পোলার স্টেরিওগ্রাফিক হিসাবে নোট প্রজেকশন সরবরাহ করে।
প্রথমে .grd কে .ascii এবং .flt হিসাবে অসফল হিসাবে রূপান্তর করার চেষ্টা করার পরে, আমি GDAL ব্যবহার করতে পেরেছি ব্যাপ্তি এবং প্রক্ষেপণ নির্ধারণ করতে, তবে ডেটাসেটটি সঠিকভাবে অঞ্চলটির সীমানার সাথে সামঞ্জস্য করে না। নীচের চিত্র দেখুন।
পোলার স্টেরিওগ্রাফিকের জন্য কি কোনও গৃহীত জিওট্রান্সফর্মেশন রয়েছে যা এই সারিবদ্ধতার অভাবকে ব্যাখ্যা করতে পারে?
উদাহরণস্বরূপ, একটি নির্দিষ্ট রূপান্তর ফ্যাক্টর বা ঘূর্ণন যা আমার ব্যবহার করা উচিত?
ডেটাसेट থেকে একটি উদাহরণ ফাইল এখানে: "t201113.grd"
আমি বর্তমানে জিডিএল-তে ব্যবহৃত কোডটি এখানে দিচ্ছি
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], ইউনিট [ "ডিগ্রী", 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", 50000,0]] '
এবং ইনপুট জিওটান্সফর্ম:
(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)
লাত, গ্রিডের দীর্ঘস্থায়ী স্থানাঙ্কগুলিও সরবরাহ করা হয় এবং যখন প্রস্তাবিত স্থানাঙ্ক ব্যবস্থায় দেখা হয় তখন নীচের মত দেখায়। যখন জিওট্রান্সফর্মটি নীচের বাম (হলুদ) বা উপরের ডান (গোলাপী) কর্ডিনেটের সমন্বয়গুলি দ্বারা সংজ্ঞায়িত করা হয়, আমি কার্যকরভাবে সীমাটি নির্ধারণ করতে পারি, তবে রাস্টার জুড়ে প্রান্তিককরণের সমস্যাগুলি রয়ে গেছে।