दिन के समय और परिवेशी प्रकाश को प्रतिबिंबित करने के लिए एक रास्टर मैप को छाया या ओवरले करने की विधि


14
  • मेरे पास अपने अध्ययन क्षेत्र का एक दिन का समय है।
  • मेरे पास अध्ययन क्षेत्र में 20+ काउंटर हैं जो टाइमस्टैम्प के साथ "सामान" की गिनती करते हैं।
  • PyEphem का उपयोग करके मैंने प्रत्येक एकत्रित डेटा बिंदु के लिए परिवेश प्रकाश का प्रकार निर्धारित किया।

मैं क्या करना चाहूंगा:

  • परिवेश प्रकाश (शाम, सूर्योदय, दिन, सूर्यास्त और अंधेरे) को प्रतिबिंबित करने के लिए एक ग्रे / अर्ध पारदर्शी ओवरले जोड़ें।

  • अंतिम लक्ष्य: डेटा संग्रह का एक समय-आधारित दृश्य उत्पन्न करता है जो दिन के समय पर प्रकाश डालता है। या उचित छायांकित ओवरले के साथ एक निश्चित समय पर स्नैपशॉट का उत्पादन करने में सक्षम हो।

  • इसे इस छवि के रूप में सोचें:

दिन / रात ग्लोब स्रोत


2
अतिरिक्त उत्तर (काम करने वाले गणितज्ञ कोड के साथ) mathematica.stackexchange.com/questions/3326/… पर दिखाई देते हैं ।
whuber

जवाबों:


9

सारांश

सूर्य की स्थिति को देखते हुए, आप आसानी से लेट-लय निर्देशांक में सतह प्रकाश की तीव्रता (वायुमंडलीय और स्थलाकृतिक प्रभावों की अनदेखी) का एक ग्रिड बना सकते हैं। वांछित रूप में उस ग्रिड को पुन: सबमिट करें और इसे मानचित्र पर ओवरले करें।

विवरण

सूत्र गोलाकार निर्देशांक के लिए मानक हैं: एक गोलाकार समन्वय (अकेला, अव्यक्त) के अनुरूप इकाई वेक्टर है

(cos(lon)cos(lat), sin(lon)cos(lat), sin(lat)).

तीव्रता बाह्य बाह्य ("ऊपर") दिशा और सूर्य की दिशा के बीच के कोसाइन पर निर्भर करती है। यह कॉशन उन दो यूनिट वैक्टर का सिर्फ डॉट प्रोडक्ट है। यही है, चलो (x, y, z) सूर्य की ओर इंगित करने वाली इकाई वेक्टर (ज्यामितीय निर्देशांक में) हो, प्रत्येक ग्रिड सेल के केंद्र बिंदु के जियोडेटिक (lat, lon) को एक इकाई वेक्टर (xi, eta, zeta) में परिवर्तित करें। , और गणना

(x,y,z) . (xi, eta, zeta) = x*xi + y*eta + z*zeta.

कोई भी परिणाम जो 0 से कम है, एक अदृश्य सूरज के अनुरूप है, इसलिए इन्हें शून्य पर सेट करें।

कार्यान्वयन नोट

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

(अक्षांश या देशांतर ग्रिड बनाने के लिए, भौगोलिक निर्देशांक में क्रमशः y-निर्देशांक या x-निर्देशांक ग्रिड बनाएं, फिर इसे प्रोजेक्ट करें।) इस प्रारंभिक जानकारी की गणना से, एक बार और सभी के लिए, तीन ग्रिड [xi], [eta ], और [जेटा] (या एकल वेक्टर-मूल्यवान ग्रिड [xi, eta, zeta]) ग्रिड कोशिकाओं पर ऊपर की दिशाओं का प्रतिनिधित्व करने के लिए। किसी भी सूर्य की स्थिति के लिए, गणना ऊपर दिए गए [xi], [eta] और [zeta] के सरल रैखिक संयोजन बन जाती है; सूरज गुणांक x, y और z को निर्धारित करता है (जो सिर्फ संख्याएं हैं, निश्चित रूप से)।

उदाहरण

इस तरह की तीव्रता ग्रिड (216 बाय 432 सेल) के प्लेट कैरी प्रक्षेपण में एक विश्व मानचित्र है।

तीव्रता

मुख्य मध्याह्न रेखा केंद्र में है और उत्तर हमेशा की तरह शीर्ष पर है। इस गणना के लिए, मैंने मध्य-अटलांटिक महासागर के ऊपर दोपहर के समय सूर्य के अनुपात को (0.6, -0.8, 0.5) निर्धारित किया है। (रेट्रोस्पेक्ट में, 0.4 का z- मान अधिक यथार्थवादी होगा; सूरज कभी भी बहुत दूर उत्तर में नहीं मिलता है।)

एस्टर रंग वाले नक्शे पर एक अल्फा-ओवरले (जो उज्जवल क्षेत्रों को थोड़ा और अधिक पारदर्शी बनाता है) ।

दुनिया का नक्शा

जैसे-जैसे समय बदलता है, सूर्य का सदिश (x, y, z) तीव्रता ग्रिड की पुनर्गणना की आवश्यकता होती है, पुनर्गणना हो जाती है। यह एक तेज़ गणना है। आपको उच्च रिज़ॉल्यूशन की आवश्यकता नहीं है, या तो: मैंने इस चित्रण के लिए मूल ग्रिड (2160 बाय 4320 सेल) के संकल्प का सिर्फ दसवां हिस्सा इस्तेमाल किया। मोटे तीव्रता वाले ग्रिड को प्रदर्शित करने के लिए प्रयुक्त प्रक्षेप गैप में भरने के लिए ठीक काम करता है। यदि आप चाहें, तो यह एक सुचारू एनीमेशन बनाते हुए आपको डिस्प्ले को लगभग तुरंत संशोधित करने में सक्षम बनाता है।


2
बहुत, बहुत अच्छा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.