8.1. Initialisation

slfgenerator.__init__(component_data: component_data_model, edp: str, correlation_tree: correlation_tree_model = None, typology: List[str] = None, edp_range: List[float] | ndarray = None, edp_bin: float = None, grouping_flag: bool = True, conversion: float = 1.0, realizations: int = 20, replacement_cost: float = 1.0, regression: str = 'Weibull', storey: int | List[int] = None, directionality: int = None)[source]

Initialise the SLF generator.

Parameters:
  • component_data (pandas.DataFrame) – Inventory of component data (loaded from CSV).

  • edp (str) – Engineering Demand Parameter; 'PSD' (Peak Storey Drift) or 'PFA' (Peak Floor Acceleration).

  • correlation_tree (pandas.DataFrame, optional) – Correlation tree defining component dependencies. Default None.

  • typology (List[str], optional) – Component typologies to include ('ns' or 's'). Default None.

  • edp_range (array-like, optional) – Custom EDP value range. If None, defaults are used.

  • edp_bin (float, optional) – EDP bin size. If None, a type-specific default is used.

  • grouping_flag (bool, optional) – Whether to group components by performance group. Default True.

  • conversion (float, optional) – Cost conversion factor. Default 1.0.

  • realizations (int, optional) – Number of Monte Carlo realizations. Default 20.

  • replacement_cost (float, optional) – Normalising replacement cost. Default 1.0.

  • regression (str, optional) – Regression model: 'Weibull', 'Papadopoulos', 'Gdp', or 'Lognormal'. Default 'Weibull'.

  • storey (int or List[int], optional) – Storey level(s) to include. Default None.

  • directionality (int, optional) – Analysis directionality flag. Default None.

Example

import numpy as np
import pandas as pd
from openquake.vmtk.slfgenerator import slfgenerator

inventory = pd.read_csv("demos/StoreyLossFunctionGeneration/in/inventory_psd.csv")
model = slfgenerator(
    component_data=inventory,
    edp="PSD",
    edp_range=np.linspace(0.001, 0.10, 100),
    grouping_flag=True,
    conversion=1.0,
    realizations=500,
    replacement_cost=1.0,
)