পোলার স্টেরিওগ্রাফিকের জন্য জিওট্রান্সফর্মেশন?


16

আমি বর্তমানে আর্কজিআইএসে কনগ্রিড জলবায়ু ডেটা (সার্ফার গ্রিড 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)

লাত, গ্রিডের দীর্ঘস্থায়ী স্থানাঙ্কগুলিও সরবরাহ করা হয় এবং যখন প্রস্তাবিত স্থানাঙ্ক ব্যবস্থায় দেখা হয় তখন নীচের মত দেখায়। যখন জিওট্রান্সফর্মটি নীচের বাম (হলুদ) বা উপরের ডান (গোলাপী) কর্ডিনেটের সমন্বয়গুলি দ্বারা সংজ্ঞায়িত করা হয়, আমি কার্যকরভাবে সীমাটি নির্ধারণ করতে পারি, তবে রাস্টার জুড়ে প্রান্তিককরণের সমস্যাগুলি রয়ে গেছে।

এখানে চিত্র বর্ণনা লিখুন


আপনি যদি আর্কজিআইএস ব্যবহার করে থাকেন তবে স্টেরিওগ্রাফিক উত্তর মেরুতে স্যুইচ করুন এবং স্ট্যান্ডার্ড সমান্তরালটি 60.0 এ সেট করুন। আরকজিআইএস স্টেরিওগ্রাফিক বাস্তবায়ন একটি আদর্শ প্যারালিয়ালের চেয়ে স্কেল ফ্যাক্টর ব্যবহার করে কারণ প্রজ যে কোনও জায়গায় কেন্দ্রিক হতে পারে।
মেকনেডি

ধন্যবাদ @ মাকেনেডি - আপনি কি "উত্তর মেরু স্টেরিওগ্রাফিক" প্রকল্প (ডাব্লুকেআইডি 102018) বলতে চান? আমি এই প্রক্ষেপণটি ব্যবহার করে উত্স এবং কেন্দ্রীয় মেরিডিয়ান মানগুলির অক্ষাংশ সেট করেছি এবং এখনও একই সমস্যা রয়েছে। সম্ভবত আপনি অন্য একটি প্রক্ষেপণ উল্লেখ করছেন?
jsnider

না, আপনার যেখানে প্রক্ষেপণ (পদ্ধতি) সেখানে স্টেরিওগ্রাফিক_নर्थ_পোল প্রয়োজন। আমি মনে করি না যে আমাদের সঠিক পিসিএস আছে; 3995 বা 3413. থেকে পরিবর্তন চেষ্টা
mkennedy

1
মেটাডেটা নোট করে যে "ফাইল grid_pnt_lls.txt ফাইলটি প্রতিটি এক্স / ওয়াই (0,0 = গ্রিডের এসডাব্লু কোণে) জন্য ল্যাট / ল্যাংগগুলি তালিকাভুক্ত করে।" এই ফাইলটি হাতে নিয়ে আপনি এই গ্রিডটিকে আপনার যে কোনও স্থানাঙ্ক সিস্টেমে পুনরায় প্রজেক্ট করতে পারেন এবং সেখান থেকে এগিয়ে যেতে পারেন।
whuber

1
আমরা পরীক্ষার জন্য ভেক্টর স্তরটি কোথায় ডাউনলোড করতে পারি?
ফরিদ চেরাগি

উত্তর:


2

খুব দীর্ঘ একটি মন্তব্যের জন্য, এই সংসর্গে হয় @ Matej এর উত্তর

  1. আর্কজিআইএসে ".grd" ডেটা যুক্ত করুন।
  2. "রাস্টার থেকে অন্য ফর্ম্যাট" ফাংশনটি ব্যবহার করুন এবং আপনার .grd ফাইলটিকে ESRII GRID ফর্ম্যাটে রূপান্তর করুন। এটি গুরুত্বপূর্ণ কারণ আর্কজিআইএস-এর বেশিরভাগ রাস্টার ফাংশনগুলি কেবল এই ফর্ম্যাটটির জন্য অ্যাক্সেসযোগ্য হয় বা অন্য ফর্ম্যাটে আপনি যখন এটি ব্যবহার করেন তখন সাধারণত এটি খুব ধীর হয়।

  3. যেহেতু এটি ইতিমধ্যে প্রজেকশন ফাইলটির সাথে সম্পর্কিত associated নতুন রূপান্তরিত ডেটা প্রজেক্ট করার পরিবর্তে এর অভিক্ষেপটি সংজ্ঞায়িত করুন। আর্টটুলবক্স> ডেটা ম্যানেজমেন্ট সরঞ্জামসমূহ> প্রজেকশন এবং ট্রান্সফরমেশন> প্রজেকশন সংজ্ঞায়িত করুন। আপনি পূর্বনির্ধারিত পোলার স্টেরিও গ্রাফিক ইএসআরআইআই প্রক্ষেপণে নেভিগেট করতে পারেন এবং দেখতে পারেন যে এর প্যারামিটারগুলি মেটাডেটার প্রদত্ত কোনওটির সাথে মেলে কিনা (এটি হয় না), সুতরাং আপনি @ মেটেজ অনুসারে এটি পরিবর্তন করতে পারবেন। কেবল এখানে - পরিবর্তনের পরিবর্তে, কেন্দ্রীয় মেরিডিয়ান এবং অক্ষাংশের উত্সের পরিবর্তিত এনপিএস প্রজেকশন ভিত্তিতে একটি নতুন তৈরি করুন এবং এটি ডিস্কে সংরক্ষণ করুন, তারপরে নতুন প্রজেকশনে নেভিগেট করুন এবং আপনার প্রজেকশনটি সংজ্ঞায়িত করার সময় এটি ব্যবহার করুন। এর কারণ এটি যখন আপনার ডেটা ফ্রেমের জন্য সমন্বয় ব্যবস্থা সেট করতে আপনি এটি ব্যবহার করতে চান তখন ফ্লাই মডিফিকেশনটি পরে পাওয়া যাবে না,



1

আমি মনে করি না আপনি চিত্রটি পুনঃপ্রক্রিয়া করা প্রয়োজন। কেবলমাত্র নিম্নলিখিতগুলি করুন:

  1. বেসম্যাপের অভিক্ষেপ সংজ্ঞায়িত (সংশোধন) করা
  2. জিওরিফারেন্স (শিফট) নির্দিষ্ট স্থানে চিত্রটি

নোট করুন যে চিত্রটি (জিআরডি) ইতিমধ্যে উত্তর মেরু স্টেরিওগ্রাফিক প্রজেকশনে রয়েছে, যা কেবলমাত্র সেই চিত্রটিটির সাথে একত্রিত করা হবে এমন বেসম্যাপকে কীভাবে সামঞ্জস্য করতে হবে তার ইঙ্গিত দেয়।

পদক্ষেপ 1 :

অরিজিন এবং সেন্ট্রাল মেরিডিয়ান অক্ষাংশের সামঞ্জস্য করতে মূল উত্তর মেরু স্টেরিওগ্রাফিক প্রজেকশন (ডাব্লু কেআইডি: 102018) সংশোধন করুন:

এখানে চিত্র বর্ণনা লিখুন

ধাপ ২:

নিচের বাম কোণটি নির্দিষ্ট স্থানাঙ্ক (ল্যাট, দীর্ঘ) এ সেট করে জিআরডি ফাইলটি জিওরফারেন্স করুন। আপনি জিওরফারেন্সিং আপডেট করার সময় .gdwx ফাইলটি একই ফোল্ডারে তৈরি করা হয়। এসডাব্লু কোণার (40.0451, -129.853) এ নিয়োগ করার সময় ফাইলের বিষয়বস্তু নীচের মত দেখায়:

50000
0
0
-50000
-1730620.4315
2744092.9724

সম্পাদনা করুন: উপরের ওয়ার্ল্ড ফাইলটি সেল আকারের উপর ভিত্তি করে ম্যানুয়ালি সংশোধন করা হয়েছে এবং এসডাব্লু কোণার প্রদত্ত অবস্থানের ভিত্তিতে - 5 ম এবং 6 তম লাইন চিত্রের উপরের-বাম পিক্সেলের গণিত অবস্থান উপস্থাপন করে। চিত্রের অবস্থান কিছুটা বদলেছে।

উপরের মানগুলি চিত্রকে নির্দিষ্ট স্থানে রাখে এবং স্কেলটি সংজ্ঞায়িত করে।

এবং এটি আউটপুট: এখানে চিত্র বর্ণনা লিখুন

যদি এটি যথাযথভাবে সংযুক্ত করা হয়নি বলে মনে হয় তবে আমি চিত্রটির এসডাব্লু কোণার জন্য সরবরাহিত স্থানাঙ্কগুলি নিয়ে প্রশ্ন করব। যদি আপনার চিত্রের এনই কোণার স্থানাঙ্কগুলিতে অ্যাক্সেস থাকে তবে আপনি সেই রূপান্তর পরামিতিগুলি পুনরায় গণনা করতে পারেন যা চিত্রকে দুটি (বা আরও) পয়েন্টের মধ্যে স্কেল করে এবং ঘোরান।


.Gdwx ফাইল একটি বিশ্ব ফাইল ? যদি তা হয় তবে লিঙ্কযুক্ত উইকির নিবন্ধটি উপরের বাম পিক্সেলের লাইন 5 এবং 6 উল্লেখ করে । আপনি কি এটি দক্ষিণ-পশ্চিম (নীচের বাম) পিক্সেলটিতে সেট করার পরামর্শ দিচ্ছেন?
কर्क কুইকেনডাল

না। আমি কেবলমাত্র রিডমি ফাইলটিতে উল্লিখিত হিসাবে এসডাব্লু কোণার অবস্থান নির্দিষ্ট করেছি। ফাইলটির কাঠামোটি বিশ্ব ফাইলের মতো দেখাচ্ছে। এটি আর্কম্যাপে জিওরফারেন্সিং সরঞ্জামটি ব্যবহার করে তৈরি করা হয়েছিল যা সম্ভবত এনডাব্লু কোণার অবস্থান গণনা করে এবং সঞ্চিত করে থাকতে পারে - এখনও চেক করে নি।
মতেজ

1
হ্যাঁ, আমি এখন এটি পরীক্ষা করেছিলাম। .Gdwx এ সঞ্চিত অবস্থানটি উপরের বাম কোণে।
মতেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.