def build_rupture_from_file(rupture_file, simple_mesh_spacing=1.0, complex_mesh_spacing=1.0): """ Parses a rupture from the OpenQuake nrml 4.0 format and parses it to an instance of :class: openquake.hazardlib.source.rupture.Rupture """ [rup_node] = nrml.read(rupture_file) conv = RuptureConverter(simple_mesh_spacing, complex_mesh_spacing) return conv.convert_node(rup_node)
def test_case_17(self): # oversampling and save_ruptures # also, grp-00 does not produce ruptures expected = [ 'hazard_curve-mean.csv', 'hazard_curve-rlz-001.csv', 'hazard_curve-rlz-002.csv', 'hazard_curve-rlz-003.csv', 'hazard_curve-rlz-004.csv', ] # test the --hc functionality, i.e. that ruptures are read correctly out = self.run_calc(case_17.__file__, 'job.ini,job.ini', exports='csv') fnames = out['hcurves', 'csv'] for exp, got in zip(expected, fnames): self.assertEqualFiles('expected/%s' % exp, got) # check that a single rupture file is exported even if there are # several collections [fname] = export(('ruptures', 'xml'), self.calc.datastore.parent) self.assertEqualFiles('expected/ses.xml', fname) # check that the exported file is parseable rupcoll = nrml.to_python(fname, RuptureConverter(1)) self.assertEqual(list(rupcoll), [1]) # one group self.assertEqual(len(rupcoll[1]), 3) # three EBRuptures # check that GMFs are not stored with self.assertRaises(KeyError): self.calc.datastore['gmf_data']