Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Membetulkan Nilai Bearing Negatif Apabila Menggunakan Formula Haversine dalam Python untuk Mengira Jarak dan Bearing Antara Titik GPS?

Bagaimanakah Saya Boleh Membetulkan Nilai Bearing Negatif Apabila Menggunakan Formula Haversine dalam Python untuk Mengira Jarak dan Bearing Antara Titik GPS?

Barbara Streisand
Lepaskan: 2024-11-30 16:29:10
asal
595 orang telah melayarinya

How Can I Correct Negative Bearing Values When Using the Haversine Formula in Python to Calculate Distance and Bearing Between GPS Points?

Formula Haversine dalam Python: Mengira Jarak dan Bearing Antara Titik GPS

Dalam panduan Python ini, kita akan menyelidiki formula Haversine, alat yang berkuasa untuk menentukan jarak dan bearing antara dua GPS koordinat.

Masalah:

Kami menyasarkan untuk mengira jarak dan bearing antara dua titik GPS tetapi menghadapi percanggahan dalam output galas, yang menghasilkan nilai negatif manakala ia sepatutnya berada dalam julat 0-360 darjah.

Kod:

Kod yang disediakan menggunakan formula Haversine untuk mengira kedua-dua jarak dan bearing:

from math import radians, cos, sin, asin, sqrt

def haversine(lon1, lat1, lon2, lat2):
    # Convert decimal degrees to radians
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])

    # Haversine formula
    dlon = lon2 - lon1
    dlat = lat2 - lat1
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    c = 2 * asin(sqrt(a))
    r = 6371 # Radius of earth in kilometers
    return c * r
Salin selepas log masuk

Pengiraan Bearing :

Isu dengan kod yang disediakan terletak pada pengiraan bearing. Untuk membetulkannya, kita perlu mengubah suai garisan:

Bearing = atan2(cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1), sin(lon2-lon1)*cos(lat2))
Salin selepas log masuk

Kepada:

Bearing = degrees(atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1)))
Salin selepas log masuk

Pelarasan ini memastikan output galas sejajar dengan julat jangkaan 0-360 darjah.

Kesimpulan:

Dengan pengiraan bearing tetap, kod kini dengan tepat menentukan jarak dan galas antara titik GPS yang disediakan. Formula Haversine terbukti sebagai alat yang teguh untuk pengiraan geografi, membolehkan pengukuran jarak yang tepat di permukaan Bumi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Nilai Bearing Negatif Apabila Menggunakan Formula Haversine dalam Python untuk Mengira Jarak dan Bearing Antara Titik GPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan