অক্ষাংশ / দ্রাঘিমাংশকে কিছু পরিমাণ মিটার অফসেট করার জন্য অ্যালগরিদম


108

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


সুতরাং আপনি একটি গোলক হিসাবে পৃথিবী মডেলিং হতে চান?
আন্ডার ডার্ক

1
হ্যাঁ, আমি <1 কিলোমিটার অফসেটের প্রত্যাশা করার মতো এটি ঠিক থাকবে।
টমাস ও

উত্তর:


107

যদি আপনার স্থানচ্যুতিগুলি খুব দুর্দান্ত না হয় (কয়েক কিলোমিটারেরও কম) এবং আপনি খুঁটিগুলিতে ঠিক না থাকেন তবে দ্রুত এবং ময়লা অনুমানটি ব্যবহার করুন যে y1 দিকের 111,111 মিটার (111.111 কিমি) 1 ডিগ্রি (অক্ষাংশের) এবং X দিকের 111,111 * কোস (অক্ষাংশ) মিটার 1 ডিগ্রি (দ্রাঘিমাংশের)।


3
@ থমাস: আসলে, আপনি খুঁটির খুব কাছাকাছি থাকতে পারেন। আমি ইউটিএম গণনার বিরুদ্ধে 1400 মিটার সমান এক্স- এবং ওয়াই-ডিসপ্লেসমেন্ট ব্যবহার করে পরীক্ষা করেছি (সুতরাং মোট স্থানচ্যুতি 2 কিমি)। ফলাফলগুলি 8.6 মিটার বা আরও ভাল। সবচেয়ে খারাপ অক্ষাংশ (এই দিকনির্দেশ এবং স্থানচ্যুতির পরিমাণের জন্য) ৮১ ডিগ্রি: আপনি উত্তরের দিকে যাওয়ার সাথে সাথে আনুমানিক পরিমাণটি আরও সঠিক হয়ে যায় এবং আপনি 89.6 ডিগ্রি ছাড়িয়ে না যাওয়া পর্যন্ত এর ত্রুটি 10 ​​মিটারের নিচে থাকে!
হোবার

60
ঘটনাচক্রে, 111,111 এর এই যাদু সংখ্যাগুলি কিছু ইতিহাস জেনে মনে রাখা সহজ: ফরাসিরা মূলত মিটারটি সংজ্ঞায়িত করেছিল যাতে 10 ^ 7 মিটার নিরক্ষীয় অঞ্চল থেকে উত্তর মেরু পর্যন্ত প্যারিস মেরিডিয়ান বরাবর দূরত্ব হয়। সুতরাং, 10 ^ 7/90 = 111,111.1 মিটার দুই শতাব্দী আগে ফরাসী জরিপকারীদের সক্ষমতাগুলির মধ্যে এক ডিগ্রী অক্ষাংশের সমান।
হোবার

3
সুতরাং সূত্রটি দিয়ে যদি আমি 10.0 এন, 10.0 ই বলুন y দিক থেকে 100 মিটার সরানো চাই, তবে আমি কি 100/111111 যুক্ত করব? যদি x দিকের দিকে + 100 মি তে সরানো হয় তবে এটি 100 ÷ (111,111 × (কস 10)) হবে? এই অধিকারটি পেয়েছি তা নিশ্চিত করেই।
থমাস

5
@ থমাস হ্যাঁ, এটা ঠিক। দ্বিতীয় সূত্রটি কীভাবে আপাত এক্স-ডিসপ্লেসমেন্টকে প্রসারিত করে (1 এর চেয়ে কম সংখ্যার দ্বারা বিভাজনের গুণে) যেমনটি করা উচিত, কেননা আপনি নিরক্ষীয় অংশ থেকে খুঁটির দিকে অগ্রসর হওয়ার সাথে সাথে দ্রাঘিমাংশের একটি ডিগ্রি ছোট হয়। একমাত্র সম্ভাব্য এইচটিই আপনার এবং আপনার সফ্টওয়্যার প্ল্যাটফর্মটি "কোস" এর অর্থের সাথে একমত হওয়ার বিষয়টি নিশ্চিত করা: এটি কোস (10) কে 10 ডিগ্রি নয়, 10 ডিগ্রির কোসাইন হিসাবে আরও ভালভাবে ব্যাখ্যা করেছিল ! (যদি তা না হয় তবে 10 ডিগ্রি = 10 * পাই / 180 রেডিয়ান সাধারণ রূপান্তরটি চিত্রিত করে)) এই মুহুর্তে, @ হাকন_ডি দ্বারা প্রদত্ত কোডটি আপনার কাছে বোঝা উচিত।
হোয়াট

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

56

লিডম্যান যেমনটি তার উত্তরে বলেছিলেন উইলিয়ামসের বিমানের সূত্রগুলি একটি অমূল্য উত্স, এবং বাস্তুচ্যুততার জন্য 1 মিটার অবধি 10 মিটারের মধ্যে যথার্থতা বজায় রাখতে আপনার সম্ভবত এর আরও জটিল ব্যবহার করা প্রয়োজন।

তবে আপনি যদি প্রায় 200 মিটারের চেয়ে বেশি পয়েন্টের জন্য 10 মিটারেরও বেশি ত্রুটিগুলি গ্রহণ করতে ইচ্ছুক হন তবে আপনি একটি সরল সমতল ভূমির গণনা ব্যবহার করতে পারেন। আমি মনে করি ত্রুটিগুলি এখনও 1 কিলোমিটার অবধি অফসেটগুলির জন্য 50 মি এরও কম হবে।

 //Position, decimal degrees
 lat = 51.0
 lon = 0.0

 //Earth’s radius, sphere
 R=6378137

 //offsets in meters
 dn = 100
 de = 100

 //Coordinate offsets in radians
 dLat = dn/R
 dLon = de/(R*Cos(Pi*lat/180))

 //OffsetPosition, decimal degrees
 latO = lat + dLat * 180/Pi
 lonO = lon + dLon * 180/Pi 

এটি ফিরে আসা উচিত:

 latO = 51,00089832
 lonO = 0,001427437

7
আমি কেবল উল্লেখ করতে চাই যে এটি যে জবাব আমি দিয়েছি তার সাথে মিল হিসাবে আপনি যদি আমার ডিগ্রি প্রতি 111,111 মিটার মান 111,319.5 দ্বারা প্রতিস্থাপন না করেন। আপনার মান উচ্চতর অক্ষাংশে কিছুটা ভাল তবে নিম্ন অক্ষাংশে (0 থেকে প্রায় 40 ডিগ্রি পর্যন্ত) কিছুটা খারাপ। উভয়ই মান নির্ভুলতার বর্ণিত প্রয়োজনীয়তা পূরণ করে।
হোবল

1
কোড সরবরাহের জন্য +1। মনে রাখবেন এটি আপনার সন্দেহের চেয়ে বেশি নির্ভুল (ত্রুটিটি সাধারণত 2000 মিটারের চেয়ে 5 মিটারের কম)।
হুবুহু

1
আমি ভাবলাম যে আমার উত্তরে আমার একটি মন্তব্য যুক্ত করা উচিত কিনা যে এটি আর এর মান বাদে আপনার কাছে একটি অভিন্ন সমাধান, তবে ব্রেভিটি কারণে এড়িয়ে গিয়েছিল। যখন এটি নির্ভুলতার দিকে আসে আপনি ততক্ষণ ঠিক থাকবেন যতক্ষণ না আপনি সিস্টেমে কোনও ঘূর্ণন ত্রুটি যুক্ত করবেন না। স্থানীয় অনুমানিত স্থানাঙ্ক ব্যবস্থায় পরিমাপ করা অফসেটগুলি ব্যবহার করে আবর্তনীয় ত্রুটিগুলি বেশ বড় হতে পারে।
haakon_d

1
এটি একটি দুর্দান্ত পয়েন্ট: আমরা স্পষ্টতই ধরে নিয়েছি এক্স-ডিসপ্লেসমেন্টটি কমপক্ষে সত্যিকারের পূর্ব-পশ্চিমের নিকটে এবং ওয়াই-স্থানচ্যুতি উত্তর-দক্ষিণের খুব কাছাকাছি। যদি তা না হয় তবে তাদের ল্যাট-লেনের সমতুল্য গণনা করার আগে তাদের সমতুল্য EW এবং NS স্থানচ্যুতিতে পরিণত করা উচিত (কেবল "পূর্বাঞ্চল" এবং "উত্তরিংস" নয়)।
শুক্র

এভিয়েশন সূত্র সমীকরণের দূরত্বের প্যারামিটারটি রেডিয়ানে হয়, যেমন (দূরত্ব / ব্যাসার্ধের-পৃথিবী)।
ব্যবহারকারী 1089933

23

আমি দেখতে পেয়েছি যে এভিয়েশন সূত্র, এখানে এই ধরণের সূত্র এবং অ্যালগরিদমের জন্য দুর্দান্ত। আপনার সমস্যার জন্য, "ল্যাট / দীর্ঘ প্রদত্ত রেডিয়াল এবং দূরত্ব" দেখুন: এখানে

মনে রাখবেন যে এই অ্যালগরিদম আপনার ব্যবহারের জন্য কিছুটা জটিল হতে পারে, আপনি যদি ত্রিকোণমিতির ফাংশনগুলির ব্যবহার কম রাখতে চান ইত্যাদি etc.


এই জন্য ধন্যবাদ - আদর্শ দেখায়। যদিও দূরত্বটি মিটারে বা অন্য কোনও পরিমাপে রয়েছে তা আমি বের করতে পারি না।
থমাস

2

প্রথমে পয়েন্টটি প্রজেক্ট করার জন্য এটি বোধগম্য হতে পারে। আপনি এই সিডো কোড-এর মতো কিছু তৈরি করতে পারেন:

falt_coordinate = latlon_to_utm(original_koordinate)
new_flat_coordinate = flat_coordinate + (x,y)
result_coordinate = utm_to_latlon(new_flat_coordinate)

যেখানে (x, y) হল পছন্দসই অফসেট।

আপনার ইউটিএম ব্যবহার করার দরকার নেই, কোনও ফ্ল্যাট সমন্বয় ব্যবস্থা রয়েছে যা আপনার অঞ্চলে বোঝায়।

আপনি কোন সফ্টওয়্যার নিয়ে কাজ করছেন?


0

আমি গুগল ম্যাপে একটি সাধারণ কাস্টম মানচিত্র তৈরি করেছি যা স্বীকৃত উত্তরের (1/111111 == এক মিটার) দ্বারা উল্লিখিত অনুমানের অ্যালগরিদমকে চিত্রিত করে। এখানে এটি দেখতে এবং খেলতে নির্দ্বিধায়:

https://drive.google.com/open?id=1XWlZ8BM00PIZ4qk43DieoJjcXjK4z7xe&usp=sharing

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

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