Skip to content

Named fault

named_fault

A module to produce a named_fault for use with filtering crustal ruptures.

for NSHM_V1.* the Crustal Rupture Sets all use the same Fault Model (form the NZ CFM)

CFM_1_0A_DOM_SANSTVZ_MAP = 'resources/named_faults/cfm_1_0A_no_tvz.xml.FaultsByNameAlt.txt' module-attribute

get_named_fault_for_parent(parent_fault_id: int) -> Optional[str] cached

Get a named fault name, given a parent_fault_id.

Parameters:

Name Type Description Default
parent_fault_id int

the id of the parent fault,

required

Returns:

Name Type Description
named_fault_name Optional[str]

the named fault name.

Source code in solvis/solution/named_fault.py
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
@lru_cache
def get_named_fault_for_parent(parent_fault_id: int) -> Optional[str]:
    """Get a named fault name, given a parent_fault_id.

    Args:
        parent_fault_id: the id of the parent fault,

    Returns:
        named_fault_name: the named fault name.
    """
    df0 = named_fault_for_parent_ids_table()
    try:
        res = df0.loc[parent_fault_id]
        return res.named_fault_name
    except KeyError:
        return None

named_fault_for_parent_ids_table() cached

Source code in solvis/solution/named_fault.py
32
33
34
@lru_cache
def named_fault_for_parent_ids_table():
    return named_fault_table().explode('parent_fault_ids').reset_index().set_index('parent_fault_ids')

named_fault_table() -> pd.DataFrame cached

Build a dataframe from the resoource file.

Source code in solvis/solution/named_fault.py
20
21
22
23
24
25
26
27
28
29
@lru_cache
def named_fault_table() -> pd.DataFrame:
    """Build a dataframe from the resoource file."""
    csv_rows = csv.reader(open(CFM_1_0A_DOM_SANSTVZ_MAP, mode='r', encoding='utf-8-sig'), delimiter='\t')

    def reform(row):
        return (row[0], [int(x) for x in row[1:]])

    reformed = [reform(row) for row in csv_rows]
    return pd.DataFrame(reformed, columns=['named_fault_name', 'parent_fault_ids']).set_index('named_fault_name')