openquake.commonlib package

calc module

class openquake.commonlib.calc.RuptureData(trt, gsims)[source]

Bases: object

Container for information about the ruptures of a given tectonic region type.

to_array(ebruptures)[source]

Convert a list of ebruptures into an array of dtype RuptureRata.dt

class openquake.commonlib.calc.RuptureSerializer(datastore)[source]

Bases: object

Serialize event based ruptures on an HDF5 files. Populate the datasets ruptures and sids.

close()[source]

Save information about the rupture codes as attributes of the ‘ruptures’ dataset.

save(rup_array)[source]

Store the ruptures in array format.

openquake.commonlib.calc.compute_hazard_maps(curves, imls, poes)[source]

Given a set of hazard curve poes, interpolate a hazard map at the specified poe.

Parameters
  • curves – 2D array of floats. Each row represents a curve, where the values in the row are the PoEs (Probabilities of Exceedance) corresponding to imls. Each curve corresponds to a geographical location.

  • imls – Intensity Measure Levels associated with these hazard curves. Type should be an array-like of floats.

  • poes – Value(s) on which to interpolate a hazard map from the input curves. Can be an array-like or scalar value (for a single PoE).

Returns

An array of shape N x P, where N is the number of curves and P the number of poes.

openquake.commonlib.calc.convert_to_array(pmap, nsites, imtls, inner_idx=0)[source]

Convert the probability map into a composite array with header of the form PGA-0.1, PGA-0.2 …

Parameters
  • pmap – probability map

  • nsites – total number of sites

  • imtls – a DictArray with IMT and levels

Returns

a composite array of lenght nsites

openquake.commonlib.calc.make_hmap(pmap, imtls, poes)[source]

Compute the hazard maps associated to the passed probability map.

Parameters
  • pmap – hazard curves in the form of a ProbabilityMap

  • imtls – DictArray with M intensity measure types

  • poes – P PoEs where to compute the maps

Returns

a ProbabilityMap with size (N, M, P)

openquake.commonlib.calc.make_hmap_array(pmap, imtls, poes, nsites)[source]
Returns

a compound array of hazard maps of shape nsites

openquake.commonlib.calc.make_uhs(hmap, info)[source]

Make Uniform Hazard Spectra curves for each location.

Parameters
  • hmap – array of shape (N, M, P)

  • info – a dictionary with keys poes, imtls, uhs_dt

Returns

a composite array containing uniform hazard spectra

hazard_writers module

Classes for serializing various NRML XML artifacts.

class openquake.commonlib.hazard_writers.BaseCurveWriter(dest, **metadata)[source]

Bases: object

Base class for curve writers.

Parameters
  • dest – File path (including filename) or file-like object for results to be saved to.

  • metadata

    The following keyword args are required:

    • investigation_time: Investigation time (in years) defined in the calculation which produced these results.

    The following are more or less optional (combinational rules noted below where applicable):

    • statistics: ‘mean’ or ‘quantile’

    • quantile_value: Only required if statistics = ‘quantile’.

    • smlt_path: String representing the logic tree path which produced these curves. Only required for non-statistical curves.

    • gsimlt_path: String represeting the GSIM logic tree path which produced these curves. Only required for non-statisical curves.

serialize(_data)[source]

Implement in subclasses.

class openquake.commonlib.hazard_writers.DisaggXMLWriter(dest, **metadata)[source]

Bases: object

Parameters
  • dest – File path (including filename) or file-like object for XML results to be saved to.

  • metadata

    The following keyword args are required:

    • investigation_time: Investigation time (in years) defined in the calculation which produced these results.

    • imt: Intensity measure type used to compute these matrices.

    • lon, lat: Longitude and latitude associated with these results.

    The following attributes define dimension context for the result matrices:

    • mag_bin_edges: List of magnitude bin edges (floats)

    • dist_bin_edges: List of distance bin edges (floats)

    • lon_bin_edges: List of longitude bin edges (floats)

    • lat_bin_edges: List of latitude bin edges (floats)

    • eps_bin_edges: List of epsilon bin edges (floats)

    • tectonic_region_types: List of tectonic region types (strings)

    • smlt_path: String representing the logic tree path which produced these results. Only required for non-statistical results.

    • gsimlt_path: String represeting the GSIM logic tree path which produced these results. Only required for non-statistical results.

    The following are optional, depending on the imt:

    • sa_period

    • sa_damping

BIN_EDGE_ATTR_MAP = {'dist_bin_edges': 'distBinEdges', 'eps_bin_edges': 'epsBinEdges', 'lat_bin_edges': 'latBinEdges', 'lon_bin_edges': 'lonBinEdges', 'mag_bin_edges': 'magBinEdges', 'tectonic_region_types': 'tectonicRegionTypes'}

Maps metadata keywords to XML attribute names for bin edge information passed to the constructor.

DIM_LABEL_TO_BIN_EDGE_MAP = {'Dist': 'dist_bin_edges', 'Eps': 'eps_bin_edges', 'Lat': 'lat_bin_edges', 'Lon': 'lon_bin_edges', 'Mag': 'mag_bin_edges', 'TRT': 'tectonic_region_types'}
serialize(data)[source]
Parameters

data

A sequence of data where each datum has the following attributes:

  • matrix: N-dimensional numpy array containing the disaggregation histogram.

  • dim_labels: A list of strings which label the dimensions of a given histogram. For example, for a Magnitude-Distance-Epsilon histogram, we would expect dim_labels to be ['Mag', 'Dist', 'Eps'].

  • poe: The disaggregation Probability of Exceedance level for which these results were produced.

  • iml: Intensity measure level, interpolated from the source hazard curve at the given poe.

class openquake.commonlib.hazard_writers.EventBasedGMFXMLWriter(dest, sm_lt_path, gsim_lt_path)[source]

Bases: object

Parameters
  • dest – File path (including filename) or a file-like object for XML results to be saved to.

  • sm_lt_path (str) – Source model logic tree branch identifier of the logic tree realization which produced this collection of ground motion fields.

  • gsim_lt_path – GSIM logic tree branch identifier of the logic tree realization which produced this collection of ground motion fields.

serialize(data, fmt='%10.7E')[source]

Serialize a collection of ground motion fields to XML.

Parameters

data

An iterable of “GMF set” objects. Each “GMF set” object should:

  • have an investigation_time attribute

  • have an stochastic_event_set_id attribute

  • be iterable, yielding a sequence of “GMF” objects

Each “GMF” object should:

  • have an imt attribute

  • have an sa_period attribute (only if imt is ‘SA’)

  • have an sa_damping attribute (only if imt is ‘SA’)

  • have a event_id attribute (to indicate which rupture contributed to this gmf)

  • be iterable, yielding a sequence of “GMF node” objects

Each “GMF node” object should have:

  • a gmv attribute (to indicate the ground motion value

  • lon and lat attributes (to indicate the geographical location of the ground motion field)

class openquake.commonlib.hazard_writers.HazardCurveXMLWriter(dest, **metadata)[source]

Bases: openquake.commonlib.hazard_writers.BaseCurveWriter

Hazard Curve XML writer. See BaseCurveWriter for a list of general constructor inputs.

The following additional metadata params are required:
  • imt: Intensity measure type used to compute these hazard curves.

  • imls: Intensity measure levels, which represent the x-axis values of each curve.

The following parameters are optional:
  • sa_period: Only used with imt = ‘SA’.

  • sa_damping: Only used with imt = ‘SA’.

add_hazard_curves(root, metadata, data)[source]

Add hazard curves stored into data as child of the root element with metadata. See the documentation of the method serialize and the constructor for a description of data and metadata, respectively.

serialize(data)[source]

Write a sequence of hazard curves to the specified file.

Parameters

data

Iterable of hazard curve data. Each datum must be an object with the following attributes:

  • poes: A list of probability of exceedence values (floats).

  • location: An object representing the location of the curve; must have x and y to represent lon and lat, respectively.

class openquake.commonlib.hazard_writers.HazardMapWriter(dest, **metadata)[source]

Bases: object

Parameters
  • dest – File path (including filename) or a file-like object for results to be saved to.

  • metadata

    The following keyword args are required:

    • investigation_time: Investigation time (in years) defined in the calculation which produced these results.

    • imt: Intensity measure type used to compute these hazard curves.

    • poe: The Probability of Exceedance level for which this hazard map was produced.

    The following are more or less optional (combinational rules noted below where applicable):

    • statistics: ‘mean’ or ‘quantile’

    • quantile_value: Only required if statistics = ‘quantile’.

    • smlt_path: String representing the logic tree path which produced these curves. Only required for non-statistical curves.

    • gsimlt_path: String represeting the GSIM logic tree path which produced these curves. Only required for non-statisical curves.

    • sa_period: Only used with imt = ‘SA’.

    • sa_damping: Only used with imt = ‘SA’.

serialize(data)[source]

Write a sequence of hazard map data to the specified file.

Parameters

data – Iterable of hazard map data. Each datum should be a triple of (lon, lat, iml) values.

class openquake.commonlib.hazard_writers.HazardMapXMLWriter(dest, **metadata)[source]

Bases: openquake.commonlib.hazard_writers.HazardMapWriter

NRML/XML implementation of a HazardMapWriter.

See HazardMapWriter for information about constructor parameters.

serialize(data)[source]

Serialize hazard map data to XML.

See HazardMapWriter.serialize() for details about the expected input.

class openquake.commonlib.hazard_writers.SESXMLWriter(dest)[source]

Bases: object

Parameters
  • dest – File path (including filename) or a file-like object for XML results to be saved to.

  • sm_lt_path (str) – Source model logic tree branch identifier of the logic tree realization which produced this collection of stochastic event sets.

  • gsim_lt_path – GSIM logic tree branch identifier of the logic tree realization which produced this collection of stochastic event sets.

serialize(data, investigation_time)[source]

Serialize a collection of stochastic event sets to XML.

Parameters
  • data

    A dictionary src_group_id -> list of openquake.commonlib.calc.Rupture objects. Each Rupture should have the following attributes:

    • rupid

    • events_by_ses

    • magnitude

    • strike

    • dip

    • rake

    • tectonic_region_type

    • is_from_fault_source (a bool)

    • is_multi_surface (a bool)

    • lons

    • lats

    • depths

    If is_from_fault_source is True, the rupture originated from a simple or complex fault sources. In this case, lons, lats, and depths should all be 2D arrays (of uniform shape). These coordinate triples represent nodes of the rupture mesh.

    If is_from_fault_source is False, the rupture originated from a point or area source. In this case, the rupture is represented by a quadrilateral planar surface. This planar surface is defined by 3D vertices. In this case, the rupture should have the following attributes:

    • top_left_corner

    • top_right_corner

    • bottom_right_corner

    • bottom_left_corner

    Each of these should be a triple of lon, lat, depth.

    If is_multi_surface is True, the rupture originated from a multi-surface source. In this case, lons, lats, and depths should have uniform length. The length should be a multiple of 4, where each segment of 4 represents the corner points of a planar surface in the following order:

    • top left

    • top right

    • bottom left

    • bottom right

    Each of these should be a triple of lon, lat, depth.

  • investigation_time – Investigation time parameter specified in the job.ini

class openquake.commonlib.hazard_writers.UHSXMLWriter(dest, **metadata)[source]

Bases: openquake.commonlib.hazard_writers.BaseCurveWriter

UHS curve XML writer. See BaseCurveWriter for a list of general constructor inputs.

The following additional metadata params are required:
  • poe: Probability of exceedance for which a given set of UHS have been

    computed

  • periods: A list of SA (Spectral Acceleration) period values, sorted

    ascending order

serialize(data)[source]

Write a sequence of uniform hazard spectra to the specified file.

Parameters

data

Iterable of UHS data. Each datum must be an object with the following attributes:

  • imls: A sequence of Intensity Measure Levels

  • location: An object representing the location of the curve; must have x and y to represent lon and lat, respectively.

openquake.commonlib.hazard_writers.gen_gmfs(gmf_set)[source]

Generate GMF nodes from a gmf_set :param gmf_set: a sequence of GMF objects with attributes imt, sa_period, sa_damping, event_id and containing a list of GMF nodes with attributes gmv and location. The nodes are sorted by lon/lat.

openquake.commonlib.hazard_writers.rupture_to_element(rup, parent=None)[source]

Convert a rupture object into an Element object.

Parameters
  • rup – must have attributes .rupid, .events_by_ses and .seed

  • parent – parent of the returned element, or None

openquake.commonlib.hazard_writers.sub_elems(elem, rup, *names)[source]

logictree module

Logic tree parser, verifier and processor. See specs at https://blueprints.launchpad.net/openquake-old/+spec/openquake-logic-tree-module

A logic tree object must be iterable and yielding realizations, i.e. objects with attributes value, weight, lt_path and ordinal.

class openquake.commonlib.logictree.Branch(bs_id, branch_id, weight, value)[source]

Bases: object

Branch object, represents a <logicTreeBranch /> element.

Parameters
  • bs_id – BranchSetID of the branchset to which the branch belongs

  • branch_id – Value of @branchID attribute.

  • weight – float value of weight assigned to the branch. A text node contents of <uncertaintyWeight /> child node.

  • value – The actual uncertainty parameter value. A text node contents of <uncertaintyModel /> child node. Type depends on the branchset’s uncertainty type.

class openquake.commonlib.logictree.BranchSet(uncertainty_type, filters)[source]

Bases: object

Branchset object, represents a <logicTreeBranchSet /> element.

Parameters
  • uncertainty_type

    String value. According to the spec one of:

    gmpeModel

    Branches contain references to different GMPEs. Values are parsed as strings and are supposed to be one of supported GMPEs. See list at GMPELogicTree.

    sourceModel

    Branches contain references to different PSHA source models. Values are treated as file names, relatively to base path.

    maxMagGRRelative

    Different values to add to Gutenberg-Richter (“GR”) maximum magnitude. Value should be interpretable as float.

    bGRRelative

    Values to add to GR “b” value. Parsed as float.

    maxMagGRAbsolute

    Values to replace GR maximum magnitude. Values expected to be lists of floats separated by space, one float for each GR MFD in a target source in order of appearance.

    abGRAbsolute

    Values to replace “a” and “b” values of GR MFD. Lists of pairs of floats, one pair for one GR MFD in a target source.

    incrementalMFDAbsolute

    Replaces an evenly discretized MFD with the values provided

    simpleFaultDipRelative

    Increases or decreases the angle of fault dip from that given in the original source model

    simpleFaultDipAbsolute

    Replaces the fault dip in the specified source(s)

    simpleFaultGeometryAbsolute

    Replaces the simple fault geometry (trace, upper seismogenic depth lower seismogenic depth and dip) of a given source with the values provided

    complexFaultGeometryAbsolute

    Replaces the complex fault geometry edges of a given source with the values provided

    characteristicFaultGeometryAbsolute

    Replaces the complex fault geometry surface of a given source with the values provided

  • filters

    Dictionary, a set of filters to specify which sources should the uncertainty be applied to. Represented as branchset element’s attributes in xml:

    applyToSources

    The uncertainty should be applied only to specific sources. This filter is required for absolute uncertainties (also only one source can be used for those). Value should be the list of source ids. Can be used only in source model logic tree.

    applyToSourceType

    Can be used in the source model logic tree definition. Allows to specify to which source type (area, point, simple fault, complex fault) the uncertainty applies to.

    applyToTectonicRegionType

    Can be used in both the source model and GMPE logic trees. Allows to specify to which tectonic region type (Active Shallow Crust, Stable Shallow Crust, etc.) the uncertainty applies to. This filter is required for all branchsets in GMPE logic tree.

apply_uncertainty(value, source)[source]

Apply this branchset’s uncertainty with value value to source source, if it passes filters.

This method is not called for uncertainties of types “gmpeModel” and “sourceModel”.

Parameters
  • value – The actual uncertainty value of sampled branch. Type depends on uncertainty type.

  • source – The opensha source data object.

Returns

0 if the source was not changed, 1 otherwise

enumerate_paths()[source]

Generate all possible paths starting from this branch set.

Returns

Generator of two-item tuples. Each tuple contains weight of the path (calculated as a product of the weights of all path’s branches) and list of path’s Branch objects. Total sum of all paths’ weights is 1.0

filter_source(source)[source]

Apply filters to source and return True if uncertainty should be applied to it.

get_branch_by_id(branch_id)[source]

Return Branch object belonging to this branch set with id equal to branch_id.

class openquake.commonlib.logictree.BranchTuple(trt, id, gsim, weight, effective)

Bases: tuple

effective

Alias for field number 4

gsim

Alias for field number 2

id

Alias for field number 1

trt

Alias for field number 0

weight

Alias for field number 3

class openquake.commonlib.logictree.FakeSmlt(filename, seed=0, num_samples=0)[source]

Bases: object

A replacement for the SourceModelLogicTree class, to be used when there is a trivial source model logic tree. In practice, when source_model_logic_tree_file is missing but there is a source_model_file in the job.ini file.

apply_uncertainties(branch_ids, sourcegroup)[source]
Returns

the sourcegroup unchanged

gen_source_models(gsim_lt)[source]

Yield the underlying LtSourceModel, multiple times if there is sampling

class openquake.commonlib.logictree.GsimLogicTree(fname, tectonic_region_types=['*'], ltnode=None)[source]

Bases: object

A GsimLogicTree instance is an iterable yielding Realization tuples with attributes value, weight and lt_path, where value is a dictionary {trt: gsim}, weight is a number in the interval 0..1 and lt_path is a tuple with the branch ids of the given realization.

Parameters
  • fname (str) – full path of the gsim_logic_tree file

  • tectonic_region_types – a sequence of distinct tectonic region types

  • ltnode – usually None, but it can also be a openquake.hazardlib.nrml.Node object describing the GSIM logic tree XML file, to avoid reparsing it

check_imts(imts)[source]

Make sure the IMTs are recognized by all GSIMs in the logic tree

classmethod from_(gsim)[source]

Generate a trivial GsimLogicTree from a single GSIM instance.

get_gsims(trt)[source]
Parameters

trt – tectonic region type

Returns

sorted list of available GSIMs for that trt

get_num_branches()[source]

Return the number of effective branches for tectonic region type, as a dictionary.

get_num_paths()[source]

Return the effective number of paths in the tree.

reduce(trts)[source]

Reduce the GsimLogicTree.

Parameters

trts – a subset of tectonic region types

Returns

a reduced GsimLogicTree instance

class openquake.commonlib.logictree.ImtWeight(branch, fname)[source]

Bases: object

A composite weight by IMTs extracted from the gsim_logic_tree_file

is_one()[source]

Check that all the inner weights are 1 up to the precision

class openquake.commonlib.logictree.Info(smpaths, applytosources)

Bases: tuple

applytosources

Alias for field number 1

smpaths

Alias for field number 0

exception openquake.commonlib.logictree.InvalidLogicTree[source]

Bases: Exception

exception openquake.commonlib.logictree.LogicTreeError(node, filename, message)[source]

Bases: Exception

Logic tree file contains a logic error.

Parameters

node – XML node object that causes fail. Used to determine the affected line number.

All other constructor parameters are passed to superclass' constructor.

class openquake.commonlib.logictree.LtSourceModel(names, weight, path, src_groups, num_gsim_paths, ordinal, samples)[source]

Bases: object

A container of SourceGroup instances with some additional attributes describing the source model in the logic tree.

get_skeleton()[source]

Return an empty copy of the source model, i.e. without sources, but with the proper attributes for each SourceGroup contained within.

name

Compact representation for the names

num_sources

Number of sources contained in the source model

openquake.commonlib.logictree.MAX_SINT_32 = 2147483647

Maximum value for a seed number

openquake.commonlib.logictree.MIN_SINT_32 = -2147483648

Minimum value for a seed number

class openquake.commonlib.logictree.Realization(value, weight, lt_path, ordinal, lt_uid)

Bases: tuple

lt_path

Alias for field number 2

lt_uid

Alias for field number 4

ordinal

Alias for field number 3

uid
value

Alias for field number 0

weight

Alias for field number 1

class openquake.commonlib.logictree.SourceModelLogicTree(filename, validate=True, seed=0, num_samples=0)[source]

Bases: object

Source model logic tree parser.

Parameters
  • filename – Full pathname of logic tree file

  • validate – Boolean indicating whether or not the tree should be validated while parsed. This should be set to True on initial load of the logic tree (before importing it to the database) and to False on workers side (when loaded from the database).

Raises

LogicTreeError – If logic tree file has a logic error, which can not be prevented by xml schema rules (like referencing sources with missing id).

FILTERS = ('applyToTectonicRegionType', 'applyToSources', 'applyToSourceType')
apply_branchset(branchset_node, branchset)[source]

See superclass’ method for description and signature specification.

Parses branchset node’s attribute @applyToBranches to apply following branchests to preceding branches selectively. Branching level can have more than one branchset exactly for this: different branchsets can apply to different open ends.

Checks that branchset tries to be applied only to branches on previous branching level which do not have a child branchset yet.

apply_uncertainties(branch_ids, source_group)[source]

Parse the path through the source model logic tree and return “apply uncertainties” function.

Parameters
  • branch_ids – List of string identifiers of branches, representing the path through source model logic tree.

  • source_group – A group of sources

Returns

A copy of the original group with modified sources

collect_source_model_data(branch_id, source_model)[source]

Parse source model file and collect information about source ids, source types and tectonic region types available in it. That information is used then for validate_filters() and validate_uncertainty_value().

gen_source_models(gsim_lt)[source]

Yield empty LtSourceModel instances (one per effective realization)

on_each_source

True if there is an applyToSources for each source.

parse_branches(branchset_node, branchset, validate)[source]

Create and attach branches at branchset_node to branchset.

Parameters
  • branchset_node – Same as for parse_branchset().

  • branchset – An instance of BranchSet.

  • validate – Whether or not branches’ uncertainty values should be validated.

Checks that each branch has valid value, unique id and that all branches have total weight of 1.0.

Returns

None, all branches are attached to provided branchset.

parse_branchinglevel(branchinglevel_node, depth, validate)[source]

Parse one branching level.

Parameters
  • branchinglevel_nodeetree.Element object with tag “logicTreeBranchingLevel”.

  • depth – The sequential number of this branching level, based on 0.

  • validate – Whether or not the branching level, its branchsets and their branches should be validated.

Enumerates children branchsets and call parse_branchset(), validate_branchset(), parse_branches() and finally apply_branchset() for each.

Keeps track of “open ends” – the set of branches that don’t have any child branchset on this step of execution. After processing of every branching level only those branches that are listed in it can have child branchsets (if there is one on the next level).

parse_branchset(branchset_node, depth, number, validate)[source]

Create BranchSet object using data in branchset_node.

Parameters
  • branchset_nodeetree.Element object with tag “logicTreeBranchSet”.

  • depth – The sequential number of branchset’s branching level, based on 0.

  • number – Index number of this branchset inside branching level, based on 0.

  • validate – Whether or not filters defined in branchset and the branchset itself should be validated.

Returns

An instance of BranchSet with filters applied but with no branches (they’re attached in parse_branches()).

parse_filters(branchset_node, uncertainty_type, filters)[source]

See superclass’ method for description and signature specification.

Converts “applyToSources” filter value by just splitting it to a list.

parse_tree(tree_node, validate)[source]

Parse the whole tree and point root_branchset attribute to the tree’s root.

parse_uncertainty_value(node, branchset)[source]

See superclass’ method for description and signature specification.

Doesn’t change source model file name, converts other values to either pair of floats or a single float depending on uncertainty type.

sample_path(seed)[source]

Return the model name and a list of branch ids.

Parameters

seed – the seed used for the sampling

samples_by_lt_path()[source]

Returns a dictionary lt_path -> how many times that path was sampled

validate_branchset(branchset_node, depth, number, branchset)[source]

See superclass’ method for description and signature specification.

Checks that the following conditions are met:

  • First branching level must contain exactly one branchset, which must be of type “sourceModel”.

  • All other branchsets must not be of type “sourceModel” or “gmpeModel”.

validate_filters(branchset_node, uncertainty_type, filters)[source]

See superclass’ method for description and signature specification.

Checks that the following conditions are met:

  • “sourceModel” uncertainties can not have filters.

  • Absolute uncertainties must have only one filter – “applyToSources”, with only one source id.

  • All other uncertainty types can have either no or one filter.

  • Filter “applyToSources” must mention only source ids that exist in source models.

  • Filter “applyToTectonicRegionType” must mention only tectonic region types that exist in source models.

  • Filter “applyToSourceType” must mention only source types that exist in source models.

validate_uncertainty_value(node, branchnode, branchset)[source]

See superclass’ method for description and signature specification.

Checks that the following conditions are met:

  • For uncertainty of type “sourceModel”: referenced file must exist and be readable. This is checked in collect_source_model_data() along with saving the source model information.

  • For uncertainty of type “abGRAbsolute”: value should be two float values.

  • For both absolute uncertainties: the source (only one) must be referenced in branchset’s filter “applyToSources”.

  • For all other cases: value should be a single float value.

openquake.commonlib.logictree.collect_info(smlt)[source]

Given a path to a source model logic tree, collect all of the path names to the source models it contains and build 1. a dictionary source model branch ID -> paths 2. a dictionary source model branch ID -> source IDs in applyToSources

Parameters

smlt – source model logic tree file

Returns

an Info namedtupled containing the two dictionaries

openquake.commonlib.logictree.get_effective_rlzs(rlzs)[source]

Group together realizations with the same unique identifier (uid) and yield the first representative of each group.

openquake.commonlib.logictree.get_paths(smlt, fnames)[source]
openquake.commonlib.logictree.read_source_groups(fname)[source]
Parameters

fname – a path to a source model XML file

Returns

a list of SourceGroup objects containing source nodes

openquake.commonlib.logictree.sample(weighted_objects, num_samples, seed)[source]

Take random samples of a sequence of weighted objects

Parameters
  • weighted_objects – A finite sequence of objects with a .weight attribute. The weights must sum up to 1.

  • num_samples – The number of samples to return

  • seed – A random seed

Returns

A subsequence of the original sequence with num_samples elements

openquake.commonlib.logictree.taxonomy_mapping(filename, taxonomies)[source]
Parameters
  • filename – path to the CSV file containing the taxonomy associations

  • taxonomies – an array taxonomy string -> taxonomy index

Returns

(array, [[(taxonomy, weight), …], …])

openquake.commonlib.logictree.to_toml(uncertainty)[source]

Converts an uncertainty node into a TOML string

openquake.commonlib.logictree.unique(objects, key=None)[source]

Raise a ValueError if there is a duplicated object, otherwise returns the objects as they are.

logs module

Set up some system-wide loggers

class openquake.commonlib.logs.LogDatabaseHandler(job_id)[source]

Bases: logging.Handler

Log stream handler

emit(record)[source]

Do whatever it takes to actually log the specified logging record.

This version is intended to be implemented by subclasses and so raises a NotImplementedError.

class openquake.commonlib.logs.LogFileHandler(job_id, log_file)[source]

Bases: logging.FileHandler

Log file handler

emit(record)[source]

Emit a record.

If the stream was not opened because ‘delay’ was specified in the constructor, open it before calling the superclass’s emit.

class openquake.commonlib.logs.LogStreamHandler(job_id)[source]

Bases: logging.StreamHandler

Log stream handler

emit(record)[source]

Emit a record.

If a formatter is specified, it is used to format the record. The record is then written to the stream with a trailing newline. If exception information is present, it is formatted using traceback.print_exception and appended to the stream. If the stream has an ‘encoding’ attribute, it is used to determine how to do the output to the stream.

openquake.commonlib.logs.dbcmd(action, *args)[source]

A dispatcher to the database server.

Parameters
  • action – database action to perform

  • args – arguments

openquake.commonlib.logs.get_last_calc_id(username=None)[source]
Parameters

username – if given, restrict to it

Returns

the last calculation in the database or the datastore

openquake.commonlib.logs.handle(job_id, log_level='info', log_file=None)[source]

Context manager adding and removing log handlers.

Parameters
  • job_id – ID of the current job

  • log_level – one of debug, info, warn, error, critical

  • log_file – log file path (if None, logs on stdout only)

openquake.commonlib.logs.init(calc_id='nojob', level=20)[source]
  1. initialize the root logger (if not already initialized)

  2. set the format of the root handlers (if any)

  3. return a new calculation ID candidate if calc_id is ‘job’ or ‘nojob’ (with ‘nojob’ the calculation ID is not stored in the database)

openquake.commonlib.logs.touch_log_file(log_file)[source]

If a log file destination is specified, attempt to open the file in ‘append’ mode (‘a’). If the specified file is not writable, an IOError will be raised.

oqvalidation module

class openquake.commonlib.oqvalidation.OqParam(**names_vals)[source]

Bases: openquake.hazardlib.valid.ParamSet

aggregate_by

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

all_cost_types

Return the cost types of the computation (including occupants if it is there) in order.

area_source_discretization

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ash_wet_amplification_factor

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

asset_correlation

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

asset_hazard_distance

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

asset_life_expectancy

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

asset_loss_table

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

assets_per_site_limit

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

avg_losses

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

base_path

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

calculation_mode

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

check_gsims(gsims)[source]
Parameters

gsims – a sequence of GSIM instances

check_missing(param, action)[source]

Make sure the given parameter is missing in the job.ini file

check_source_model()[source]
check_uniform_hazard_spectra()[source]
compare_with_classical

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

complex_fault_mesh_spacing

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

concurrent_tasks

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

conditional_loss_poes

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

continuous_fragility_discretization

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

coordinate_bin_width

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

correl_model

Return a correlation object. See openquake.hazardlib.correlation for more info.

cross_correlation

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

description

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

disagg_by_src

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

disagg_outputs

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

discard_assets

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

distance_bin_width

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ebrisk_maxweight

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

export_dir

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

export_multi_curves

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

exports

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

filter_distance

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

get_kinds(kind, R)[source]

Yield ‘rlz-000’, ‘rlz-001’, …’, ‘mean’, ‘quantile-0.1’, …

get_reqv()[source]
Returns

an instance of class:RjbEquivalent if reqv_hdf5 is set

gmf_data_dt()[source]
Returns

a composite data type for the GMFs

ground_motion_correlation_model

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ground_motion_correlation_params

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ground_motion_fields

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

gsim

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

hazard_calculation_id

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

hazard_curves_from_gmfs

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

hazard_maps

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

hazard_output_id

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

hazard_precomputed()[source]
Returns

True if the hazard is precomputed

hazard_stats()[source]

Return a list of item with the statistical functions defined for the hazard calculation

hmap_dt()[source]
Returns

a composite dtype (imt, poe)

hypocenter

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ignore_covs

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ignore_missing_costs

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

iml_disagg

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

imt_dt(dtype=<class 'numpy.float64'>)[source]
Returns

a numpy dtype {imt: float}

imt_periods()[source]
Returns

the IMTs with a period, as objects

imtls

Returns a DictArray with the risk intensity measure types and levels, if given, or the hazard ones.

individual_curves

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

input_dir
Returns

absolute path to where the job.ini is

inputs

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

intensity_measure_types

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

intensity_measure_types_and_levels

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

interest_rate

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

investigation_time

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

is_event_based()[source]

The calculation mode is event_based, event_based_risk or ebrisk

is_valid_complex_fault_mesh_spacing()[source]

The complex_fault_mesh_spacing parameter can be None only if rupture_mesh_spacing is set. In that case it is identified with it.

is_valid_export_dir()[source]

export_dir={export_dir} must refer to a directory, and the user must have the permission to write on it.

is_valid_geometry()[source]

It is possible to infer the geometry only if exactly one of sites, sites_csv, hazard_curves_csv, gmfs_csv, region is set. You did set more than one, or nothing.

is_valid_intensity_measure_levels()[source]

In order to compute hazard curves, intensity_measure_types_and_levels must be set or extracted from the risk models.

is_valid_intensity_measure_types()[source]

If the IMTs and levels are extracted from the risk models, they must not be set directly. Moreover, if intensity_measure_types_and_levels is set directly, intensity_measure_types must not be set.

is_valid_maximum_distance()[source]

Invalid maximum_distance={maximum_distance}: {error}

is_valid_optimize_same_id_sources()[source]

The optimize_same_id_sources can be true only in the classical calculators.

is_valid_poes()[source]

When computing hazard maps and/or uniform hazard spectra, the poes list must be non-empty.

is_valid_shakemap()[source]

hazard_calculation_id must be set if shakemap_id is set

is_valid_sites()[source]

The sites are overdetermined

is_valid_sites_disagg()[source]

The option sites_disagg (when given) requires specific_assets to be set.

is_valid_specific_assets()[source]

Read the special assets from the parameters specific_assets or specific_assets_csv, if present. You cannot have both. The concept is meaninful only for risk calculators.

is_valid_truncation_level_disaggregation()[source]

Truncation level must be set for disaggregation calculations

job_type

‘hazard’ or ‘risk’

loss_dt(dtype=<class 'numpy.float32'>)[source]
Returns

a composite dtype based on the loss types including occupants

loss_dt_list(dtype=<class 'numpy.float32'>)[source]
Returns

a data type list [(loss_name, dtype), …]

loss_maps_dt(dtype=<class 'numpy.float32'>)[source]

Return a composite data type for loss maps

lrem_steps_per_interval

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

lti

Dictionary extended_loss_type -> extended_loss_type index

mag_bin_width

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

master_seed

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

max_hazard_curves

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

max_potential_paths

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

maximum_distance

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

mean

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

mean_hazard_curves

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

min_iml
Returns

a numpy array of intensities, one per IMT

minimum_intensity

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

minimum_magnitude

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

modal_damage_state

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

multi_peril

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

no_imls()[source]

Return True if there are no intensity measure levels

num_epsilon_bins

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

number_of_ground_motion_fields

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

number_of_logic_tree_samples

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

optimize_same_id_sources

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

poes

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

poes_disagg

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

pointsource_distance

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

quantile_hazard_curves

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

quantiles

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

random_seed

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

reference_backarc

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

reference_depth_to_1pt0km_per_sec

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

reference_depth_to_2pt5km_per_sec

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

reference_siteclass

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

reference_vs30_type

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

reference_vs30_value

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

region

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

region_grid_spacing

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

return_periods

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

risk_files
risk_imtls

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

risk_investigation_time

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

rupture_mesh_spacing

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ruptures_per_block

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ses_per_logic_tree_path

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

ses_ratio

The ratio

risk_investigation_time / investigation_time / ses_per_logic_tree_path

ses_seed

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

set_risk_imtls(risk_models)[source]
Parameters

risk_models – a dictionary taxonomy -> loss_type -> risk_function

Set the attribute risk_imtls.

shakemap_id

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

site_effects

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

siteparam = {'backarc': 'reference_backarc', 'siteclass': 'reference_siteclass', 'vs30': 'reference_vs30_value', 'vs30measured': 'reference_vs30_type', 'z1pt0': 'reference_depth_to_1pt0km_per_sec', 'z2pt5': 'reference_depth_to_2pt5km_per_sec'}
sites

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

sites_disagg

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

sites_slice

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

sm_lt_path

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

source_id

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

spatial_correlation

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

specific_assets

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

std_hazard_curves

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

steps_per_interval

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

taxonomies_from_model

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

time_event

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

truncation_level

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

tses

Return the total time as investigation_time * ses_per_logic_tree_path * (number_of_logic_tree_samples or 1)

uhs_dt()[source]
Returns

a composity dtype (poe, imt)

uniform_hazard_spectra

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

width_of_mfd_bin

A descriptor for validated parameters with a default, to be used as attributes in ParamSet objects.

Parameters
  • validator – the validator

  • default – the default value

readinput module

exception openquake.commonlib.readinput.DuplicatedPoint[source]

Bases: Exception

Raised when reading a CSV file with duplicated (lon, lat) pairs

class openquake.commonlib.readinput.Site(sid, lon, lat)

Bases: tuple

lat

Alias for field number 2

lon

Alias for field number 1

sid

Alias for field number 0

class openquake.commonlib.readinput.SourceModelFactory[source]

Bases: object

openquake.commonlib.readinput.check_nonparametric_sources(fname, smodel, investigation_time)[source]
Parameters
  • fname – full path to a source model file

  • smodel – source model object

  • investigation_time – investigation_time to compare with in the case of nonparametric sources

Returns

the nonparametric sources in the model

Raises

a ValueError if the investigation_time is different from the expected

openquake.commonlib.readinput.collect_files(dirpath, cond=<function <lambda>>)[source]

Recursively collect the files contained inside dirpath.

Parameters
  • dirpath – path to a readable directory

  • cond – condition on the path to collect the file

openquake.commonlib.readinput.extract_from_zip(path, candidates)[source]

Given a zip archive and a function to detect the presence of a given filename, unzip the archive into a temporary directory and return the full path of the file. Raise an IOError if the file cannot be found within the archive.

Parameters
  • path – pathname of the archive

  • candidates – list of names to search for

openquake.commonlib.readinput.get_checksum32(oqparam, hazard=False)[source]

Build an unsigned 32 bit integer from the input files of a calculation.

Parameters
  • oqparam – an OqParam instance

  • hazard – if True, consider only the hazard files

Returns

the checkume

openquake.commonlib.readinput.get_composite_source_model(oqparam, monitor=None, in_memory=True, srcfilter=<openquake.hazardlib.calc.filters.SourceFilter object>)[source]

Parse the XML and build a complete composite source model in memory.

Parameters
  • oqparam – an openquake.commonlib.oqvalidation.OqParam instance

  • monitor – a openquake.baselib.performance.Monitor instance

  • in_memory – if False, just parse the XML without instantiating the sources

  • srcfilter – if not None, use it to prefilter the sources

openquake.commonlib.readinput.get_csv_header(fname, sep=', ')[source]
Parameters
  • fname – a CSV file

  • sep – the separator (default comma)

Returns

the first line of fname

openquake.commonlib.readinput.get_exposure(oqparam)[source]

Read the full exposure in memory and build a list of openquake.risklib.asset.Asset instances.

Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

Returns

an Exposure instance or a compatible AssetCollection

openquake.commonlib.readinput.get_gsim_lt(oqparam, trts=['*'])[source]
Parameters
Returns

a GsimLogicTree instance obtained by filtering on the provided tectonic region types.

openquake.commonlib.readinput.get_gsims(oqparam)[source]

Return an ordered list of GSIM instances from the gsim name in the configuration file or from the gsim logic tree file.

Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

openquake.commonlib.readinput.get_imts(oqparam)[source]

Return a sorted list of IMTs as hazardlib objects

openquake.commonlib.readinput.get_input_files(oqparam, hazard=False)[source]
Parameters
  • oqparam – an OqParam instance

  • hazard – if True, consider only the hazard files

Returns

input path names in a specific order

openquake.commonlib.readinput.get_mesh(oqparam)[source]

Extract the mesh of points to compute from the sites, the sites_csv, or the region.

Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

openquake.commonlib.readinput.get_oqparam(job_ini, pkg=None, calculators=None, hc_id=None, validate=1, **kw)[source]

Parse a dictionary of parameters from an INI-style config file.

Parameters
  • job_ini – Path to configuration file/archive or dictionary of parameters

  • pkg – Python package where to find the configuration file (optional)

  • calculators – Sequence of calculator names (optional) used to restrict the valid choices for calculation_mode

  • hc_id – Not None only when called from a post calculation

  • validate – Flag. By default it is true and the parameters are validated

  • kw – String-valued keyword arguments used to override the job.ini parameters

Returns

An openquake.commonlib.oqvalidation.OqParam instance containing the validate and casted parameters/values parsed from the job.ini file as well as a subdictionary ‘inputs’ containing absolute paths to all of the files referenced in the job.ini, keyed by the parameter name.

openquake.commonlib.readinput.get_params(job_inis, **kw)[source]

Parse one or more INI-style config files.

Parameters
  • job_inis – List of configuration files (or list containing a single zip archive)

  • kw – Optionally override some parameters

Returns

A dictionary of parameters

openquake.commonlib.readinput.get_pmap_from_csv(oqparam, fnames)[source]
Parameters
Returns

the site mesh and the hazard curves read by the .csv files

openquake.commonlib.readinput.get_risk_model(oqparam)[source]
Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

openquake.commonlib.readinput.get_rlzs_by_gsim(oqparam)[source]

Return an ordered dictionary gsim -> [realization index]. Work for gsim logic trees with a single tectonic region type.

openquake.commonlib.readinput.get_rupture(oqparam)[source]

Read the rupture_model file and by filter the site collection

Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

Returns

an hazardlib rupture

openquake.commonlib.readinput.get_site_collection(oqparam)[source]

Returns a SiteCollection instance by looking at the points and the site model defined by the configuration parameters.

Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

openquake.commonlib.readinput.get_site_model(oqparam)[source]

Convert the NRML file into an array of site parameters.

Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

Returns

an array with fields lon, lat, vs30, …

openquake.commonlib.readinput.get_sitecol_assetcol(oqparam, haz_sitecol=None, cost_types=())[source]
Parameters
  • oqparam – calculation parameters

  • haz_sitecol – the hazard site collection

  • cost_types – the expected cost types

Returns

(site collection, asset collection, discarded)

openquake.commonlib.readinput.get_source_model_lt(oqparam, validate=True)[source]
Parameters

oqparam – an openquake.commonlib.oqvalidation.OqParam instance

Returns

a openquake.commonlib.logictree.SourceModelLogicTree instance

openquake.commonlib.readinput.get_source_models(oqparam, gsim_lt, source_model_lt, monitor, in_memory=True, srcfilter=None)[source]

Build all the source models generated by the logic tree.

Parameters
Returns

an iterator over openquake.commonlib.logictree.LtSourceModel tuples

openquake.commonlib.readinput.getid(src)[source]
openquake.commonlib.readinput.levels_from(header)[source]
openquake.commonlib.readinput.normalize(key, fnames, base_path)[source]
openquake.commonlib.readinput.random_filtered_sources(sources, srcfilter, seed)[source]
Parameters
  • sources – a list of sources

  • srcfilte – a SourceFilter instance

  • seed – a random seed

Returns

an empty list or a list with a single filtered source

openquake.commonlib.readinput.reduce_source_model(smlt_file, source_ids, remove=True)[source]

Extract sources from the composite source model

openquake.commonlib.readinput.store_sm(smodel, filename, monitor)[source]
Parameters

source module

class openquake.commonlib.source.CompositeSourceModel(gsim_lt, source_model_lt, source_models, optimize_same_id)[source]

Bases: collections.abc.Sequence

Parameters
check_dupl_sources()[source]

Extracts duplicated sources, i.e. sources with the same source_id in different source groups. Raise an exception if there are sources with the same ID which are not duplicated.

Returns

a list of list of sources, ordered by source_id

get_floating_spinning_factors()[source]
Returns

(floating rupture factor, spinning rupture factor)

get_maxweight(weight, concurrent_tasks, minweight=100)[source]

Return an appropriate maxweight for use in the block_splitter

get_model(sm_id)[source]

Extract a CompositeSourceModel instance containing the single model of index sm_id.

get_nonparametric_sources()[source]
Returns

list of non parametric sources in the composite source model

get_num_ruptures()[source]
Returns

the number of ruptures per source group ID

get_sources(kind='all')[source]

Extract the sources contained in the source models by optionally filtering and splitting them, depending on the passed parameter.

get_trt_sources(optimize_same_id=None)[source]
Returns

a list of pairs [(trt, group of sources)]

get_weight(weight=operator.attrgetter('weight'))[source]
Parameters

weight – source weight function

Returns

total weight of the source model

grp_by_src()[source]
Returns

a new CompositeSourceModel with one group per source

init_serials(ses_seed)[source]

Generate unique seeds for each rupture with numpy.arange. This should be called only in event based calculators

new(sources_by_grp)[source]

Generate a new CompositeSourceModel from the given dictionary.

Parameters

sources_by_group – a dictionary grp_id -> sources

Returns

a new CompositeSourceModel instance

src_groups

Yields the SourceGroups inside each source model.

class openquake.commonlib.source.CompositionInfo(gsim_lt, seed, num_samples, source_models, totweight)[source]

Bases: object

An object to collect information about the composition of a composite source model.

Parameters
  • source_model_lt – a SourceModelLogicTree object

  • source_models – a list of LtSourceModel instances

classify_gsim_lt(source_model)[source]
Returns

(kind, num_paths), where kind is trivial, simple, complex

classmethod fake(gsimlt=None)[source]
Returns

a fake CompositionInfo instance with the given gsim logic tree object; if None, builds automatically a fake gsim logic tree

get_grp_ids(sm_id)[source]
Returns

a list of source group IDs for the given source model ID

get_info(sm_id)[source]

Extract a CompositionInfo instance containing the single model of index sm_id.

get_num_rlzs(source_model=None)[source]
Parameters

source_model – a LtSourceModel instance (or None)

Returns

the number of realizations per source model (or all)

get_rlzs_assoc(sm_lt_path=None, trts=None)
Parameters
get_rlzs_by_gsim_grp(sm_lt_path=None, trts=None)[source]
Returns

a dictionary src_group_id -> gsim -> rlzs

get_samples_by_grp()[source]
Returns

a dictionary src_group_id -> source_model.samples

get_sm_by_grp()[source]
Returns

a dictionary grp_id -> sm_id

get_source_model(src_group_id)[source]

Return the source model for the given src_group_id

grp_by(name)[source]
Returns

a dictionary grp_id -> TRT string

init()[source]
rlzs
Returns

an array of realizations

trt2i()[source]
Returns

trt -> trti

update_eff_ruptures(count_ruptures)[source]
Parameters

count_ruptures – function or dict src_group_id -> num_ruptures

openquake.commonlib.source.capitalize(words)[source]

Capitalize words separated by spaces.

openquake.commonlib.source.get_field(data, field, default)[source]
Parameters

data – a record with a field field, possibily missing

util module

openquake.commonlib.util.closest_to_ref(arrays, ref, cutoff=1e-12)[source]
Parameters
  • arrays – a sequence of R arrays

  • ref – the reference array

Returns

a dictionary with keys rlz, value, and dist

openquake.commonlib.util.compose_arrays(a1, a2, firstfield='etag')[source]

Compose composite arrays by generating an extended datatype containing all the fields. The two arrays must have the same length.

openquake.commonlib.util.get_assets(dstore)[source]
Parameters

dstore – a datastore with keys ‘assetcol’

Returns

an array of records (asset_ref, tag1, …, tagN, lon, lat)

openquake.commonlib.util.log(array, cutoff)[source]

Compute the logarithm of an array with a cutoff on the small values

openquake.commonlib.util.max_rel_diff(curve_ref, curve, min_value=0.01)[source]

Compute the maximum relative difference between two curves. Only values greather or equal than the min_value are considered.

>>> curve_ref = [0.01, 0.02, 0.03, 0.05, 1.0]
>>> curve = [0.011, 0.021, 0.031, 0.051, 1.0]
>>> round(max_rel_diff(curve_ref, curve), 2)
0.1
openquake.commonlib.util.max_rel_diff_index(curve_ref, curve, min_value=0.01)[source]

Compute the maximum relative difference between two sets of curves. Only values greather or equal than the min_value are considered. Return both the maximum difference and its location (array index).

>>> curve_refs = [[0.01, 0.02, 0.03, 0.05], [0.01, 0.02, 0.04, 0.06]]
>>> curves = [[0.011, 0.021, 0.031, 0.051], [0.012, 0.022, 0.032, 0.051]]
>>> max_rel_diff_index(curve_refs, curves)
(0.2, 1)
openquake.commonlib.util.read(calc_id, username=None)[source]
Parameters
  • calc_id – a calculation ID

  • username – if given, restrict the search to the user’s calculations

Returns

the associated DataStore instance

openquake.commonlib.util.rmsep(array_ref, array, min_value=0)[source]

Root Mean Square Error Percentage for two arrays.

Parameters
  • array_ref – reference array

  • array – another array

  • min_value – compare only the elements larger than min_value

Returns

the relative distance between the arrays

>>> curve_ref = numpy.array([[0.01, 0.02, 0.03, 0.05],
... [0.01, 0.02, 0.04, 0.06]])
>>> curve = numpy.array([[0.011, 0.021, 0.031, 0.051],
... [0.012, 0.022, 0.032, 0.051]])
>>> str(round(rmsep(curve_ref, curve, .01), 5))
'0.11292'
openquake.commonlib.util.shared_dir_on()[source]
Returns

True if a shared_dir has been set in openquake.cfg, else False

writers module

class openquake.commonlib.writers.CsvWriter(sep=', ', fmt='%12.8E')[source]

Bases: object

Class used in the exporters to save a bunch of CSV files

getsaved()[source]

Returns the list of files saved by this CsvWriter

save(data, fname, header=None, comment=None)[source]

Save data on fname.

Parameters
  • data – numpy array or list of lists

  • fname – path name

  • header – header to use

  • comment – optional dictionary to be converted in a comment

save_block(data, dest)[source]

Save data on dest, which is file open in ‘a’ mode

openquake.commonlib.writers.build_header(dtype)[source]

Convert a numpy nested dtype into a list of strings suitable as header of csv file.

>>> imt_dt = numpy.dtype([('PGA', numpy.float32, 3),
...                       ('PGV', numpy.float32, 4)])
>>> build_header(imt_dt)
['PGA:3', 'PGV:4']
>>> gmf_dt = numpy.dtype([('A', imt_dt), ('B', imt_dt),
...                       ('idx', numpy.uint32)])
>>> build_header(gmf_dt)
['A~PGA:3', 'A~PGV:4', 'B~PGA:3', 'B~PGV:4', 'idx']
openquake.commonlib.writers.castable_to_int(s)[source]

Return True if the string s can be interpreted as an integer

openquake.commonlib.writers.extract_from(data, fields)[source]

Extract data from numpy arrays with nested records.

>>> imt_dt = numpy.dtype([('PGA', float, 3), ('PGV', float, 4)])
>>> a = numpy.array([([1, 2, 3], [4, 5, 6, 7])], imt_dt)
>>> extract_from(a, ['PGA'])
array([[1., 2., 3.]])
>>> gmf_dt = numpy.dtype([('A', imt_dt), ('B', imt_dt),
...                       ('idx', numpy.uint32)])
>>> b = numpy.array([(([1, 2, 3], [4, 5, 6, 7]),
...                  ([1, 2, 4], [3, 5, 6, 7]), 8)], gmf_dt)
>>> extract_from(b, ['idx'])
array([8], dtype=uint32)
>>> extract_from(b, ['B', 'PGV'])
array([[3., 5., 6., 7.]])
openquake.commonlib.writers.parse_header(header)[source]

Convert a list of the form [‘fieldname:fieldtype:fieldsize’,…] into a numpy composite dtype. The parser understands headers generated by openquake.commonlib.writers.build_header(). Here is an example:

>>> parse_header(['PGA:float32', 'PGV', 'avg:float32:2'])
(['PGA', 'PGV', 'avg'], dtype([('PGA', '<f4'), ('PGV', '<f4'), ('avg', '<f4', (2,))]))
Params header

a list of type descriptions

Returns

column names and the corresponding composite dtype

openquake.commonlib.writers.write_csv(dest, data, sep=', ', fmt='%.6E', header=None, comment=None)[source]
Parameters
  • dest – None, file, filename or io.BytesIO instance

  • data – array to save

  • sep – separator to use (default comma)

  • fmt – formatting string (default ‘%12.8E’)

  • header – optional list with the names of the columns to display

  • comment – optional comment dictionary