आकाशीय निर्देशांक के लिए भूगोल डेटा को संग्रहीत करने के लिए किस समन्वय प्रणाली का उपयोग किया जाना चाहिए?


37

मैं एक एस्ट्रोनॉमी प्रोजेक्ट कर रहा हूं। मैं चाहता हूं कि हमारे चित्रों की जानकारी स्थानिक रूप से सक्षम डेटाबेस में संग्रहीत हो। यह, मुझे लगता है, जीआईएस कार्यों के लिए एक बहुत आसान विशेष मामला होना चाहिए क्योंकि आकाश को पूरी तरह से गोलाकार माना जा सकता है, और पृथ्वी की सतह की तरह अण्डाकार उपचार की आवश्यकता नहीं है। दुर्भाग्य से, मुझे अभी तक ऐसा करने का कोई तरीका नहीं मिला है और मैं स्थानिक कार्यों के साथ खानों को चकमा दे रहा हूं जो एक दीर्घवृत्तीय पृथ्वी का उपयोग करते हैं। (बहुत अधिक कोई भी फ़ंक्शन जो डिग्रियों के बजाय मीटर लौटाता है, एक अण्डाकार गणना का उपयोग कर सकता है। सौभाग्य से, पोस्टजीआईएस के कई कार्य जो मुझे करने की आवश्यकता है, अपूर्ण कार्यान्वयन हैं, जहां दस्तावेज़ में स्पष्ट रूप से कहा गया है कि लौटे परिणाम एक क्षेत्र के लिए हैं और नहीं दीर्घवृत्त। लेकिन भविष्य के संस्करणों के साथ बदल सकता है, जो चिंता का कारण है।)

पृष्ठभूमि: मैं वर्तमान में PostGreSQL का उपयोग PostGIS और WGS 84 निर्देशांक (SRID = 4326) के साथ कर रहा हूं। यह काफी अच्छी तरह से काम करता है। मैं चित्र के चार कोनों के दाहिने आरोह और घोषणा से एक बंद पोलीगॉन बना रहा हूँ। मेरे पास बहुत सारी छवियां (10k या अधिक) हैं, जो आकाश के एक बड़े क्षेत्र को कवर करती हैं। प्रत्येक चित्र लगभग 1 डिग्री वर्ग का है। इन छवियों के सेट से, मैं 15 से 30 छवियों के छोटे सबसेट से मोज़ाइक बना रहा हूं। प्रत्येक मोज़ेक लगभग 1.5 डिग्री वर्ग है।

वर्तमान में, मैं मोज़ाइक के भूगोल को एक MULTIPOLYGON के रूप में संग्रहीत कर रहा हूं जिसमें मोज़ेक में जाने वाली प्रत्येक छवि के अनुरूप सभी POLYGONS शामिल हैं। [एक बेहतर समाधान एक एकल पॉलीगॉन बनाना होगा जो सभी व्यक्तिगत बहुभुज के संघ की परिधि का वर्णन करता है । मुझे नहीं पता कि यह गोलाकार निर्देशांक (यानी, भूगोल प्रकार) में किया जा सकता है। यह मेरे लिए भी एक दिलचस्प जवाब होगा।] डेट लाइन और आकाशीय खंभे को डेटासेट में एक छवि में शामिल किया जा सकता है, इसलिए मैं प्लानर निर्देशांक को प्रोजेक्ट करने से परहेज कर रहा हूं।

PostGIS फ़ंक्शन के साथ आकाशीय निर्देशांक के लिए मुझे किस समन्वय प्रणाली का उपयोग करना चाहिए ?

मैंने http://spatialreference.org/ को देखा है, लेकिन अभी तक कुछ भी नहीं मिला है। Google थोड़ा बदल गया है। मैं स्तब्ध हूं। मूल रूप से, मैं यह सुनिश्चित करना चाहता हूं कि यदि कोई फ़ंक्शन दूरी के रूप में मीटर लौटाता है, तो यह एक गोले पर एक महान सर्कल के साथ मीटर है।

आमतौर पर, स्थानिक डेटाबेस में आकाशीय निर्देशांक का उपयोग करने के लिए कुछ सलाह की भी सराहना की जाएगी।

क्या मैंने PostGIS को चुनकर मिटाया है?

क्या अब तक बेहतर व्यावसायिक विकल्प हैं?

FOSS विकल्प?


मैं PostGIS 1.5.2 का उपयोग कर रहा हूं। मैंने अभी तक PostGIS 2.0 की कोशिश नहीं की है। मैं उत्सुक हूँ अगर ST_CoveredBy फ़ंक्शन POLYGON और MULTIPOLYGON प्रकार भूगोल के साथ काम करता है। यदि कोई 2.0 चल रहा है, तो क्या आप मुझे बता सकते हैं कि क्या आपको इस तरह की त्रुटि मिलती है:

mydb=# select ST_CoveredBy(ST_GeographyFromText('MULTIPOLYGON(( (10.37795 -69.57926,8.9498 -69.54875,9.0178 -69.21643,10.4242 -69.24648,10.37795 -69.57926),(10.42436 -69.24618,9.01774 -69.2162,     9.08363 -68.88389,10.46914 -68.91344,10.42436 -69.24618)))'),ST_GeographyFromText('POLYGON((10.46915 -68.91315,9.08371 -68.88364,9.14755 -68.5513,10.5125 -68.58038,10.46915 -68.91315))'));
ERROR:  geography_covers: only POLYGON and POINT types are currently supported
CONTEXT:  SQL function "st_coveredby" statement 1

मैंने PostGIS 2.0 की कोशिश की है। यह फ़ंक्शन अभी भी केवल अंक और बहुभुज पर काम करता है, न कि अधिक सामान्य आकार।


क्या यह wcs2kml के समान नहीं है? यदि हां, तो शायद आप अपने उपयोगों के लिए कुछ कोड को अनुकूलित कर सकते हैं। code.google.com/p/wcs2kml
Kirk Kendkendall

मैं इस यूएसजीएस प्रस्तुति में भाग लिया, "ग्रहस्थ जीआईएस 101" और संक्षेप में देखा कि अनुमानों पर कुछ स्लाइड्स हैं, शायद यह आपकी मदद करेगा।
जोंतर

मल्टीप्लगॉन बनाने के बजाय, कई बहुभुज क्यों नहीं बनाते हैं जो एक ग्रुपिंग आईडी साझा करते हैं?
राफेल

जवाबों:


17

Pgsphere देखें, यह विशेष रूप से खगोलीय डेटा को संभालने के लिए डिज़ाइन किया गया है।

http://pgsphere.projects.postgresql.org/


यह बहुत अच्छी चीज है। दुर्भाग्य से, यह किसी भी "smultipoly" ज्यामिति वर्ग का समर्थन नहीं करता है। हालांकि इस परियोजना पर महान सिर के लिए धन्यवाद।
डॉ। पर्सन II II

1
जब मैं इस लिंक का पालन करने की कोशिश करता हूं तो मुझे "मना किया जाता है कि आपके पास इस सर्वर तक पहुंचने / पहुंचने की अनुमति नहीं है।"
PolyGeo

12

PostGIS में खगोलीय पदों को संग्रहीत करना संभव है - आपको बस अपना समन्वय प्रणाली बनाने की आवश्यकता है!

PostGIS को अपनी सभी समन्वय प्रणाली और प्रक्षेपण जानकारी तालिका से प्राप्त होती है, spatial_ref_sysजो सामान्य रूप से तब होती है जब डेटाबेस को आरंभीकृत किया जाता है। लेकिन अपने स्वयं के अनुमानों को जोड़ने से आपको कुछ भी नहीं रोक रहा है - वास्तव में यह व्यावहारिक रूप से प्रोत्साहित किया जाता है

आम तौर पर लगभग हर जीआईएस / स्थानिक डेटाबेस / मैपिंग उत्पाद के साथ, पोस्टजीआईएस अपनी प्रक्षेपण आवश्यकताओं के लिए प्रोज 4 का उपयोग करता है, और इसलिए आपको spatial_ref_sysतालिका में एक प्रोज 4 स्ट्रिंग लगाने की आवश्यकता है । Proj4 रूप में एक साधारण गोलाकार एसआरएस है: +proj=longlat +ellps=sphere +no_defs। PostGIS को भी प्रक्षेपण के WKT संस्करण की आवश्यकता होती है, लेकिन मुझे लगता है कि इसका उपयोग केवल सुंदर पाठ के रूप में किया जाता है।

आपको अपने नए SRS के लिए एक अद्वितीय SRID के साथ आने की आवश्यकता होगी, साथ ही एक "प्राधिकरण" भी, लेकिन यह कुछ भी हो सकता है।

तो एक नई प्रविष्टि सम्मिलित करने के लिए spatial_ref_sys, बस इस SQL ​​का प्रदर्शन करें:

insert into spatial_ref_sys values(40000, 'ME', 1, 
'GEOGCS["Normal Sphere (r=6370997)",DATUM["unknown",SPHEROID["sphere",6370997,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]]',
'+proj=longlat +ellps=sphere +no_defs');

ध्यान दें कि मैंने 40000 को SRID के रूप में चुना है - यह वह संख्या है जिसे आप अपने आकाशीय वस्तु तालिका में उपयोग करते हैं। ऑक्ट्रोइटी "ME" है, लेकिन यह आपका नाम, संगठन या वास्तव में 256 वर्णों तक हो सकता है। अगले नंबर, 1, प्राधिकरण के सापेक्ष उस प्रविष्टि के लिए सिर्फ आपका विशिष्ट पहचानकर्ता है। सिद्धांत रूप में आप इस प्रविष्टि को ME: 1 के रूप में देख सकते हैं, लेकिन सभी पोस्टगिस प्रसंस्करण के लिए, इसकी अनूठी SRID जो मायने रखती है। GDAL और पायथन के साथ मैंने जो WKT प्रविष्टि बनाई है:

import osgeo.osr as osr
srs = osr.SpatialReference()
srs.ImportFromProj4('+proj=longlat +ellps=sphere +no_defs')
srs.ExportToWkt()

अब चेतावनी:

  • घंटे-कोण के बजाय डिग्री में दाहिने भाग को निर्दिष्ट करना होगा।
  • पोस्टगिस कार्यों की संख्या असुरक्षित डेटा के लिए डिज़ाइन नहीं की गई है, लेकिन यदि आपके पास WGS84 लॉन्ग / लाॅट में स्थलीय डेटा है तो यह एक ही समस्या है।
  • जैसा कि यह खड़ा है, डेटा भूगर्भिक है। यदि आप इसके साथ कोई अवलोकन कार्य करना चाहते हैं, तो मैं आपको PyEphem जैसी किसी चीज़ का उपयोग करने का सुझाव देता हूं
  • मैंने इस SRS में कोई डेटा बनाने की कोशिश नहीं की है, इसलिए YMMV।
  • मुझे अब इसमें काफी दिलचस्पी है, इसलिए मुझे Hipparchos कैटलॉग को आयात करने के साथ खेलना पड़ सकता है ... :)

2
+1। आप HYG डेटाबेस के एक संस्करण को लोड करके आसमान को मैप करने पर एक अच्छी शुरुआत प्राप्त कर सकते हैं , सही उदगम को 15 से गुणा कर सकते हैं और एक मानक GIS "देशांतर" में बदलने के लिए 180 घटा सकते हैं और किसी भी पूरी तरह से गोलाकार डेटा का उपयोग कर सकते हैं। प्रदर्शन और मानचित्रण के लिए, ग्नोमोनिक और ऑर्थोग्राफिक अनुमान काफी मानक हैं।
whuber

@whuber: और अक्षांश? डीईसी है
मैग्नो C

@MagnoC हाँ, यह सही है। फ़ील्ड मैं जिस वेबसाइट से जुड़ी हुई हैं, उस पर वर्णित हैं: बस थोड़ा नीचे स्क्रॉल करें। इसे जांचने के लिए मैंने "छोटे" संस्करण (केवल 31K सितारों) को एक 3 डी देखने के कार्यक्रम में डंप किया, कार्टेशियन निर्देशांक में परिवर्तित किया (एक इकाई खगोलीय क्षेत्र पर, दूरी की अनदेखी करते हुए), और उन्हें प्लॉट किया: अच्छा लग रहा है।
whuber

@ वाउचर: "आरए, दिसंबर: स्टार की सही आरोही और घोषणा, युग के लिए 2000.0। सितारे केवल ग्लिसे कैटलॉग में मौजूद हैं, जो 1950.0 निर्देशांक का उपयोग करते हैं, उनके पास ये निर्देशांक 2000 से पहले के हैं।" लैट / लोन के बारे में इतना स्पष्ट नहीं है। तो, LON = (RA*15) - 180और LAT = DEC?
मैग्नो C

@MagnoC मैंने en.wikipedia.org/wiki/Equatorial_coordinate_system को इसे छाँटने में मददगार पाया है।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.