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
Barbara Streisandasal
2024-11-30 16:29:10679semak imbas

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

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))

Kepada:

Bearing = degrees(atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1)))

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!

Kenyataan:
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