def _run(self):
     classical_psha.compute_mean_hazard_maps(self.engine)
Exemple #2
0
 def _run(self):
     classical_psha.compute_mean_hazard_maps(self.engine)
Exemple #3
0
    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)
Exemple #4
0
    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
Exemple #5
0
    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