วิธีแรเงาหรือวางซ้อนแผนที่แรสเตอร์เพื่อสะท้อนเวลาของวันและแสงโดยรอบ


14
  • ฉันมีแรสเตอร์ในเวลากลางวันของพื้นที่ศึกษาของฉัน
  • ฉันมีเคาน์เตอร์มากกว่า 20 แห่งในพื้นที่ศึกษาที่นับ "สิ่ง" ด้วยเวลาประทับ
  • ใช้PyEphemฉันกำหนดประเภทของแสงโดยรอบสำหรับแต่ละจุดข้อมูลที่เก็บรวบรวม

สิ่งที่ฉันต้องการทำ:

  • เพิ่มการซ้อนทับแบบโปร่งใสสีเทา / กึ่งเพื่อสะท้อนแสงโดยรอบ (พลบค่ำ, พระอาทิตย์ขึ้น, กลางวัน, พระอาทิตย์ตกและมืด)

  • เป้าหมายสุดท้าย: สร้างการสร้างภาพข้อมูลตามเวลาของการรวบรวมข้อมูลที่เน้นเวลาของวัน หรือสามารถสร้างสแนปชอตในเวลาที่แน่นอนด้วยการซ้อนทับสีเทาที่เหมาะสม

  • คิดว่านี่เป็นภาพ:

โลกกลางวัน / กลางคืน แหล่ง


2
คำตอบเพิ่มเติม (กับการทำงานMathematica code) ปรากฏที่mathematica.stackexchange.com/questions/3326/...
whuber

คำตอบ:


9

สรุป

ด้วยตำแหน่งของดวงอาทิตย์คุณสามารถสร้างกริดของความเข้มแสงของพื้นผิวได้อย่างง่ายดาย (ไม่สนใจเอฟเฟกต์บรรยากาศและภูมิประเทศ) ในพิกัดละติจูด - ลองจิจูด ปฏิเสธตารางนั้นตามต้องการและวางทับบนแผนที่

รายละเอียด

สูตรนี้เป็นสูตรมาตรฐานสำหรับพิกัดทรงกลม: เวกเตอร์หน่วยที่สอดคล้องกับพิกัดกลม (lon, lat) คือ

(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 สอดคล้องกับดวงอาทิตย์ที่มองไม่เห็นดังนั้นให้ตั้งค่าเหล่านี้เป็นศูนย์

บันทึกการใช้งาน

การคำนวณเหล่านี้ตรงไปตรงมาเพื่อดำเนินการกับพีชคณิตแผนที่เริ่มต้นด้วยตาราง (lat, lon) ค่า (นั่นคือวิธีที่ฉันทำมัน) หรือกับคู่ของกริดหนึ่งสำหรับละติจูดและอื่นสำหรับลองจิจูด (ซึ่งเป็นวิธีที่คุณจะมี ที่จะทำกับซอฟต์แวร์ ESRI ตัวอย่าง)

(ในการสร้างตารางละติจูดหรือลองจิจูดให้สร้างตารางพิกัด y หรือพิกัด x ตามลำดับในพิกัดทางภูมิศาสตร์จากนั้นฉายมัน) จากการคำนวณข้อมูลเบื้องต้นนี้หนึ่งครั้งและสามกริด [xi], [eta ] และ [zeta] (หรือกริดที่มีค่าเวกเตอร์เดี่ยว [xi, eta, zeta]) เพื่อแสดงทิศทางขึ้นด้านบนของเซลล์กริด สำหรับตำแหน่งของดวงอาทิตย์ใด ๆ การคำนวณจะกลายเป็นการรวมกันเชิงเส้นอย่างง่ายของ [xi], [eta] และ [zeta] ที่ให้ไว้ด้านบน ดวงอาทิตย์เป็นตัวกำหนดสัมประสิทธิ์ x, y, และ z (ซึ่งเป็นเพียงตัวเลขแน่นอน)

ตัวอย่าง

นี่คือแผนที่โลกในการฉายแบบ Plate Carree ของตารางความเข้ม (216 x 432 เซลล์)

ความรุนแรง

เส้นแวงที่สำคัญอยู่ตรงกลางและทิศเหนืออยู่ด้านบนตามปกติ สำหรับการคำนวณนี้ฉันตั้งค่าเวกเตอร์ของดวงอาทิตย์เป็นสัดส่วน (0.6, -0.8, 0.5) เพื่อประมาณวันของฤดูร้อนตอนเที่ยงเหนือมหาสมุทรกลางมหาสมุทรแอตแลนติก (ในการมองย้อนกลับค่า z ที่ 0.4 จะเหมือนจริงมากขึ้น; ดวงอาทิตย์ไม่เคยได้รับเหนือเลยทีเดียว)

การซ้อนทับตัวอักษร (ซึ่งทำให้บริเวณที่สว่างกว่านั้นมีความโปร่งใสมากขึ้นเล็กน้อยเช่นกัน) บนแผนที่ที่มีสี Asterจะสร้างภาพนี้

แผนที่โลก

เมื่อเวลาเปลี่ยนไปเวกเตอร์ของดวงอาทิตย์ (x, y, z) จะได้รับการคำนวณใหม่ซึ่งต้องมีการคำนวณใหม่ของกริดความเข้ม นี่เป็นการคำนวณที่รวดเร็ว คุณไม่ต้องการความละเอียดสูงอย่างใดอย่างหนึ่ง: ฉันใช้ความละเอียดเพียงหนึ่งในสิบของกริดดั้งเดิม (2160 x 4320 เซลล์) สำหรับภาพประกอบนี้ การแก้ไขที่ใช้ในการแสดงกริดความรุนแรง coarser ทำงานได้ดีเพื่อเติมช่องว่าง สิ่งนี้จะช่วยให้คุณสามารถปรับเปลี่ยนการแสดงผลได้ทันทีหากต้องการสร้างภาพเคลื่อนไหวที่ราบรื่น


2
ดีมากดีมาก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.