gpt4 book ai didi

python - 保存数组中每个时间戳之间的时间量

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:07 25 4
gpt4 key购买 nike

我正在编写一个 python 脚本来获取一个对象在一个点到另一个点之间的速度。我已经创建了函数(见下文)并且在我测试它时可以工作,但是现在我知道它可以工作并且想使用它,我遇到了障碍。我似乎无法找到一种方法来计算每个点之间的时间并使用 numpy 将其保存为数组。我的文件有数百个不同的点。

def speed(lat1, long1, time1, lat2, long2, time2):
distance = haversine_distance(lat1, long1, lat2, long2) # meter
delta_time = time2 - time1 # second
speed = distance / delta_time # speed in m/s
speed = speed * 3.6 # speed in km/h

return speed

每个点的时间戳格式如下:

timestamp.roundHr
12/8/2009 7:00
12/8/2009 8:00
12/8/2009 9:00
12/8/2009 10:00

最佳答案

你有 timestamp1 和 timestamp2。首先,用每个创建一个 datetime 对象,然后通过一个减去另一个来获得增量时间:

from datetime import datetime as dt

def speed(lat1, long1, time1, lat2, long2, time2):
distance = haversine_distance(lat1, long1, lat2, long2) # meter

# here's the fun stuff
time1 = dt.strptime(time1, "%m/%d/%Y %H:%M")
time2 = dt.strptime(time2, "%m/%d/%Y %H:%M")
delta_time = (time2 - time1).total_seconds() # second

# continue with the rest of your code
speed = (distance / delta_time) # speed in m/s
speed = speed * 3.6 # speed in km/h

return speed

如果您的时间戳列表包含 n 元素,并且您想计算一个不同的 n-1 元素列表,例如 i新列表中的第一个元素是旧列表中第 i 个和第 i+1 个元素之间的增量时间,那么这应该有效:

def computeDeltaTimes(L):
answer = []
a, b = itertools.tee(L)
next(B, None)
fmt = "%m/%d/%Y %H:%M"
for start, end in zip(a,b): # or itertools.izip in python2
answer.append((dt.strptime(end, fmt) - dt.strptime(start, fmt)).total_seconds())
return answer

关于python - 保存数组中每个时间戳之间的时间量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33487949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com