def test_case_6(self): # test with international date line self.run_calc(case_6.__file__, 'job.ini') # test CSV export fnames = export(('disagg', 'csv'), self.calc.datastore) for fname in fnames: self.assertEqualFiles('expected/%s' % strip_calc_id(fname), fname) # test the CSVs are readable for fname in fnames: hdf5.read_csv(fname) # test extract disagg_layer for Lon_Lat aw = extract(self.calc.datastore, 'disagg_layer?kind=Lon_Lat&' 'imt=PGA&poe_id=0') self.assertEqual( aw.dtype.names, ('site_id', 'lon', 'lat', 'lon_bins', 'lat_bins', 'Lon_Lat-PGA-0.002105', 'iml-PGA-0.002105')) aae(aw.mag, [6.5, 6.75, 7., 7.25]) aae(aw.dist, [0., 25., 50., 75., 100., 125., 150., 175., 200., 225., 250., 275., 300.]) aae(aw.eps, [-3., 3.]) # 6 bins -> 1 bin self.assertEqual(aw.trt, [b'Active Shallow Crust']) check_disagg_by_src(self.calc.datastore)
def test_case_1(self): self.assert_curves_ok( ['rlz-0-PGA-sid-0-poe-0_Lon_Lat.csv', 'rlz-0-PGA-sid-0-poe-0_Mag.csv', 'rlz-0-PGA-sid-0-poe-0_Mag_Dist.csv', 'rlz-0-PGA-sid-0-poe-1_Lon_Lat.csv', 'rlz-0-PGA-sid-0-poe-1_Mag.csv', 'rlz-0-PGA-sid-0-poe-1_Mag_Dist.csv', 'rlz-0-SA(0.025)-sid-0-poe-0_Lon_Lat.csv', 'rlz-0-SA(0.025)-sid-0-poe-0_Mag.csv', 'rlz-0-SA(0.025)-sid-0-poe-0_Mag_Dist.csv', 'rlz-0-SA(0.025)-sid-0-poe-1_Lon_Lat.csv', 'rlz-0-SA(0.025)-sid-0-poe-1_Mag.csv', 'rlz-0-SA(0.025)-sid-0-poe-1_Mag_Dist.csv'], case_1.__file__, fmt='csv') # disaggregation by source group rlzs = self.calc.datastore['full_lt'].get_realizations() ws = [rlz.weight for rlz in rlzs] pgetter = getters.PmapGetter(self.calc.datastore, ws) pgetter.init() pmaps = [] for grp in sorted(pgetter.dstore['poes']): pmaps.append(pgetter.get_mean(grp)) # make sure that the combination of the contributions is okay pmap = pgetter.get_mean() # total mean map cmap = combine(pmaps) # combination of the mean maps per source group for sid in pmap: numpy.testing.assert_almost_equal(pmap[sid].array, cmap[sid].array) check_disagg_by_src(self.calc.datastore)
def test_case_master(self): # this tests exercise the case of a complex logic tree self.run_calc(case_master.__file__, 'job.ini') fname = gettemp(text_table(view('mean_disagg', self.calc.datastore))) self.assertEqualFiles('expected/mean_disagg.rst', fname) os.remove(fname) fnames = export(('disagg', 'csv'), self.calc.datastore) self.assertEqual(len(fnames), 64) # 2 sid x 8 keys x 2 poe x 2 imt for fname in fnames: if 'Mag_Dist' in fname and 'Eps' not in fname: self.assertEqualFiles( 'expected_output/%s' % strip_calc_id(fname), fname) check_disagg_by_src(self.calc.datastore)