在 Python 中计算两个 GPS 点之间的距离
计算两个 GPS 点之间的距离是我们可以在 Python 框架内操作的地理和数学练习。 现在让我们看看如何使用 Python 执行此操作。
在 Python 中使用 Haversine 公式计算两个 GPS 点之间的距离
haversine 公式是用 Python 计算两个 GPS 点之间距离的一种简化方法,但它的计算是基于地球是一个完美球体的假设。 然而,地球并不是一个完美的球体。
这意味着我们将获得的结果不会完全准确; 由于假设,存在轻微误差。 haversine公式通过计算两对经纬度之间的距离来计算两个GPS点之间的距离。
创建一个 Python 并在其中输入这些代码。 将文件命名为 new.py,如下所示:
代码片段- new.py:
from math import radians, cos, sin, asin, sqrt
def haversine(lat1, lon1, lat2, lon2):
R = 3959.87433
dLat = radians(lat2 - lat1)
dLon = radians(lon2 - lon1)
lat1 = radians(lat1)
lat2 = radians(lat2)
a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
c = 2*asin(sqrt(a))
return R * c
lon1 = -103.548851
lat1 = 32.0004311
lon2 = -103.6041946
lat2 = 33.374939
print(haversine(lat1, lon1, lat2, lon2))
输出:
当我们点击运行时,我们应该在终端中看到这个结果。
使用 Python 中的 mpu 库计算两个 GPS 点之间的距离
mpu 源自 Martins Python Utilities,它是一个 Python 库,可用于执行各种功能而无需任何其他依赖项。
首先,我们通过键入以下内容来安装 mpu:
pip install mpu
然后,我们创建一个新的 Python 文件,命名为 new.py,并输入以下代码:
代码片段- new.py:
import mpu
lat1 = 32.0004311
lon1 = -103.548851
lat2 = 33.374939
lon2 = -103.6041946
dist = mpu.haversine_distance((lat1, lon1), (lat2, lon2))
print(dist)
稍等片刻,您应该会在终端内查看计算出的距离。
输出:
使用 Python 中的 geopy 库计算两个 GPS 点之间的距离
geopy for Python 是专门为计算国家、州、城市等之间的距离而设计的库。正如我们将在下面的示例中观察到的,我们可以使用公里、英里等来计算距离。
在终端内,键入以下内容以安装 geopy 库:
pip install geopy
创建一个新文件,将其命名为 new.py,然后输入这些代码。
from geopy.distance import geodesic
origin = (30.172705, 31.526725)
dist = (30.288281, 31.732326)
print(geodesic(origin, dist).kilometers)
输出:
如果要以英里显示结果,请将最后一位代码中的千米更改为英里并运行代码。
总结
计算地球上两个特定点之间的距离再简单不过了。 即使 haversine 公式可以偏离约 0.5%,结果仍然接近并且可用于各种项目。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串