2016-02-28 11:11:16 +00:00
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
2018-04-30 19:00:08 +00:00
|
|
|
FEETS_TO_METER = 0.3048 # ratio feets to meter
|
|
|
|
FPM_TO_MS = FEETS_TO_METER / 60 # ratio fpm to m/s
|
|
|
|
KNOTS_TO_MS = 0.5144 # ratio knots to m/s
|
|
|
|
KPH_TO_MS = 2.7778 # ratio kph to m/s
|
2018-04-30 19:45:28 +00:00
|
|
|
HPM_TO_DEGS = 180 / 60 # ratio between half turn per minute and degrees/s
|
2016-02-28 11:11:16 +00:00
|
|
|
|
|
|
|
|
2016-09-01 11:01:44 +00:00
|
|
|
def parseAngle(dddmmhht):
|
|
|
|
return float(dddmmhht[:3]) + float(dddmmhht[3:]) / 60
|
2016-02-28 11:11:16 +00:00
|
|
|
|
|
|
|
|
2018-05-01 09:21:28 +00:00
|
|
|
def createTimestamp(time_string, reference_timestamp=None):
|
|
|
|
if time_string[-1] == "z":
|
|
|
|
dd = int(time_string[0:2])
|
|
|
|
hh = int(time_string[2:4])
|
|
|
|
mm = int(time_string[4:6])
|
|
|
|
|
|
|
|
result = datetime(reference_timestamp.year,
|
|
|
|
reference_timestamp.month,
|
|
|
|
dd,
|
|
|
|
hh, mm, 0)
|
2017-09-30 16:25:02 +00:00
|
|
|
|
2018-05-01 09:21:28 +00:00
|
|
|
if result > reference_timestamp + timedelta(days=14):
|
|
|
|
# shift timestamp to previous month
|
|
|
|
result = (result.replace(day=1) - timedelta(days=5)).replace(day=result.day)
|
|
|
|
elif result < reference_timestamp - timedelta(days=14):
|
|
|
|
# shift timestamp to next month
|
|
|
|
result = (result.replace(day=28) + timedelta(days=5)).replace(day=result.day)
|
2016-03-09 11:05:12 +00:00
|
|
|
else:
|
2018-05-01 09:21:28 +00:00
|
|
|
hh = int(time_string[0:2])
|
|
|
|
mm = int(time_string[2:4])
|
|
|
|
ss = int(time_string[4:6])
|
|
|
|
|
|
|
|
result = datetime(reference_timestamp.year,
|
|
|
|
reference_timestamp.month,
|
|
|
|
reference_timestamp.day,
|
|
|
|
hh, mm, ss)
|
|
|
|
|
|
|
|
if result > reference_timestamp + timedelta(hours=12):
|
|
|
|
# shift timestamp to previous day
|
|
|
|
result -= timedelta(days=1)
|
|
|
|
elif result < reference_timestamp - timedelta(hours=12):
|
|
|
|
# shift timestamp to next day
|
|
|
|
result += timedelta(days=1)
|
|
|
|
|
|
|
|
return result
|