মানচিত্রের দ্রাঘিমাংশ / দ্রাঘিমাংশকে পিক্সেলে রূপান্তর করুন


11

আমি এখান থেকে একটি মানচিত্র আছে । আমি মানচিত্রে স্বেচ্ছাসেবী লম্বা / লম্বা জোড়াটিকে পিক্সেলগুলিতে রূপান্তর করতে সক্ষম হতে চাই (বিপরীত রূপান্তর করার ক্ষমতাও রয়েছে)। মানচিত্রগুলি .tfw ফাইল এবং প্রজেকশন তথ্য নিয়ে আসে, এটি এখানে:

0.02222222222222 
0.00000000000000 
0.00000000000000 
-0.02222222222222 
-180.00000000000000 
90.00000000000000

এবং অভিক্ষেপ তথ্য:

Projection: Plate Carree aka Geographic or "LatLong"
Earth ellipsoid: Sphere, radius 6370997 m
Datum: WGS84
Extent: 180 West to 180 East, 90 North to 90 South
Size: 16,200 height samples wide x 8,100 high
Resolution: 2.47 km/pixel

আমি কার্টোগ্রাফি-সম্পর্কিত স্টাফগুলিতে সম্পূর্ণ নতুন এবং আমি যতদূর জানতে পেরেছি আমার প্রথমে ডাব্লুজিএস ৮৪ (দীর্ঘ / লম্বা জোড়া) থেকে ভৌগলিক প্রক্ষেপণে রূপান্তর করা উচিত (তারা কি একই নয়?)। আমার কাছে মনে হয় যে তারা প্রকৃতপক্ষে একই, তবে উপরের প্রজেকশন তথ্যের ক্ষেত্রে গোলক ব্যাসার্ধ 63৩70০৯77 এবং প্লেট ক্যারি প্রক্ষেপণের জন্য আমি খুঁজে পেয়েছি স্পটিয়ালফারেন্স ডটকম পৃষ্ঠা থেকে পৃথক। যাইহোক, আমি ডটস্পটিয়াল পেয়েছি ro প্রজেকশন লাইব্রেরি নিম্নলিখিত কোড সহ আমার জন্য এটি করতে পারে:

    var kievCoordinates = new[] { 50.4546600, 30.5238000 };
    var z = new[] { 1.0 };

    var wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984;
    var dest = new ProjectionInfo();
    dest.ParseEsriString(
        "PROJCS[\"WGS 84 / Plate Carree (deprecated)\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]],PROJECTION[\"Equidistant_Cylindrical\"],PARAMETER[\"central_meridian\",0],PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]");

    Reproject.ReprojectPoints(kievCoordinates, z, wgs84, dest, 0, 1);

এবং তারপরে আমি অবশ্যই ওয়ার্ল্ড ফাইল ব্যবহার করে মানচিত্রে পিক্সেলগুলিতে ফলাফলের স্থানাঙ্কগুলি অনুবাদ করব। আমি নিম্নলিখিত সূত্র সম্পর্কে সচেতন:

উইকিপিডিয়া চিত্র

তবে মনে হয় ওয়ার্ল্ড ফাইলে মিটার নয় ডিগ্রি রয়েছে এবং তাদের সাথে কী করব আমি জানি না। সাধারণত, আমি কি সঠিক জিনিস করছি? বা আরও সহজ উপায় আছে, আমার তথ্য দেওয়া?


1
ওয়ার্ল্ড ফাইলের ভিত্তিতে, রাস্টার ইউনিট হিসাবে অক্ষাংশ-দ্রাঘিমাংশ এবং ডিগ্রি ব্যবহার করছে using কক্ষের আকার 0.0222 ডিগ্রি। এটি কখনও কখনও সিউডো-প্লেট ক্যারি নামে পরিচিত। প্লেট ক্যারি স্কেল করে মানগুলিকে মিটারে রূপান্তরিত করে। ডেটামের মিশ্রণটিকে ডাব্লুজিএস ৮৮ বলা হয়, তবে ব্যাসার্ধের সাথে একটি গোলক = 6370997 উল্লেখ করা হয়। WKID: 4326 ব্যবহার করার চেষ্টা করছেন।
মকনেডি

@ মেকনেডি আমার মনে হয় যে ওয়ার্ল্ড ফাইলে প্রয়োগ করা উপরের সূত্রটি মিটারের জন্য নকশাকৃত হওয়ায় এটি অর্থবহ কিছু করতে পারে না? WKID: 4326 এর অর্থ কী এবং আমি কোনও ফলাফল ছাড়াই গুগলও জানি না।
দিমিত্রি মার্চুক

উত্তর:


6

স্থানাঙ্কগুলির মধ্যে / পিক্সেল অবস্থানের থেকে / পরিবর্তনের মধ্যে কোনও রূপান্তর নেই, যেমন: আমরা px ধরে নিই, পাই আপনার মানচিত্রে একটি পিক্সেল অবস্থান, যখন জিওক্স এবং জিওয়েই সত্যিকারের স্থানাঙ্ক। আমাদের সাথে xOff, yFff টিএফডব্লু থেকে নেওয়া হয়েছে, -180, 90 প্লাস xsize এবং ysize সহ 0.02222222222222, -0.02222222222222

pix2coord(px,py)
    geox = xOff + (px * xsize)
    geoy = yOff + (py * ysize)

coord2pix(geox, geoy)
    px = (geox - xOff) / xsize 
    py = (geoy - yOff) / ysize

উপরের দুটি সিউডো ফাংশন প্রদত্ত পিক্সেল পজিশনের জন্য আমাদের জিওলোকেশন (জিওক্স, জিওয়) বলুন এবং আমি মনে করি যে আপনি যা চেয়েছিলেন তা প্রদত্ত ভূতলের জন্য পিক্সেল অবস্থান। এটি কেবলমাত্র সম্ভব, কারণ "প্লেট ক্যারি" একটি ভৌগলিক ডিগ্রি দ্রাঘিমাংশ এবং অক্ষাংশের সাথে বিমানের মেট্রিক স্থানাঙ্ক হিসাবে গণনা করে (একটি আয়তক্ষেত্র স্থানাঙ্ক ব্যবস্থার মধ্যে)। আপনি যদি পৃথিবীর গ্র্যাচিকিউল আঁকেন তবে আপনি সমান আকারের বর্গক্ষেত্র পাবেন (এবং এটিই আপনার মানচিত্রের চিত্রটি পছন্দ করে)। আমার ত্রুটিগুলি সম্পাদনার পরে, এখন আমি দীর্ঘ / ল্যাটের সাথে পেয়েছি (50.4546600, 30.5238000) আমি পেয়েছি (10370.459803704598, 2676.42902676429)। যদি আপনার পিক্সেল ইন্ডেপসের প্রয়োজন হয় তবে এটি পূর্ণসংখ্যায় কাস্ট করুন।


px = (geox + xOff) / xsize, আপনার উদাহরণটি (50.4546600 + (-180)) / 0.02222222222222হ'ল যা নেতিবাচক এবং মোটামুটি সমান 5830। যা নেই 2113.3936363636362। দয়া করে আরও ব্যাখ্যা করুন, বা উত্তরটি সংশোধন করুন।
দিমিত্রি মার্চুক

আসল কোডটি কিছুটা নির্ভরশীলতার সাথে জাভাস্ক্রিপ্টে ছিল, আমি যাচাই করবো ...
আন্দ্রেয়াস মুলার

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