def _run(self): classical_psha.compute_mean_hazard_maps(self.engine)
def _run(self, poes, sites=None): if sites is None: sites = [self.site] classical_psha.compute_mean_hazard_maps(self.job.job_id, sites, self.imls, poes)
def execute(self): results = [] source_model_generator = random.Random() source_model_generator.seed( self.params.get('SOURCE_MODEL_LT_RANDOM_SEED', None)) gmpe_generator = random.Random() gmpe_generator.seed(self.params.get('GMPE_LT_RANDOM_SEED', None)) realizations = int(self.params['NUMBER_OF_LOGIC_TREE_SAMPLES']) site_list = self.sites_for_region() LOG.info('Going to run classical PSHA hazard for %s realizations '\ 'and %s sites' % (realizations, len(site_list))) for realization in xrange(0, realizations): LOG.info('Calculating hazard curves for realization %s' % realization) pending_tasks = [] results_per_realization = [] self.store_source_model(source_model_generator.getrandbits(32)) self.store_gmpe_map(source_model_generator.getrandbits(32)) pending_tasks.append( tasks.compute_hazard_curve.delay(self.id, site_list, realization)) for task in pending_tasks: task.wait() if task.status != 'SUCCESS': raise Exception(task.result) results_per_realization.extend(task.result) self.write_hazardcurve_file(results_per_realization) results.extend(results_per_realization) del results_per_realization # compute and serialize mean and quantile hazard curves pending_tasks_mean = [] results_mean = [] pending_tasks_quantile = [] results_quantile = [] LOG.info('Computing mean and quantile hazard curves') pending_tasks_quantile.append( tasks.compute_quantile_curves.delay(self.id, site_list)) if self.params['COMPUTE_MEAN_HAZARD_CURVE'].lower() == 'true': pending_tasks_mean.append( tasks.compute_mean_curves.delay(self.id, site_list)) for task in pending_tasks_mean: task.wait() if task.status != 'SUCCESS': raise Exception(task.result) results_mean.extend(task.result) for task in pending_tasks_quantile: task.wait() if task.status != 'SUCCESS': raise Exception(task.result) results_quantile.extend(task.result) if self.params['COMPUTE_MEAN_HAZARD_CURVE'].lower() == 'true': LOG.info('Serializing mean hazard curves') self.write_hazardcurve_file(results_mean) del results_mean if self.params[classical_psha.POES_PARAM_NAME] != '': LOG.info('Computing/serializing mean hazard maps') results_mean_maps = classical_psha.compute_mean_hazard_maps( self) self.write_hazardmap_file(results_mean_maps) del results_mean_maps # collect hazard curve keys per quantile value quantile_values = _collect_curve_keys_per_quantile(results_quantile) LOG.info('Serializing quantile hazard curves for %s quantile values' \ % len(quantile_values)) for key_list in quantile_values.values(): self.write_hazardcurve_file(key_list) # compute quantile hazard maps if (self.params[classical_psha.POES_PARAM_NAME] != '' and len(quantile_values) > 0): LOG.info('Computing quantile hazard maps') results_quantile_maps = \ classical_psha.compute_quantile_hazard_maps(self) quantile_values = _collect_map_keys_per_quantile( results_quantile_maps) LOG.info( "Serializing quantile hazard maps for %s quantile values" % len(quantile_values)) for key_list in quantile_values.values(): self.write_hazardmap_file(key_list) return results