Sederhana tapi berantakan.
Karena Anda bekerja di ECEF, mungkin Anda memiliki asal-usul sinar (x, y, z) dan vektor arah (u, v, w) dalam koordinat ECEF juga. Untuk saat ini mari kita asumsikan bahwa selama perjalanan ke permukaan bumi, bumi tidak bergerak secara berarti. (Bagian tercepat dari bumi yang berputar, Khatulistiwa, bergerak sekitar 0,45 km / detik dan cahaya bergerak sekitar 300.000 km / detik, sehingga sinar yang berasal, katakanlah, 1000 km di atas bumi dan menuju sedikit lebih lurus ke bawah ke arah Khatulistiwa akan membawa 1/300 detik untuk mencapainya, di mana Equator akan bergerak 1,5 meter: itu mungkin kesalahan yang bisa diterima.)
Kita hanya perlu menghitung persimpangan garis parameterisasi
t --> (x,y,z) + t*(u,v,w)
dengan permukaan bumi, yang dapat dianggap sebagai set nol fungsi
(x/a)^2 + (y/a)^2 + (z/b)^2 - 1
di mana a adalah sumbu semi-utama (6.378.137 meter) dan b adalah sumbu semi-minor dari ellipsoid WGS84 (6.356.752.3142 meter). Masukkan formula pertama ke rumus kedua dan selesaikan untuk t dalam hal x, y, z, u, v, w . Ini adalah persamaan kuadrat, jadi Anda mendapatkan dua solusi: satu untuk memasuki bumi dan yang lain untuk meninggalkannya lagi (yang akan terjadi, misalnya, untuk neutrino). Pilih solusi yang jaraknya paling pendek. Ini memberi
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)])
Masukkan nilai ini ke dalam persamaan pertama untuk mendapatkan titik persimpangan.
Untuk sinar yang berasal dari jauh, tetapi tidak terlalu jauh ( misalnya, dari matahari tetapi bukan dari luar tata surya), mulailah dengan perkiraan kasar waktu T yang diperlukan untuk mencapai bumi (dalam detik): Anda bisa gunakan jarak dari (x, y, z) ke pusat bumi, misalnya. Ubah koordinat awal (x, y, z) untuk memperhitungkan jumlah rotasi bumi selama waktu ini: ini akan mengubah koordinat awal menjadi
(x*c + y*s, -x*s + y*c, z)
(intinya tampaknya akan bergerak mundur ) di mana c dan s adalah sinus dan kosinus dari 0,000072921150 * T radian . Hitung persimpangan untuk sinar mulai dari lokasi yang diperbarui ini. Anda mungkin pergi sejauh 10 meter atau lebih karena penggunaan perkiraan waktu. Jika ini penting, perkirakan kembali waktu yang berlalu berdasarkan titik persimpangan ini dan ulangi perhitungan dengan nilai T yang baru .