import numpy as np import astropy.units as unit from astropy.time import Time ballasttimes = np.array([ '2016-07-13 07:49:00.000', '2016-07-13 07:52:00.000', '2016-07-13 08:05:00.000', '2016-07-13 08:09:00.000', '2016-07-13 08:14:00.000', '2016-07-13 08:18:00.000', '2016-07-13 08:21:00.000', '2016-07-14 04:01:00.000', '2016-07-15 04:02:00.000', '2016-07-15 05:45:00.000', '2016-07-16 07:06:00.000', '2016-07-16 11:40:00.000', '2016-07-17 06:01:00.000', '2016-07-17 06:16:00.000', '2016-07-17 06:34:00.000', '2016-07-17 10:49:00.000', '2016-07-17 12:25:00.000', '2016-07-18 06:23:00.000', '2016-07-18 06:28:00.000', '2016-07-18 07:17:00.000', '2016-07-18 07:22:00.000', '2016-07-18 07:27:00.000', '2016-07-18 07:35:00.000', '2016-07-18 07:38:00.000', '2016-07-18 07:41:00.000', '2016-07-18 07:45:00.000', '2016-07-18 07:51:00.000', '2016-07-18 07:54:00.000', '2016-07-18 07:59:00.000', '2016-07-18 08:04:00.000', '2016-07-18 08:09:00.000', '2016-07-18 09:00:00.000', '2016-07-18 09:01:00.000', '2016-07-18 09:04:00.000', '2016-07-18 09:22:00.000', '2016-07-18 21:41:00.000' ]) durations = np.array( [15, 15, 15, 15, 15, 15, 15, 15, 30, 30, 15, 15, 15, 15, 15, 15, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1000]) def ballasting(utc): if np.any((Time(ballasttimes) <= Time(utc)) & (Time(utc) <= Time(ballasttimes) + durations * unit.second)): return True else: return False