【发布时间】:2020-01-20 00:05:54
【问题描述】:
我对python比较陌生,所以如果我问的问题太愚蠢,我很抱歉
我有包含以下列的 CSV 文件:'CarNumber'、'DateTime'、'GPS'、'Speed'。 GPS 列包含以下形式的信息:'纬度:经度'
我想:
1) 加载 CSV 文件
2) 将 GPS 列拆分为纬度和经度列
3) 应用Haversine 公式来计算已知纬度和经度的两点之间的距离。到目前为止,我想出了以下功能:
def distRad(glat1, glng1, glat2, glng2):
from math import sin, cos, sqrt, atan2, radians, asin
# approximate radius of earth in km
R = 6371.0
lat1 = radians(glat1)
lng1 = radians(glng1)
lat2 = radians(glat2)
lng2 = radians(glng2)
dlng = lng2 - lng1
dlat = lat2 - lat1
#a = 2 * asin((sin(dlng/2)**2+cos(lng1)*cos(lng2)*sin(dlat/2)**2)**0.5)
#c = a
a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlng / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
return R * c
4) 将结果上传到新的 csv 文件,列:'CarNumber'、'DateTime'、'Latitude'、'Longitude'、'Distance' 我知道这听起来可能非常简单和微不足道,但我仍然需要指导
我的 CSV 文件的一部分:
CarNumber;DateTime;GPS;Speed
230;04.06.2019 0:00:12;87,96978 : 159,588606;20
谢谢!
【问题讨论】:
-
有什么问题?你的解决方案有效吗?有没有不足?它是如何不足的?你怀疑它的任何部分是罪魁祸首吗?为什么?
-
我不知道如何加载 CSV 文件并执行以下步骤
-
您能提供您的 CSV 部分吗?您可以直接将其作为文本粘贴到问题中。
-
欢迎来到 SO。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。这不是讨论论坛或教程服务。有一个
csv模块,文档中的示例应该可以帮助您入门。 -
SH-SF,这是我的 CSV:CarNumber;DateTime;GPS;Speed 230;04.06.2019 0:02:43;40,969915 : 151,588611;7,72
标签: python