计算两个UTC 时间差,返回两个UTC时间秒数 def caculateTimeDifference(lastTime, currentTime): ''' 计算两个UTC时间差,秒 :param lastTime: :param currentTime: :return: ''' ctime = time.localtime(currentTime) ltime = time.localtime(lastTime) ctimeStr = time.strftime("%Y-%m-%d %H:%M:%S", ctime) ltimeStr = time.strftime("%Y-%m-%d %H:%M:%S", ltime) # print(timeStr) a = parse(ctimeStr) b = parse(ltimeStr) # print((a - b).days) # print((a - b).seconds) # print((a - b).total_seconds()) seconds = (a - b).total_seconds() # 1.days:来获取时间差的天数 # # 2.seconds:来获取时间差中的秒数。注意,seconds获得的秒只是时间差中的小时、分钟和秒部分的和,并没有包含时间差的天数 # # 3.total_seconds:来获取准确的时间差,并将时间差转换为秒 return seconds
计算两个时间序列的坐标点的速度
from math import radians, cos, sin, asin, sqrt import time from dateutil.parser import parse # 计算两个经纬度距离 单位为米 def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 (十进制度数) """ Calculate the great circle distance between two points on the earth (specified in decimal degrees) """ # 将十进制度数转化为弧度 lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # haversine公式 dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2 c = 2 * asin(sqrt(a)) r = 6371 # 地球平均半径,单位为公里 return c * r * 1000 def caculateTimeDifference(lastTime, currentTime): ''' 计算两个UTC时间差,毫秒 :param lastTime: :param currentTime: :return: ''' ctime = time.localtime(currentTime) ltime = time.localtime(lastTime) ctimeStr = time.strftime("%Y-%m-%d %H:%M:%S", ctime) ltimeStr = time.strftime("%Y-%m-%d %H:%M:%S", ltime) # print(timeStr) a = parse(ctimeStr) b = parse(ltimeStr) # print((a - b).days) # print((a - b).seconds) # print((a - b).total_seconds()) seconds = (a - b).total_seconds() # 1.days:来获取时间差的天数 # # 2.seconds:来获取时间差中的秒数。注意,seconds获得的秒只是时间差中的小时、分钟和秒部分的和,并没有包含时间差的天数 # # 3.total_seconds:来获取准确的时间差,并将时间差转换为秒 return seconds # 计算速度 def caculateSpeed(lastTime, lastPoint, currentTime, currentPoint): timeDifferences = caculateTimeDifference(lastTime, currentTime) # print(lastTime, currentTime, "----------", timeDifferences) distanceDifferences = haversine(lastPoint[1], lastPoint[0], currentPoint[1], currentPoint[0]) # lon1, lat1, lon2, lat2 # print(distanceDifferences, "-----", timeDifferences) return distanceDifferences / timeDifferences*1000, timeDifferences