Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1import numpy as np 

2from .baseMetric import BaseMetric 

3 

4__all__ = ['LongGapAGNMetric'] 

5 

6 

7class LongGapAGNMetric(BaseMetric): 

8 """max delta-t and average of the top-10 longest gaps. 

9 """ 

10 

11 def __init__(self, metricName='longGapAGNMetric', 

12 mjdcol='observationStartMJD', units='days', xgaps=10, badval=-666, 

13 **kwargs): 

14 """ Instantiate metric. 

15 mjdcol = column name for exposure time dates 

16 """ 

17 cols = [mjdcol] 

18 super(LongGapAGNMetric, self).__init__(cols, metricName, units=units, **kwargs) 

19 self.badval = badval 

20 self.mjdcol = mjdcol 

21 self.xgaps = xgaps 

22 self.units = units 

23 

24 def run(self, dataslice, slicePoint=None): 

25 metricval = np.diff(dataslice[self.mjdcol]) 

26 return metricval 

27 

28 def reduceMaxGap(self, metricval): 

29 if metricval.size > 0: 

30 result = np.max(metricval) 

31 else: 

32 result = self.badval 

33 return result 

34 

35 def reduceAverageLongestXGaps(self, metricval): 

36 if np.size(metricval)-self.xgaps > 0: 

37 return np.average(np.sort(metricval)[np.size(metricval)-self.xgaps:]) 

38 else: 

39 return self.badval