oasislmf.pytools.gulmc.items¶
This file contains specific functionality to read and process items files.
Attributes¶
Functions¶
|
Load the items from the items file. |
|
Generate item_map as a two-level jagged array; requires items to be sorted. |
|
Assign a sequential index to each unique CDF-producing group. |
|
Generate intensity adjustment array for dynamic footprint models. |
|
Get peril_id associated with item_id |
Module Contents¶
- oasislmf.pytools.gulmc.items.read_items(input_path, ignore_file_type=set())[source]¶
Load the items from the items file.
- oasislmf.pytools.gulmc.items.generate_item_map(items, coverages, agg_vuln_id_ja_id_ind, agg_vuln_id_ja_offsets, agg_vuln_id_ja_vuln_ids)[source]¶
Generate item_map as a two-level jagged array; requires items to be sorted.
Items must be sorted by (areaperil_id, vulnerability_id). The function builds a two-level CSR structure that replaces the former Numba Dict item_map and areaperil_ids_map:
Level 0: areaperil_id → areaperil_ind (via id_index) Level 1: areaperil_ind → pair index range (areaperil_to_vuln_ja_offsets) Level 2: pair position → item indices (areaperil_to_vuln_ja_vuln_ja_offsets / areaperil_to_vuln_ja_vuln_ja_item_idxs)
- Parameters:
items (numpy.ndarray) – 1-d structured array storing item data, sorted by (areaperil_id, vulnerability_id). Must have ‘areaperil_agg_vuln_idx’ field.
coverages (numpy.ndarray) – coverage id to information on items.
agg_vuln_id_ja_id_ind (np.array) – id_index for aggregate vulnerability ids.
agg_vuln_id_ja_offsets (np.array[oasis_int]) – jagged array offsets for agg_vuln_id_ja_vuln_ids.
agg_vuln_id_ja_vuln_ids (np.array[oasis_int]) – flat jagged array of constituent vulnerability ids.
- Returns:
sorted unique areaperil_ids. areaperil_to_vuln_ja_offsets (np.array[oasis_int]): L1 CSR offsets (N_areaperil + 1). areaperil_to_vuln_ja_vuln_ja_offsets (np.array[oasis_int]): L2 CSR offsets (N_pairs + 1). areaperil_to_vuln_ja_vuln_ja_item_idxs (np.array[oasis_int]): flat item indices into items array. 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. areaperil_agg_vuln_idx_ja_offsets (np.array[oasis_int]): CSR offsets for aggregate vulns. areaperil_agg_vuln_idx_ja_data (np.array[agg_vuln_idx_weight_dtype]): merged (vuln_idx, weight) per entry. areaperil_agg_vuln_idx_ja_areaperil_ids (np.array[areaperil_int]): areaperil_id per aggregate entry.
- Return type:
areaperil_to_vuln_ja_areaperil_ids (np.array[areaperil_int])
- oasislmf.pytools.gulmc.items.build_cdf_group_indices(vuln_ja_offsets, vuln_ja_item_idxs, items, dynamic_footprint)[source]¶
Assign a sequential index to each unique CDF-producing group.
A CDF group is a set of items that share identical vulnerability CDFs. For non-dynamic models, each (areaperil, vuln_id) pair — which corresponds to one position in the item_map jagged array — gets a single index. For dynamic models, items within the same pair may have different intensity_adjustment values that produce different CDFs, so each unique adjustment gets its own sub-index.
Numba compiles two specializations based on whether dynamic_footprint is None or not.
- Parameters:
vuln_ja_offsets (np.array[oasis_int]) – L2 CSR offsets (N_pairs + 1).
vuln_ja_item_idxs (np.array[oasis_int]) – flat item indices.
items (np.ndarray) – items table (must have ‘intensity_adjustment’ for dynamic).
dynamic_footprint – None for static footprints, truthy for dynamic.
- Returns:
maps item_idx → CDF group index. n_cdf_groups (int): total number of unique CDF groups.
- Return type:
item_cdf_group_idx (np.array[int64])
- oasislmf.pytools.gulmc.items.get_dynamic_footprint_adjustments(input_path)[source]¶
Generate intensity adjustment array for dynamic footprint models.
- Parameters:
input_path (str) – location of the generated adjustments file.
- Returns:
numpy array with itemid and adjustment factors
- oasislmf.pytools.gulmc.items.get_peril_id(input_path)[source]¶
Get peril_id associated with item_id
- Parameters:
input_path (str) – The directory path where the ‘gul_summary_map.csv’ file is located.
- Returns:
- A structured NumPy array with the following fields:
’item_id’ (oasis_int): The item ID as an integer.
’peril_id’ (oasis_int): The encoded peril ID as an integer.
- Return type:
np.ndarray