Source code for pyacs.gts.lib.primitive.get_values_at_date

[docs] def get_values_at_date(self, date, data_type='data_xyz'): """ return the values of the time series at a given date. date can be provided as a datetime, string, decimal year, modified julian day, or (doy,year) data_type can be 'data' or 'data_xyz' parameters: ----------- date: datetime, string, float, tuple the date to look for data_type: string 'data' or 'data_xyz' depending on the type of data to return """ # import from datetime import datetime import pyacs.lib.astrotime as at import numpy as np # converts to seconds dates_ts = at.decyear2seconds(self.data[:, 0]) # handle different date formats if type(date) == datetime: date = at.datetime2seconds(date) if type(date) == str: date = at.datetime2seconds(datetime.strptime(date, '%Y-%m-%d')) if type(date) == float: if date < 10000: date = at.decyear2seconds(date) else: date = at.mjd2seconds(date) if type(date) == tuple: date = at.datetime2seconds(at.dayno2datetime(date[0], date[1])) # find the closest date idx = np.argmin(np.abs(dates_ts - date)) if data_type == 'data': return self.data[idx, :] else: return self.data_xyz[idx, :]