예제 #1
0
def setupMetrics(colmap, wholesurvey=False):
    metricList = []
    captionList = []
    # Number of filter changes (per slice - either whole survey or X nights)
    if wholesurvey:
        metricList.append(metrics.NChangesMetric(col=colmap['filter'], orderBy=colmap['mjd'],
                                                 metricName='Total Filter Changes'))
    else:
        metricList.append(metrics.NChangesMetric(col=colmap['filter'], orderBy=colmap['mjd'],
                                                 metricName='Filter Changes'))
    captionList.append('Total filter changes ')
    # Minimum time between filter changes
    metricList.append(metrics.MinTimeBetweenStatesMetric(changeCol=colmap['filter'], timeCol=colmap['mjd']))
    captionList.append('Minimum time between filter changes ')
    # Number of filter changes faster than 10 minutes
    metricList.append(metrics.NStateChangesFasterThanMetric(changeCol=colmap['filter'], timeCol=colmap['mjd'],
                                                            cutoff=10))
    captionList.append('Number of filter changes faster than 10 minutes ')
    # Number of filter changes faster than 20 minutes
    metricList.append(metrics.NStateChangesFasterThanMetric(changeCol=colmap['filter'], timeCol=colmap['mjd'],
                                                            cutoff=20))
    captionList.append('Number of filter changes faster than 20 minutes ')
    # Maximum number of filter changes faster than 10 minutes within slice
    metricList.append(metrics.MaxStateChangesWithinMetric(changeCol=colmap['filter'], timeCol=colmap['mjd'],
                                                          timespan=10))
    captionList.append('Max number of filter  changes within a window of 10 minutes ')
    # Maximum number of filter changes faster than 20 minutes within slice
    metricList.append(metrics.MaxStateChangesWithinMetric(changeCol=colmap['filter'], timeCol=colmap['mjd'],
                                                          timespan=20))
    captionList.append('Max number of filter changes within a window of 20 minutes ')
    return metricList, captionList
예제 #2
0
 def testMinTimeBetweenStatesMetric(self):
     """
     Test the minTimeBetweenStates metric.
     """
     filters = np.array(['u', 'g', 'g', 'r'])
     visitTimes = np.array([0, 5, 6, 7])  # days
     data = np.core.records.fromarrays(
         [visitTimes, filters], names=['observationStartMJD', 'filter'])
     metric = metrics.MinTimeBetweenStatesMetric()
     result = metric.run(data)  # minutes
     self.assertEqual(result, 2 * 24.0 * 60.0)
     data['filter'] = np.array(['u', 'u', 'u', 'u'])
     result = metric.run(data)
     self.assertEqual(result, metric.badval)