为了账号安全,请及时绑定邮箱和手机立即绑定

使用Haversine的距离公式获得经度和纬度的距​​离

使用Haversine的距离公式获得经度和纬度的距​​离

慕码人8056858 2021-09-11 19:28:32
我正在使用 Pandas 数据框,我试图从每个标识符的每个点的经度和纬度获取距离。这是当前的数据框:    Identifier       num_pts        latitude          longitude0   AL011851            3              28.0              -94.81   AL011851            3              28.0              -95.42   AL011851            3              28.1              -96.03   AL021851            2              22.2              -97.64   AL021851            2              12.0              -60.0我知道我必须使用Haversine 的距离公式,但我不确定如何使用我的数据合并它。import numpy as npdef haversine(lon1, lat1, lon2, lat2, earth_radius=6367):    """    Calculate the great circle distance between two points    on the earth (specified in decimal degrees)    All args must be of equal length.    """    lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2])    dlon = lon2 - lon1    dlat = lat2 - lat1    a = np.sin(dlat/2.0)**2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon/2.0)**2    c = 2 * np.arcsin(np.sqrt(a))    km = earth_radius * c    return km这应该是我在纸上仅使用纬度和经度计算的最终结果: Identifier       num_pts        latitude          longitude            distance0   AL011851            3              28.0              -94.8            NaN1   AL011851            3              28.0              -95.4            58.8705322   AL011851            3              28.1              -96.0            58.8705323   AL021851            2              22.2              -97.64   AL021851            2              12.0              -60.0编辑:我需要计算 0 和 1 和 2 等连续点之间的距离,并且必须按标识符对其进行分组以确保这些点不来自不同的标识符,因此当有新标识符(如 AL021851)时,它会重置并且只计算该标识符中的点
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信