python获取日期数组_python – 保存数组中每个时间戳之间的时间量

我正在研究一个

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.首先,使用each创建一个datetime对象,然后通过从另一个中减去一个来获得delta时间:

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个元素之间的增量时间,那么应该管用:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值