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

###################################################################
[docs] def extract_ndates_before_date(self,date,n,verbose=False): ################################################################### """ Extract n values before a given date. If n values are not available, returns all available values before date. .data is set to None if no value at all is available. Parameters ---------- date : float Date in decimal year. n : int Number of observations to extract. verbose : bool, optional Verbose mode. Returns ------- Gts New Gts with at most n observations before the given date. """ # import import inspect import numpy as np # check data is not None from pyacs.gts.lib.errors import GtsInputDataNone try: if self.data is None: # raise exception raise GtsInputDataNone(inspect.stack()[0][3],__name__,self) except GtsInputDataNone as error: # print PYACS WARNING print( error ) return( self ) # copy new_Gts=self.copy( data_xyz=None ) new_Gts.data=None # extract data sel_data = np.copy(self.data[ np.where( self.data[:,0] < date ) ] ) if self.data_xyz is not None: sel_data_xyz = np.copy(self.data_xyz[ np.where( self.data[:,0] < date ) ] ) # extract data if sel_data.shape[0]>n: sel_data=sel_data[-n:,:] if self.data_xyz is not None: sel_data_xyz=sel_data_xyz[-n:,:] elif sel_data.shape[0]>0: sel_data=sel_data[:,:] if self.data_xyz is not None: sel_data_xyz=sel_data_xyz[:,:] else: sel_data = None if verbose: print("-- time series ",self.code," does not have data before ",date) new_Gts.data=sel_data if self.data_xyz is not None: new_Gts.data_xyz = sel_data_xyz return(new_Gts)