def select_catalogue(self, valid_id): ''' Method to post-process the catalogue based on the selection options :param numpy.ndarray valid_id: Boolean vector indicating whether each event is selected (True) or not (False) :returns: Catalogue of selected events as instance of hmtk.seismicity.catalogue.Catalogue class ''' if not np.any(valid_id): # No events selected - create clean instance of class output = Catalogue() output.processes = self.catalogue.processes output elif np.all(valid_id): if self.copycat: output = deepcopy(self.catalogue) else: output = self.catalogue else: if self.copycat: output = deepcopy(self.catalogue) else: output = self.catalogue output.purge_catalogue(valid_id) return output
def select_catalogue(self, valid_id): ''' Method to post-process the catalogue based on the selection options :param numpy.ndarray valid_id: Boolean vector indicating whether each event is selected (True) or not (False) :returns: Catalogue of selected events as instance of hmtk.seismicity.catalogue.Catalogue class ''' if not np.any(valid_id): # No events selected - create clean instance of class output = Catalogue() output.processes = self.catalogue.processes elif np.all(valid_id): if self.copycat: output = deepcopy(self.catalogue) else: output = self.catalogue else: if self.copycat: output = deepcopy(self.catalogue) else: output = self.catalogue output.purge_catalogue(valid_id) return output
def test_purge_catalogue(self): # Tests the function to purge the catalogue of invalid events cat1 = Catalogue() cat1.data['eventID'] = np.array([100, 101, 102], dtype=int) cat1.data['magnitude'] = np.array([4., 5., 6.], dtype=float) cat1.data['Agency'] = ['XXX', 'YYY', 'ZZZ'] flag_vector = np.array([False, True, False]) cat1.purge_catalogue(flag_vector) np.testing.assert_array_almost_equal(cat1.data['magnitude'], np.array([5.])) np.testing.assert_array_equal(cat1.data['eventID'], np.array([101])) self.assertListEqual(cat1.data['Agency'], ['YYY'])