def build_aggcurves(self): prc = PostRiskCalculator(self.oqparam, self.datastore.calc_id) prc.assetcol = self.assetcol if hasattr(self, 'exported'): prc.exported = self.exported with prc.datastore: prc.run(exports='') # save agg_curves-stats if self.R > 1 and 'aggcurves' in self.datastore: save_curve_stats(self.datastore)
def test_recompute(self): # test recomputing aggregate loss curves with post_risk # this is starting from a ruptures.csv file out = self.run_calc(recompute.__file__, 'job.ini', exports='csv') [fname] = out['aggrisk', 'csv'] self.assertEqualFiles('expected/agg_losses.csv', fname, delta=1E-5) [fname] = out['aggcurves', 'csv'] self.assertEqualFiles('expected/aggcurves.csv', fname, delta=1E-5) parent = self.calc.datastore # the parent has aggregate_by = NAME_1, NAME_2, taxonomy oq = parent['oqparam'] oq.__dict__['aggregate_by'] = ['NAME_1'] log = logs.init('job', {'calculation_mode': 'post_risk', 'description': 'test recompute'}) prc = PostRiskCalculator(oq, log.calc_id) prc.assetcol = self.calc.assetcol oq.hazard_calculation_id = parent.calc_id with mock.patch.dict(os.environ, {'OQ_DISTRIBUTE': 'no'}), log: prc.run() [fname] = export(('aggrisk', 'csv'), prc.datastore) self.assertEqualFiles('expected/recomputed_losses.csv', fname, delta=1E-5)