def test_filtering_non_empty_eq_catalog(self): eq_internal_point = [2000, 1, 2, -0.25, 0.25] eq_side_point = [2000, 1, 2, -0.5, 0.25] eq_external_point = [2000, 1, 2, 0.5, 0.25] eq_catalog = np.array([eq_internal_point, eq_side_point, eq_external_point]) sm_filter = SourceModelCatalogFilter() expected_catalog = np.array([eq_internal_point]) self.assertTrue(np.array_equal(expected_catalog, sm_filter.filter_eqs(self.sm_geometry, eq_catalog)))
def test_source_model_calling_a_filter(self): sm_filter = SourceModelCatalogFilter() sm_filter.filter_eqs = Mock() sm_filter.filter_eqs.return_value = [] catalog_filter = CatalogFilter(sm_filter) gen = catalog_filter.filter_eqs([dict(a=1), dict(b=2)], []) self.assertEqual((dict(a=1), []), gen.next()) self.assertEqual((dict(b=2), []), gen.next()) self.assertEqual(dict(a=1), sm_filter.filter_eqs.call_args_list[0][0][0]) self.assertEqual(dict(b=2), sm_filter.filter_eqs.call_args_list[1][0][0])
def test_filtering_non_empty_eq_catalog(self): eq_internal_point = [2000, 1, 2, -0.25, 0.25] eq_side_point = [2000, 1, 2, -0.5, 0.25] eq_external_point = [2000, 1, 2, 0.5, 0.25] eq_catalog = np.array( [eq_internal_point, eq_side_point, eq_external_point]) sm_filter = SourceModelCatalogFilter() expected_catalog = np.array([eq_internal_point]) self.assertTrue( np.array_equal(expected_catalog, sm_filter.filter_eqs(self.sm_geometry, eq_catalog)))
def test_source_model_calling_a_filter(self): sm_filter = SourceModelCatalogFilter() sm_filter.filter_eqs = Mock() sm_filter.filter_eqs.return_value = [] catalog_filter = CatalogFilter(sm_filter) gen = catalog_filter.filter_eqs([dict(a=1), dict(b=2)], []) self.assertEqual((dict(a=1), []), gen.next()) self.assertEqual((dict(b=2), []), gen.next()) self.assertEqual(dict(a=1), sm_filter.filter_eqs.call_args_list[0][0][0]) self.assertEqual(dict(b=2), sm_filter.filter_eqs.call_args_list[1][0][0])
from mtoolkit.catalog_filter import CatalogFilter, SourceModelCatalogFilter if __name__ == '__main__': CMD_LINE_ARGS = cmd_line() if CMD_LINE_ARGS: INPUT_CONFIG_FILENAME = CMD_LINE_ARGS.input_file[0] LOG_LEVEL = logging.DEBUG if CMD_LINE_ARGS.detailed else logging.INFO build_logger(LOG_LEVEL) CONTEXT = Context(INPUT_CONFIG_FILENAME) PIPELINE_PREPROCESSING = PreprocessingBuilder().build(CONTEXT.config) PIPELINE_PROCESSING = ProcessingBuilder().build(CONTEXT.config) if CONTEXT.config['source_model_file']: CATALOG_FILTER = CatalogFilter(SourceModelCatalogFilter()) else: CATALOG_FILTER = CatalogFilter() WORKFLOW = Workflow(PIPELINE_PREPROCESSING, PIPELINE_PROCESSING) WORKFLOW.start(CONTEXT, CATALOG_FILTER) WRITER = AreaSourceWriter(CONTEXT.config['result_file']) WRITER.serialize(CONTEXT.sm_definitions)
def test_filtering_an_empty_eq_catalog(self): sm_filter = SourceModelCatalogFilter() self.assertTrue(np.allclose(self.empty_catalog, sm_filter.filter_eqs(self.sm_geometry, self.empty_catalog)))
def test_a_bad_polygon_raises_exception(self): self.sm_geometry = build_geometry([1, 1, 1, 2, 2, 1, 2, 2]) sm_filter = SourceModelCatalogFilter() self.assertRaises(RuntimeError, sm_filter.filter_eqs, self.sm_geometry, self.empty_catalog)
def test_filtering_an_empty_eq_catalog(self): sm_filter = SourceModelCatalogFilter() self.assertTrue( np.allclose( self.empty_catalog, sm_filter.filter_eqs(self.sm_geometry, self.empty_catalog)))
def run(workflow, context): """Run the workflow with source model filtering""" return workflow.start(context, CatalogFilter(SourceModelCatalogFilter()))