def extract_hazard_for_qgis(dstore, what): """ Extracts hazard curves and possibly hazard maps and/or uniform hazard spectra. Use it as /extract/qgis-hazard/rlz-0, etc """ oq = dstore['oqparam'] sitecol = dstore['sitecol'] yield 'sitecol', sitecol yield 'oqparam', oq yield 'realizations', dstore['csm_info'].rlzs yield 'checksum32', dstore['/'].attrs['checksum32'] N = len(sitecol) if oq.poes: pdic = {imt: oq.poes for imt in oq.imtls} for kind, hcurves in getters.PmapGetter(dstore).items(what): logging.info('extracting hazard/%s', kind) yield 'hcurves-' + kind, calc.convert_to_array(hcurves, N, oq.imtls) if oq.poes and oq.uniform_hazard_spectra: yield 'uhs-' + kind, calc.make_uhs(hcurves, oq.imtls, oq.poes, N) if oq.poes and oq.hazard_maps: hmaps = calc.make_hmap(hcurves, oq.imtls, oq.poes) yield 'hmaps-' + kind, calc.convert_to_array(hmaps, N, pdic)
def export_hmaps_np(ekey, dstore): oq = dstore['oqparam'] sitecol = dstore['sitecol'] mesh = get_mesh(sitecol) pdic = DictArray({imt: oq.poes for imt in oq.imtls}) fname = dstore.export_path('%s.%s' % ekey) dic = {} for kind, hcurves in PmapGetter(dstore).items(): hmap = calc.make_hmap(hcurves, oq.imtls, oq.poes) dic[kind] = calc.convert_to_array(hmap, len(mesh), pdic) save_np(fname, dic, mesh, ('vs30', F32, sitecol.vs30), investigation_time=oq.investigation_time) return [fname]
def extract_hmaps(dstore, what): """ Extracts hazard maps. Use it as /extract/hmaps/mean or /extract/hmaps/rlz-0, etc """ oq = dstore['oqparam'] sitecol = dstore['sitecol'] mesh = get_mesh(sitecol) pdic = DictArray({imt: oq.poes for imt in oq.imtls}) dic = {} for kind, hcurves in getters.PmapGetter(dstore).items(what): hmap = calc.make_hmap(hcurves, oq.imtls, oq.poes) dic[kind] = calc.convert_to_array(hmap, len(mesh), pdic) return hazard_items(dic, mesh, investigation_time=oq.investigation_time)
def export_hazard_csv(key, dest, sitemesh, pmap, imtls, comment): """ Export the curves of the given realization into CSV. :param key: output_type and export_type :param dest: name of the exported file :param sitemesh: site collection :param pmap: a ProbabilityMap :param dict imtls: intensity measure types and levels :param comment: comment to use as header of the exported CSV file """ curves = util.compose_arrays( sitemesh, calc.convert_to_array(pmap, len(sitemesh), imtls)) writers.write_csv(dest, curves, comment=comment) return [dest]
def view_flat_hcurves(token, dstore): """ Display the flat hazard curves for the calculation. They are used for debugging purposes when comparing the results of two calculations. They are the mean over the sites of the mean hazard curves. """ oq = dstore['oqparam'] nsites = len(dstore['sitecol']) mean = getters.PmapGetter(dstore).get_mean() array = calc.convert_to_array(mean, nsites, oq.imtls) res = numpy.zeros(1, array.dtype) for name in array.dtype.names: res[name] = array[name].mean() return rst_table(res)
def view_global_hcurves(token, dstore): """ Display the global hazard curves for the calculation. They are used for debugging purposes when comparing the results of two calculations. They are the mean over the sites of the mean hazard curves. """ oq = dstore['oqparam'] nsites = len(dstore['sitecol']) rlzs_assoc = dstore['csm_info'].get_rlzs_assoc() mean = getters.PmapGetter(dstore, rlzs_assoc).get_mean() array = calc.convert_to_array(mean, nsites, oq.imtls) res = numpy.zeros(1, array.dtype) for name in array.dtype.names: res[name] = array[name].mean() return rst_table(res)
def view_global_hcurves(token, dstore): """ Display the global hazard curves for the calculation. They are used for debugging purposes when comparing the results of two calculations. They are the mean over the sites of the mean hazard curves. """ oq = dstore['oqparam'] nsites = len(dstore['sitecol']) rlzs_assoc = dstore['csm_info'].get_rlzs_assoc() weights = [rlz.weight for rlz in rlzs_assoc.realizations] mean = getters.PmapGetter(dstore, rlzs_assoc, weights).get_mean() array = calc.convert_to_array(mean, nsites, oq.imtls) res = numpy.zeros(1, array.dtype) for name in array.dtype.names: res[name] = array[name].mean() return rst_table(res)
def view_flat_hmaps(token, dstore): """ Display the flat hazard maps for the calculation. They are used for debugging purposes when comparing the results of two calculations. They are the mean over the sites of the mean hazard maps. """ oq = dstore['oqparam'] assert oq.poes nsites = len(dstore['sitecol']) pdic = DictArray({imt: oq.poes for imt in oq.imtls}) mean = getters.PmapGetter(dstore).get_mean() hmaps = calc.make_hmap(mean, oq.imtls, oq.poes) array = calc.convert_to_array(hmaps, nsites, pdic) res = numpy.zeros(1, array.dtype) for name in array.dtype.names: res[name] = array[name].mean() return rst_table(res)
def export_hazard_csv(key, dest, sitemesh, pmap, pdic, comment): """ Export the hazard maps of the given realization into CSV. :param key: output_type and export_type :param dest: name of the exported file :param sitemesh: site collection :param pmap: a ProbabilityMap :param pdic: intensity measure types and levels :param comment: comment to use as header of the exported CSV file """ if isinstance(pmap, dict): # old format array = calc.convert_to_array(pmap, len(sitemesh), pdic) else: # new format for engine >= 3.2 array = pmap curves = util.compose_arrays(sitemesh, array) writers.write_csv(dest, curves, comment=comment) return [dest]