oasislmf.pytools.gulmc.aggregate

This file contains specific functionality needed for aggregate vulnerabilities.

Attributes

Functions

read_aggregate_vulnerability(storage[, ignore_file_type])

Load the aggregate vulnerability definitions from file.

read_vulnerability_weights(storage[, ignore_file_type])

Load the vulnerability weights definitions from file.

process_aggregate_vulnerability(aggregate_vulnerability)

Rearrange aggregate vulnerability definitions from tabular format into CRS arrays

process_vulnerability_weights(...)

Populate the weight field in the merged data array by matching aggregate_weights records.

get_vuln_rngadj(run_dir, vuln_map, vuln_map_keys)

Loads vulnerability adjustments from the analysis settings file.

Module Contents

oasislmf.pytools.gulmc.aggregate.logger[source]
oasislmf.pytools.gulmc.aggregate.agg_weight_key_dtype[source]
oasislmf.pytools.gulmc.aggregate.read_aggregate_vulnerability(storage: oasis_data_manager.filestore.backends.base.BaseStorage, ignore_file_type=set())[source]

Load the aggregate vulnerability definitions from file.

Args:

storage: (BaseStorage) the storage manager for fetching model data ignore_file_type (Set[str]): file extension to ignore when loading.

Returns:

np.array[AggregateVulnerability]: aggregate vulnerability table.

oasislmf.pytools.gulmc.aggregate.read_vulnerability_weights(storage: oasis_data_manager.filestore.backends.base.BaseStorage, ignore_file_type=set())[source]

Load the vulnerability weights definitions from file.

Args:

storage: (BaseStorage) the storage manager for fetching model data ignore_file_type (Set[str]): file extension to ignore when loading.

Returns:

np.array[VulnerabilityWeight]: vulnerability weights table.

oasislmf.pytools.gulmc.aggregate.process_aggregate_vulnerability(aggregate_vulnerability)[source]

Rearrange aggregate vulnerability definitions from tabular format into CRS arrays mapping aggregate vulnerability id to the list of vulnerability ids that compose it.

Args:

aggregate_vulnerability (np.array[AggregateVulnerability]): aggregate vulnerability table.

Returns:

agg_vuln_ids (np.array[oasis_int]): sorted array of aggregate vulnerability ids. agg_vuln_id_ja_offsets (np.array[oasis_int]): jagged array offsets. Row i spans

agg_vuln_id_ja_vuln_ids[agg_vuln_id_ja_offsets[i]:agg_vuln_id_ja_offsets[i+1]].

agg_vuln_id_ja_vuln_ids (np.array[oasis_int]): flat jagged array of constituent vulnerability ids.

oasislmf.pytools.gulmc.aggregate.process_vulnerability_weights(areaperil_agg_vuln_idx_ja_areaperil_ids, areaperil_agg_vuln_idx_ja_data, vuln_map, vuln_map_keys, aggregate_weights)[source]

Populate the weight field in the merged data array by matching aggregate_weights records.

Builds a (areaperil_id, vuln_idx) -> weight hashmap from aggregate_weights once, then iterates entries with one O(1) lookup each. Total cost: O(W + E).

Iterating from the weight side handles the case where the same (ap, vuln_idx) pair appears in multiple entries (two distinct aggregate definitions sharing a sub-vuln on the same areaperil): every such entry gets the same weight, since each is looked up independently.

Args:

areaperil_agg_vuln_idx_ja_areaperil_ids (np.array[areaperil_int]): areaperil_id for each entry. areaperil_agg_vuln_idx_ja_data (np.array[agg_vuln_idx_weight_dtype]): merged (vuln_idx, weight) per entry. vuln_map (np.ndarray[uint8]): packed hashmap table mapping vuln_id to dense index. vuln_map_keys (np.ndarray[int32]): array of unique vulnerability ids (hashmap keys). aggregate_weights (np.array[VulnerabilityWeight]): vulnerability weights table.

oasislmf.pytools.gulmc.aggregate.get_vuln_rngadj(run_dir, vuln_map, vuln_map_keys)[source]

Loads vulnerability adjustments from the analysis settings file.

Args:

run_dir (str): path to the run directory (used to load the analysis settings) vuln_map (np.ndarray[uint8]): packed hashmap table mapping vuln_id to dense index. vuln_map_keys (np.ndarray[int32]): array of unique vulnerability ids (hashmap keys).

Returns: (np.ndarray[oasis_float]) vulnerability adjustments array, indexed by dense vuln index.