অ্যান্টিমেরিডিয়ান বিস্তৃত ভৌগলিক ডেটা সহ ডেটাবেস এবং এপিআইয়ের জন্য সেরা অনুশীলন


24

ভৌগলিক বৈশিষ্ট্যগুলি (লাইন, বহুভুজ এবং তাদের বহুগুণ সমতুল্য) সংরক্ষণের জন্য সেরা অনুশীলন কী কী যখন এই বৈশিষ্ট্যগুলি অ্যান্টিমেরিডিয়ান (± 180 ° দ্রাঘিমাংশ) বিস্তৃত হয় এবং ক্লায়েন্ট ওয়েব অ্যাপ্লিকেশন থেকে জিওজেএসন হিসাবে প্রেরণ এবং পুনরুদ্ধার করা প্রয়োজন?


আমি historicalতিহাসিক ও পূর্বাভাস ক্রান্তীয় ঘূর্ণিঝড় ট্র্যাক এবং বায়ু রেডিয়ির সাথে কাজ করার জন্য পোস্টগ্র্রেস / পোস্টজিআইএস ডাটাবেসের সমর্থন নিয়ে একটি সার্ভার-সাইড ওয়েব এপিআইয়ের কাজ শুরু করছি। প্রশান্ত মহাসাগরের অনেক ঘূর্ণিঝড়ের অ্যান্টিমিডারডিয়ান অতিক্রম করার দুর্ভাগ্যজনক প্রবণতা রয়েছে, কখনও কখনও তাদের জীবনকালে:

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

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

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

  1. বৈশিষ্ট্য জ্যামিতিতে কোনও পরিবর্তন আনুন এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে অস্পষ্টতা স্থানান্তর করুন।
  2. অ্যান্টিমেরিডিয়ানের বিরতিতে অ্যান্টিমেরিডিয়ান অতিক্রম করে যে কোনও বৈশিষ্ট্যকে একটি বহুগুণ জ্যামিতিতে বিভক্ত করুন । ( জিওজেএসওএন স্পেসিফিকেশন নামের সিআরএসকে সমর্থন করে ))
  3. বিভিন্ন ঘূর্ণিঝড় অববাহিকা বা মহাসাগরীয় অঞ্চলের জন্য অ-বৈশ্বিক অনুমানগুলির সাথে কাজ করুন যার এমন বিরতি নেই
  4. পুরো গ্রহ ঘুরে দেখার মতো ঘূর্ণিঝড়টি কখনই পর্যবেক্ষণ করা হয়নি, ঘূর্ণিঝড়ের স্থানাঙ্কটি দ্রাঘিমাংশের প্রারম্ভিক স্থানটি (90,-90) একটি ৩°০ ডিগ্রি পর্যায় দ্বারা অফসেট করে রাখুন (অন্যকে -১৮০–১৮০ keeping রেখে)
  5. একটি ঘূর্ণিঝড়টি আফ্রিকার দক্ষিণাঞ্চলের দক্ষিণ দিকের দক্ষিণে অত্যন্ত অসম্ভব সম্ভাবনা নিয়ে অনুসন্ধান করে, 30 ° দ্রাঘিমাংশের উপরের বিরতি ব্যবহার করুন (উপরের মানচিত্রের মতো)।
  6. স্থানাঙ্কগুলিকে এন্টিরিমিডিয়ান পাস করে এমন কোনও বৈশিষ্ট্যগুলির জন্য EPSG 4326 , যেমন> 180 ° এবং <-180 of এর বৈধ পরিসীমা ছাড়িয়ে যাওয়ার অনুমতি দিন ।
  7. টপোজেসনের মতো ডেল্টা এনকোডিং (উদাহরণস্বরূপ শুরু করুন (0,-179)এবং তারপরে পরবর্তী স্থানাঙ্কটি -3অক্ষাংশ পশ্চিমে)। পোস্টজিআইএসে ডেটা সংরক্ষণ করার সময় এটি কীভাবে প্রয়োগ করা যায় বা কীভাবে হয় তা আমার কোনও ধারণা নেই তবে ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে ডেটা প্রেরণের জন্য এটি একটি দুর্দান্ত সমাধান।
  8. ভেক্টর স্বরলিপি বা পোলার স্থানাঙ্কের কিছু ফর্ম। (বরং এটি কঠিন এবং অস্বাভাবিক বলে মনে হচ্ছে))

এর মধ্যে আমি ধারণাগুলি 2-5 পছন্দ করি না কারণ তারা জেনেরিক নয়, তবে আমি তাদের পছন্দ করি কারণ তারা আমার বিশেষ প্রয়োগের জন্য কিছুটা বোঝায়। প্রশান্ত মহাসাগরে কেবলমাত্র ডেটা নিয়ে কাজ করার অ্যাপ্লিকেশনগুলির জন্য তারা প্রচুর পরিমাণে অর্থ বোধ করতে পারে, তাই আমি বিকল্প হিসাবে তাদের পুরোপুরি ছাড় দিতে চাই না।

টম ম্যাকউইর্টের ব্লগ থেকে 6 এবং 7 টি ধারণাগুলি তুলে নেওয়া হয়েছে , যা পড়ার পক্ষে মূল্যবান তবে এন্টিমেরিডিয়ান সম্পর্কিত শ্রদ্ধাজনক নয়।

আইডিয়া 4 জিওগ্রাফিকাজিএসGeodesicLinesToGISPython দ্বারা ব্যবহৃত হয় , যা ঘুরে ফিরে fiona.transform.transform_geom360 ° অ্যান্টিমেরিডিয়ান অফসেট ব্যবহার করে । ঘুরেফিরে ফিওনা ওজিআর ব্যবহার করছে -wrapdateline। আমি মনে করি এটি একটি খুব দৃ pre় নজির এবং আসলে বরং জেনেরিক।

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

দুর্ভাগ্যক্রমে জিওজেএসন স্পেসিফিকেশন অ্যান্টিমেরিডিয়ান ইস্যু সম্পর্কে স্পষ্ট নয়। এটি উইকিপিডিয়া থেকে :

অনেক ভৌগলিক সফ্টওয়্যার লাইব্রেরি বা ডেটা ফর্ম্যাট বিশ্বকে একটি আয়তক্ষেত্র হিসাবে প্রজেক্ট করে; খুব প্রায়শই এই আয়তক্ষেত্রটি ঠিক 180 ম মেরিডিয়ানে বিভক্ত হয়। এটি প্রায়শই 180 তম মেরিডিয়ান জুড়ে সাধারণ কাজগুলি (যেমন কোনও অঞ্চল বা একটি লাইন প্রতিনিধিত্ব করে) করা অসম্ভব করে তোলে। কিছু উদাহরণ:

  • জিওজেএসন স্পেসিফিকেশনে তার স্পেসিফিকেশনে ১৮০ তম মেরিডিয়ান হ্যান্ডলিংয়ের কথা উল্লেখ করা হয়নি, যেমন, ১৮০ তম মেরিডিয়ান অতিক্রমকারী লাইনগুলির উপস্থাপনাটিকে সারা বিশ্বে ঘুরে দেখার মতো ব্যাখ্যা করা যেতে পারে।

  • ওপেনস্ট্রিটম্যাপে, অঞ্চলগুলি (রাশিয়ার সীমানার মতো) 180 ম মেরিডিয়ানে বিভক্ত।

আমার পড়াটি হ'ল জিওজেসনের অ্যান্টিমেরিডিয়ান-স্প্যানিং বৈশিষ্ট্যগুলির কোনও বিশেষ মানক উপস্থাপনা নেই এবং এটি ইচ্ছাকৃতভাবে অস্পষ্ট রেখে গেছে (বহু অংশের জ্যামিতি সম্ভবত সমস্যাটি সমাধান করবে)। একইভাবে ওপেনস্ট্রিটম্যাপে অ্যান্টিমেরিডিয়ানে জ্যামিতি বিভাগ রয়েছে, যদিও আমি জানি না যে এই জাতীয় বিভক্ত বৈশিষ্ট্যগুলি মাল্টিপার্ট বা আসলে বিচ্ছিন্ন রেকর্ড রয়েছে কিনা।

এটি বরং সমস্যাবোধ করে, বিশেষত বাউন্ডিং বাক্স তৈরি করার দৃষ্টিকোণ থেকে বা অন্যান্য স্থানিক অনুরোধগুলি যা এই রেখাকে বিস্তৃত করে, তবে পার্সিং এবং স্যানিটাইজিং ইনপুট এবং বৈশিষ্ট্য জ্যামিতির কোনও আপডেট in এই কারণেই আমি একটি সেরা অনুশীলন নির্ধারণ করার চেষ্টা করছি যা আমি মেনে চলতে পারি।


1
এটি সত্যিই একটি ভাল প্রশ্ন, আগে আমি 90 ডিগ্রি থেকে শুরু করে একটি হাতে তৈরি স্থানাঙ্ক সিস্টেম ব্যবহার করেছি তবে আমি কেবল খুব ছোট একটি অঞ্চল নিয়েই উদ্বিগ্ন ছিলাম। যথাযথভাবে 'চারপাশে মোড়ানো' এমন কিছু নেই; আমি অনুমান করছি এটি কারণ যে ১৮০ প্রসারিত কোনও ল্যান্ডমাস (গুরুত্বের) নেই এবং খুব কম লোকই এটির উপরে ম্যাপ করতে হবে পুরো সমস্যাটি খুব কম মনোযোগ পেয়েছে।
মাইকেল শিমসন

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

জিওজেএসন সম্পর্কে কিছু মন্তব্য এখন 1.0 আরসি থেকে পুরানো। একটি উদাহরণ হ'ল জিওজেএসএন- এর সিআরএস সংজ্ঞাগুলি হ্রাস করা হয়েছে ( sgillies.net//2014/08/06/Puning-crs-from-geojson.html )। আমি শেষ পর্যন্ত এটি সম্পাদনা করব।
বর্ণমালা

উত্তর:


7

একটি ডাটা স্টোরেজ এবং বিশ্লেষণ দৃষ্টিকোণ থেকে বিশুদ্ধরূপে কথা বলছেন, geographyPostGIS জন্য টাইপ মনে antimeridian (বেশ কয়েক নকশা লক্ষ্য মধ্যে) সঙ্গে পরিকল্পনা করা হয়েছিল। আছে বিভিন্ন ফাংশন বিশেষভাবে জন্য ডিজাইন করা geographyটাইপ

উদাহরণস্বরূপ, তেভুনি , ফিজি ( গ্রেট সার্কেল ম্যাপারের সাহায্যে ম্যাপ করা ) জুড়ে একটি লাইন স্ট্রিং বিবেচনা করুন , যা এন্টিমিডেরিয়ানকে বিভক্ত করে তোলে:

SELECT ST_Length('LINESTRING(179.9 -17, -179.8 -16.7)'::geography);

এই জিওডাসিকের দৈর্ঘ্য প্রায় 46 কিমি। একইভাবে, এসT_আরিয়া +179 এবং -179 এর মধ্যে দ্রাঘিমাংশ স্থানাঙ্ক সহ, দ্বীপের বহুভুজটিতে সঠিকভাবে কাজ করবে।

কোনও EPSG: 4326 geometryকে geographyটাইপ করে কর্ডিনেটগুলিও সাধারণ করে তোলে , উদাহরণস্বরূপ শেষ স্থানাঙ্কের দ্রাঘিমাংশ> 180:

SELECT ST_AsGeoJSON('LINESTRING (179.9 -17, 180.2 -16.7)'::geography);

NOTICE:  Coordinate values were coerced into range [-180 -90, 180 90] for GEOGRAPHY
                           st_asgeojson
------------------------------------------------------------------
 {"type":"LineString","coordinates":[[179.9,-17],[-179.8,-16.7]]}

geographyপ্রথম উদাহরণে হুবহু একই ধরণে ফিরে রূপান্তরিত হয় তবে এখন জিওএসএন আউটপুট নিয়ে। আপনি বিজ্ঞপ্তিটি অগ্রাহ্য করতে (বা উদাহরণস্বরূপ SET client_min_messages TO WARNING;) চয়ন করতে পারেন এবং সমস্ত ধরণের মজাদার- বর্ণিত জ্যামিতিগুলিকে ধরণের রূপান্তর করতে পারেন geography


geographyপোস্টজিআইএসের বাইরে মানচিত্রে প্রকারগুলি প্রদর্শন করা একটি ভিন্ন গল্প এবং আশা করি আরও ভাল উত্তরগুলি এই দিকটি স্পর্শ করবে।


2
একটি সীমাবদ্ধতা হ'ল কোনও ভূগোলটি 180º এর চেয়ে বেশি / বৃহত্তর হওয়া উচিত নয় ( উন্নত এফএকিউ দেখুন )। যাইহোক, আপনি কেবল ভার্টেক্সেসের জন্য এই নিয়মটি ব্যবহার করতে পারেন এবং এর মতো নির্বোধ কিছু করতে পারেন : LINESTRING(179.9 -17, 60 -16.9, -60 -16.8, -179.8 -16.7)যা সাজান-
মাইক টি

0

অবশ্যই, পছন্দসই উত্তরটি হল (1), ক্লায়েন্টদের "সঠিক জিনিস" করা উচিত। বিবেচনা করার জন্য একটি ভাল বিষয় হ'ল এই কিমিএল ফাইল দ্বারা অ্যান্টার্কটিকা মহাদেশের প্রতিনিধিত্বকারী বহুভুজ

<kml> <Folder> <name>Antarctica</name> <Placemark> <name>Antarctica</name> <Polygon> <tessellate>1</tessellate> <outerBoundaryIs> <LinearRing> <coordinates> -58,-63.1,0 -74,-72.9,0 -102,-71.9,0 -102,-74.9,0 -131,-74.3,0 -163,-77.5,0 163,-77.4,0 172,-71.7,0 140,-65.9,0 113,-65.7,0 88,-66.6,0 59,-66.9,0 25,-69.8,0 -4,-70,0 -14,-71,0 -33,-77.3,0 -46,-77.9,0 -61,-74.7,0 -58,-63.1,0 </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </Placemark> </Folder> </kml>

ডেল্টা এনকোডিং বা সঞ্চারিত যেখানে দ্রাঘিমাংশ বিরতি ঘটে তা এই জাতীয় ডেটা সাহায্য করবে না। এটি অ্যান্টার্কটিকার জন্য নির্দিষ্ট একটি অভিক্ষেণ কাজ করবে, তবে এটি খুব সাধারণ সমাধান নয়।

আশ্চর্যজনকভাবে, গুগল আর্থ প্রো এই বহুভুজটি সঠিকভাবে প্রদর্শন করে না (যদি না আপনি "বাহ্যরেখা" মোড ব্যবহার করেন)। এখানে দেখো গুগল আর্থ প্রো থেকে স্ক্রিন শট


আমি গুগল আর্থ সম্পর্কে তেমন কিছুই জানি না, সুতরাং আমি কীভাবে রূপরেখা মোড সক্ষম করব তা জানি না। তবে এখানে আপনার কাছে একটি বৈধ বহুভুজ রয়েছে যা অ্যান্টিমেরিডিয়ানকে বিস্তৃত করে এবং আপনার চিত্রে আমরা দেখতে পাচ্ছি যে গুগল আর্থ এটি সঠিকভাবে রেন্ডার করতে ব্যর্থ হয়েছে: সুতরাং গুগল আর্থ যদি ক্লায়েন্ট অ্যাপ্লিকেশনে অস্পষ্টতাটি উত্তীর্ণ হয় তবে এটি কীভাবে প্রমাণ হয় যে গুগল আর্থ যদি সামলাতে না পারে তবে এটা? ঘটনাক্রমে কিউজিআইএস আমাকে এই বহুভুজের সাথে এসআরআইডি 4326-তে রেন্ডারিং ইস্যু দেয়, তবে যদি আমি অ্যান্টিমেরিডিয়ানে একটি লাইন প্রবর্তন করি (তবে ... ভাল লাইনটি বাদে) not আমি যদি অ্যান্টার্কটিক স্টেরিওগ্রাফিক প্রজেকশন ব্যবহার করি তবে মূলটি উজ্জ্বলভাবে রেন্ডার করে।
বর্ণমালা

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