অক্ষাংশ এবং দ্রাঘিমাংশকে কতটা সঠিকভাবে সঞ্চয় করতে হবে?


108

আমি এই প্রশ্নটি এখানে পড়ছিলাম:

এসকিউএল ডাটাবেসে অক্ষাংশ এবং দ্রাঘিমাংশের ডেটা সংরক্ষণ করার সময় কোন ডেটাটাইপ ব্যবহার করবেন?

এবং মনে হয় সাধারণ sensক্যমত্য হ'ল ডেসিমাল (9,6) ব্যবহার করার উপায়। আমার জন্য প্রশ্নটি হল, আমার এটির কতটা সঠিক প্রয়োজন?

উদাহরণস্বরূপ, গুগলের এপিআই এর ফলাফল যেমন:

"lat": 37.4219720,
"lng": -122.0841430

-122.0841430 এর মধ্যে আমার কত সংখ্যার দরকার? আমি বেশ কয়েকটি গাইড পড়েছি তবে এগুলি বের করার জন্য আমি তাদের মধ্যে যথেষ্ট ধারণা করতে পারি না।

আমার প্রশ্নে আরও সুনির্দিষ্ট হওয়ার জন্য: আমি যদি সঠিক অবস্থানের ৫০ ফুটের মধ্যে সঠিক হতে চাই তবে আমার কত দশমিক পয়েন্ট সংরক্ষণ করতে হবে?

সম্ভবত আরও ভাল প্রশ্ন আসলে একটি অ-প্রোগ্রামিং প্রশ্ন হতে পারে তবে এটি হবে: প্রতিটি দশমিক পয়েন্ট আপনাকে আরও কতটা সঠিক দেয়?

এটা কি সহজ?

  1. তালিকাবদ্ধ
  2. x00 = 6000 মাইল
  3. xx0 = 600 মাইল
  4. xxx = 60 মাইল
  5. xxx.x = 6 মাইল
  6. xxx.xx = .6 মাইল
  7. ইত্যাদি?

7
স্থানাঙ্কগুলির নির্ভুলতা এই স্থানাঙ্কগুলি কোথায় রয়েছে তার উপর নির্ভর করে, কারণ গ্রহটির পৃষ্ঠটি একটি নিখুঁত গোলক নয় এবং খুঁটি থেকে দূরত্বও একটি মেজর মেজর ফ্যাক্টর। যদিও 3 দশমিক স্থানে প্রায় 120 মিটার / 400 ফুট হয়। 4 দশমিক 12 মিমি / 40 ফিট ইত্যাদি হবে ...
মার্ক বি বি

4
: জিআইএস stackexchange এই প্রশ্ন দেখতে পাবেন gis.stackexchange.com/questions/8650/...
Flimm

উত্তর:


197

নিরক্ষীয় অঞ্চলে দশমিক স্থানের তুলনায় নির্ভুলতা

decimal  degrees    distance
places
-------------------------------  
0        1.0        111 km
1        0.1        11.1 km
2        0.01       1.11 km
3        0.001      111 m
4        0.0001     11.1 m
5        0.00001    1.11 m
6        0.000001   0.111 m
7        0.0000001  1.11 cm
8        0.00000001 1.11 mm

রেফ: https://en.wikedia.org/wiki/Decimal_degrees#Precision


4
এগুলি যদি নিরক্ষীয় অঞ্চলে থাকে তার মানে কি এইগুলি সবচেয়ে খারাপ ক্ষেত্রে ত্রুটি?
লিথ

6
আসলে নিরক্ষীয় স্থান সেরা। একটি দ্রাঘিমাংশ এবং এক দ্রাঘিমাংশ ডিগ্রিটি নিরক্ষীয় অঞ্চলে (69 মাইল) একই আকার, তবে একটি দ্রাঘিমাংশের এক ডিগ্রি শূন্যে সঙ্কুচিত হয় কারণ এটি মেরুগুলির উভয়ের কাছে পৌঁছায়। এখানে একটি খুব সুন্দর ব্যাখ্যা এখানে দেওয়া হয়েছে: nationalatlas.gov/articles/mapping/a_latlong.html#four
codingoutloud

11
@ কোডিংআউটলৌড যা এই সবচেয়ে খারাপ ক্ষেত্রে ত্রুটি করবে। বা পেডেন্টিক হতে, সমুদ্রপৃষ্ঠে ল্যাট / লম্বা ব্যবহারের জন্য এগুলি সবচেয়ে খারাপ ক্ষেত্রে ত্রুটি। 6,378 মিটার উচ্চতায়, ত্রুটিটি 0.1% দ্বারা বৃদ্ধি পায়।
স্কট বি

@ কোডিংআউটলোড: সেই লিঙ্কটি সম্ভবত আপাতত উপস্থিত নেই :(
টম স্ট্যামবাহ

4
: @Tom Stambaugh আছে: web.archive.org যে জন্য web.archive.org/web/20070810120810/http://nationalatlas.gov/...
স্টিফান Steiger

19
+----------------+-------------+
|    Decimals    |  Precision  |
+----------------+-------------+
|    5           |  1m         |
|    4           |  11m        |
|    3           |  111m       |
+----------------+-------------+

আপনি যদি 50 ফুট (15 মি) যথাযথতা চান তবে 4 সংখ্যার জন্য যান। তাইdecimal(9,6)


9
আপনি যদি এসকিউএল সার্ভার ব্যবহার করেন ... এটি লক্ষণীয় যে 1-9 এর যথার্থতা 5 বাইট ব্যবহার করে সুতরাং আপনি দশমিকের পরিবর্তে দশমিক (9,6) ব্যবহার করতে পারেন (7,4) এবং উচ্চতর নির্ভুলতার সুবিধা নিতে পারেন যেহেতু তারা উভয়ই একই পরিমাণে জায়গা দখল করে।
থিও

অক্ষাংশ, ব্যবহারের জন্য (8,6)(অথবা (6,4)একটি বাইট (মাইএসকিউএল সংরক্ষণ সংরক্ষণ করতে)।
রিক জেমস

15

আমি ডেটাবেস ডিজাইন করেছি এবং কিছুক্ষণের জন্য এই প্রশ্নটি অধ্যয়ন করছি। আমরা ওরাকল ব্যাকএন্ড সহ একটি অফ-শেল্ফ অ্যাপ্লিকেশন ব্যবহার করি যেখানে 17 দশমিক স্থানের অনুমতি দেওয়ার জন্য ডেটা ক্ষেত্রগুলি সংজ্ঞায়িত করা হয়েছিল। হাস্যকর! এটি এক ইঞ্চি হাজারে। বিশ্বের কোনও জিপিএস উপকরণ এটি সঠিক নয় that সুতরাং আসুন 17 দশমিক স্থান একপাশে রেখে ব্যবহারিক ব্যবহারের সাথে মোকাবিলা করুন। সরকার গ্যারান্টি দেয় যে তাদের সিস্টেমটি "একটি" সবচেয়ে খারাপ ক্ষেত্রে "95% আত্মবিশ্বাসের স্তরে 7.8 মিটার নির্ভুলতার সিডুয়েঞ্জিংয়ের পক্ষে ভাল" তবে তারপরে প্রকৃত এফএএ (তাদের উচ্চ মানের সরঞ্জাম ব্যবহার করে) জিপিএস রিডিংগুলি সাধারণত ভাল হতে দেখায় এক মিটারের মধ্যে

সুতরাং আপনাকে নিজেকে দুটি প্রশ্ন জিজ্ঞাসা করতে হবে: 1) আপনার মূল্যবোধের উত্স কী? 2) ডেটা কীসের জন্য ব্যবহার করা হবে?

সেল ফোনগুলি বিশেষভাবে নির্ভুল নয় এবং গুগল / ম্যাপকুয়েস্ট রিডিংগুলি সম্ভবত 4 বা 5 দশমিকের চেয়ে ভাল। একটি উচ্চ মানের জিপিএস উপকরণ আপনাকে 6 (মার্কিন যুক্তরাষ্ট্রের মধ্যে) পেতে পারে। তবে এর চেয়ে বেশি ক্যাপচার করা টাইপিং এবং স্টোরেজ স্পেসের অপচয়। তদ্ব্যতীত, যদি মানগুলিতে কোনও অনুসন্ধান করা হয়, তবে এটি ব্যবহারকারীর পক্ষে জানা ভাল 6 যে তার / তার সর্বাধিক সন্ধান করা উচিত (স্পষ্টত যে কোনও সন্ধানের মান সন্নিবেশ করানো উচিত ডেটা মান হিসাবে অনুসন্ধানের মতো একই নির্ভুলতায় গোল করা উচিত) )।

তদুপরি, আপনি যা করতে যাচ্ছেন তা হ'ল গুগল ম্যাপের কোনও অবস্থান দেখার বা এটি সেখানে পৌঁছানোর জন্য কোনও জিপিএসে রেখে দেওয়া, চার বা পাঁচটি প্রচুর।

আমাকে আশেপাশের লোকদের এই সমস্ত অঙ্কটিতে প্রবেশ করতে হবে। এবং তারা ঠিক কোথায় এই পরিমাপ গ্রহণ করছে? সামনের দরজার গিঁট? সামনে মেলবক্স? বিল্ডিং কেন্দ্র? সেল টাওয়ার শীর্ষ? এবং ... সবাই কি একই জায়গায় একই জায়গায় নিচ্ছেন?

একটি ভাল ডাটাবেস ডিজাইন হিসাবে, আমি ব্যবহারকারীর কাছ থেকে সম্ভবত পাঁচ দশকের বেশি দশকের জন্য মানগুলি গ্রহণ করব, তারপরে ধারাবাহিকতার জন্য কেবল পাঁচটি ক্যাপচার করব [সম্ভবত ছয়টি যদি আপনার যন্ত্রগুলি ভাল থাকে এবং আপনার শেষ ব্যবহারটি ওয়ারেন্ট দেয়]।


4
যদিও আমি সম্মত হই যে ১ digit টি সংখ্যা খুব বেশি, আমি পরামর্শ দিচ্ছি যে ডেটা পোস্ট-প্রসেস করা হতে চলেলে 6 খুব কম হয়। ব্যাসার্ধের ক্যোয়ারির মতো জিনিসগুলি করার সময় ("এই বিন্দুর 0.5 মাইল ব্যাসার্ধের মধ্যে উত্তর বৈশিষ্ট্য"), ত্রুটিগুলি - কাটা কাটা সহ - বড় করা হয়। যদি আপনার যেমন কোয়েরির আউটপুটটিতে 6 দশমিক সংখ্যার প্রয়োজন হয়, তবে ইনপুটটি উল্লেখযোগ্যভাবে আরও দিয়ে শুরু করা উচিত। আমাদের দোকান ডেসিমাল (18,15) ব্যবহার করে। আমাদের লক্ষ্যটি নিশ্চিত করে যে ডিবি স্থানিক গণনার যথার্থতার সীমাবদ্ধ ফ্যাক্টর নয়।
টম স্ট্যামবোগ

Dec দশমিক স্থানের বাইরে যাওয়া আজকের জিপিএস উপগ্রহের উপলব্ধ নির্ভুলতার বাইরে চলেছে। পোস্ট প্রসেসিং তাত্পর্যপূর্ণ পরিমাণের পরিচয় দেবে না। DECIMAL(18,15)9 বাইট লাগে।
রিক জেমস

11

অক্ষাংশের প্রতিটি ডিগ্রির মধ্যকার দূরত্ব পৃথক হতে পারে কারণ পৃথিবীর আকৃতি এবং মেরুগুলির কাছাকাছি যাওয়ার সাথে সাথে প্রতিটি দ্রাঘিমাংশের মধ্যে দূরত্ব আরও কম হয়। সুতরাং নিরক্ষরেখার কথা বলি, যেখানে প্রতিটি ডিগ্রির মধ্যবর্তী অক্ষাংশের জন্য 110.574km এবং দ্রাঘিমাংশের জন্য 111.320km হয়।

50 ফুট 0.01524km, তাই:

  • 0.01524 / 110.574 = 1/7255 অক্ষাংশের একটি ডিগ্রি
  • 0.01524 / 111.320 = 1/7304 দ্রাঘিমাংশের একটি ডিগ্রি

আপনার চার অঙ্কের স্কেল দরকার, মোট সাত অঙ্কের যথাযথতার সাথে দশমিক দশম ডিগ্রি পর্যন্ত যেতে যথেষ্ট।

DECIMAL(7,4) আপনার প্রয়োজনের জন্য প্রচুর হতে হবে।


5

একটি গোলকের বিভিন্ন অংশ এবং তির্যক দূরত্বকে বিবেচনা করে এখানে যথার্থতার একটি টেবিল উপলব্ধ:

   Datatype           Bytes       resolution
   ------------------ -----  --------------------------------
   Deg*100 (SMALLINT)     4  1570 m    1.0 mi  Cities
   DECIMAL(4,2)/(5,2)     5  1570 m    1.0 mi  Cities
   SMALLINT scaled        4   682 m    0.4 mi  Cities
   Deg*10000 (MEDIUMINT)  6    16 m     52 ft  Houses/Businesses
   DECIMAL(6,4)/(7,4)     7    16 m     52 ft  Houses/Businesses
   MEDIUMINT scaled       6   2.7 m    8.8 ft
   FLOAT                  8   1.7 m    5.6 ft
   DECIMAL(8,6)/(9,6)     9    16cm    1/2 ft  Friends in a mall
   Deg*10000000 (INT)     8    16mm    5/8 in  Marbles
   DOUBLE                16   3.5nm     ...    Fleas on a dog

- http://mysql.rjweb.org/doc.php/latlng# प्रतिनिधित्व_চয়েজ


3

ভাসমান পয়েন্টের মান সংরক্ষণ করবেন না। আপনি যখন ধরে নিতে পারেন যে সেগুলি সঠিক, তারা তা নয়। তারা একটি আনুমানিক হয়। এবং এটি দেখা যায় যে বিভিন্ন ভাষার ভাসমান পয়েন্ট তথ্য "পার্সিং" করার বিভিন্ন পদ্ধতি রয়েছে। এবং বিভিন্ন ডেটাবেজে মান আনুমানিক প্রয়োগের বিভিন্ন পদ্ধতি রয়েছে।

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


FLOATএবং DOUBLE, এই প্রসঙ্গে আপনি বর্ণিত কিছু সমস্যা থেকে ভোগেন না।
রিক জেমস

@ রিকজেমস আপনি যথেষ্ট পরিমাণে "এই প্রসঙ্গ" নির্দিষ্ট করে নি। যদি আপনার অর্থ হয়, কঠোরভাবে দুটি ডিবি কলামে একটি মান সঞ্চয় করা হয়, তবে সম্ভবত। যাইহোক, প্রদত্ত মানগুলি কেবল ডিবি কলামগুলিতে অব্যবহৃত থাকে না, এই মানগুলির বিরুদ্ধে (নৈকট্য) কোয়েরি লেখা থাকবে এমন অন্তর্নিহিত ধারণা। এবং এই মোটামুটি বাস্তববাদী অনুমানকে ধরে রাখা এর অর্থ এটির সমস্ত ইস্যু একটি অবিশ্বাস্য সান্নিধ্য হিসাবে ধরে রাখা।
বিশৃঙ্খল

4
যদি একটি FLOATমান এবং 'পরবর্তী' মান একে অপরের সাথে মানের এত কাছাকাছি হয় যে আপনি অন্য একটি শহর (বা যানবাহন বা ব্যক্তি বা চঞ্চল) বলতে না পারেন, তবে বৃত্তাকার এবং উপস্থাপনের ত্রুটি কোনও বিষয় নয়। এদিকে, '=' এর সাথে দুটি FLOATs( DOUBLEsবা আনুমানিক DECIMALs) তুলনা করা প্রায় সবসময়ই বোকামি ।
রিক জেমস

আপনি বিন্দু অনুপস্থিত মনে হচ্ছে। যে কোনও প্রয়াস করা ক্যোয়ারী স্পষ্টভাবে না হলে সমানভাবে স্পষ্টভাবে ব্যবহার করতে চলেছে। এবং এটি ধরে নিয়েছে যে আপনি মানগুলি সহ অন্যান্য স্তর এবং ভাষাগুলিতে যাচ্ছেন না, এসকিউএল সার্ভারের ভিতরে কঠোরভাবে অবস্থান করছেন। এসকিউএল সার্ভারের জন্য এটির
২০০৯

আমি দুঃখিত, আমি ভেবেছিলাম প্রশ্নটি ট্যাগ হয়েছে [mysql], এসকিউএল সার্ভার নয়।
রিক জেমস

2

আপনি যদি গুগল ম্যাপে অবস্থানগুলি ক্লিক করেন তবে আপনি 7 দশমিক স্থান সহ অক্ষাংশ এবং দ্রাঘিমাংশ পাবেন

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