สมมติว่าฉันมีเวกเตอร์เรย์ที่มาจากที่ใดที่หนึ่งในอวกาศ ตัวอย่างอาจเป็นแสงจากดวงอาทิตย์ ฉันจะคำนวณจุดตัด (ถ้ามี) ระหว่างรังสีกับพื้นผิวโลกได้อย่างไร ฉันใช้พิกัดคาร์ทีเซียน (ECEF) และฉันต้องการให้เรขาคณิตทรงรีของโลกเป็นตัวประกอบในการคำนวณ
สมมติว่าฉันมีเวกเตอร์เรย์ที่มาจากที่ใดที่หนึ่งในอวกาศ ตัวอย่างอาจเป็นแสงจากดวงอาทิตย์ ฉันจะคำนวณจุดตัด (ถ้ามี) ระหว่างรังสีกับพื้นผิวโลกได้อย่างไร ฉันใช้พิกัดคาร์ทีเซียน (ECEF) และฉันต้องการให้เรขาคณิตทรงรีของโลกเป็นตัวประกอบในการคำนวณ
คำตอบ:
มันง่าย แต่ยุ่ง
เนื่องจากคุณทำงานใน ECEF สมมุติว่าคุณมีต้นกำเนิดรังสี (x, y, z) และเวกเตอร์บอกทิศทาง (u, v, w) ในพิกัด ECEF เช่นกัน สำหรับช่วงเวลาสมมติว่าในช่วงเวลาของการเดินทางไปยังพื้นผิวของโลกโลกไม่ได้เคลื่อนไหวชื่นชม (ส่วนที่เร็วที่สุดของโลกที่หมุนรอบตัว, เส้นศูนย์สูตรเคลื่อนที่ประมาณ 0.45 กม. / วินาทีและแสงเคลื่อนที่ประมาณ 300,000 กม. / วินาทีดังนั้นรังสีที่กำเนิดขึ้นกล่าวว่า 1,000 กม. เหนือพื้นโลกและมุ่งหน้าตรงไปยังเส้นศูนย์สูตร 1/300 วินาทีเพื่อไปถึงมันในระหว่างที่ Equator จะขยับ 1.5 เมตรนั่นอาจเป็นข้อผิดพลาดที่ยอมรับได้)
เราแค่ต้องคำนวณจุดตัดของเส้นที่กำหนดพารามิเตอร์
t --> (x,y,z) + t*(u,v,w)
กับพื้นผิวโลกซึ่งถือได้ว่าเป็นเซตของฟังก์ชัน
(x/a)^2 + (y/a)^2 + (z/b)^2 - 1
โดยที่aคือแกนกึ่งหลัก (6,378,137 เมตร) และbคือแกนกึ่งรองของWGS84 ellipsoid (6,356,752.3142 เมตร) เสียบสูตรแรกในสองและแก้ปัญหาสำหรับเสื้อในแง่ของx, y, z, U, V, W มันคือสมการกำลังสองคุณจึงได้คำตอบที่มากถึงสองวิธี: อันหนึ่งสำหรับการเข้าสู่โลกและอีกอันสำหรับการปล่อยมันอีกครั้ง (ซึ่งจะเกิดขึ้นเช่นสำหรับนิวตริโน) เลือกวิธีแก้ปัญหาที่ระยะทางสั้นที่สุด สิ่งนี้จะช่วยให้
t = -(1/(b^2 (u^2 + v^2) + a^2 w^2)) * (b^2 (u x + v y) + a^2 w z + 1/2 Sqrt[
4 (b^2 (u x + v y) + a^2 w z)^2 -
4 (b^2 (u^2 + v^2) + a^2 w^2) (b^2 (-a^2 + x^2 + y^2) + a^2 z^2)])
เสียบค่านี้เป็นสมการแรกเพื่อให้ได้จุดตัด
สำหรับต้นกำเนิดเรย์อยู่ห่างไกล แต่ไม่ชะมัดห่างไกล ( เช่นจากดวงอาทิตย์ แต่ไม่ได้มาจากนอกระบบสุริยะ) เริ่มต้นด้วยการประมาณการน้ำมันดิบของเวลาTมันควรจะใช้เวลาในการเข้าถึงโลก (ในวินาที): คุณสามารถ ยกตัวอย่างเช่นใช้ระยะทางจาก (x, y, z) ไปยังศูนย์กลางของโลก แก้ไขพิกัดเริ่มต้น (x, y, z) เพื่ออธิบายปริมาณการหมุนของโลกในช่วงเวลานี้: สิ่งนี้จะเปลี่ยนพิกัดเริ่มต้นเป็น
(x*c + y*s, -x*s + y*c, z)
(จุดจะดูเหมือนจะย้ายไปข้างหลัง ) ที่ c และ s เป็นไซน์และโคไซน์ของ0.000072921150 เรเดียน คำนวณจุดตัดของรังสีที่เริ่มต้นจากตำแหน่งที่อัปเดตนี้ คุณอาจถูกปิดโดยมากถึง 10 เมตรหรือมากกว่านั้นเนื่องจากการใช้เวลาโดยประมาณ ถ้าเรื่องนี้อีกครั้งประมาณเวลาที่ผ่านไปขึ้นอยู่กับจุดตัดนี้และทำซ้ำการคำนวณด้วยค่าใหม่ของT