Asset Model#
ERAD defines defines two classes, AssetState and Asset, which model the state and characteristics of an asset in relation to various hazard models. AssetState calculates survival probabilities based on hazard vectors like earthquake, fire, wind, and flood, while Asset manages the asset’s attributes and updates its survival probability using fragility curves.
Note
- AssetStatecalculates hazard vectors for earthquake, fire, wind, and flood based on the asset’s location and hazard model.- It updates the survival probabilities using predefined formulas and hazard parameters. 
 
- Assetretrieves or creates an- AssetStatefor a given timestamp and updates its survival probability.- It calculates probabilities using fragility curves and updates the asset state list. 
 
- A float representing the overall survival probability of the asset. 
An example of the asset model can be built using the example method
from erad.models.asset import Asset
asset = Asset.example()
asset.pprint()
Downloading N37W123.hgt.zip
Asset( name='Asset 1', distribution_asset=UUID('123e4567-e89b-12d3-a456-426614174000'), connections=[], devices=[], asset_type=<AssetTypes.distribution_poles: 6>, height=<Quantity(100, 'meter')>, latitude=37.7749, longitude=-122.4194, asset_state=[ AssetState( name='', timestamp=datetime.datetime(2025, 10, 28, 17, 35, 7, 711163), wind_speed=SpeedProbability( name='', survival_probability=1.0, speed=<Quantity(50, 'meter / second')> ), flood_velocity=SpeedProbability( name='', survival_probability=1.0, speed=<Quantity(50, 'meter / second')> ), flood_depth=DistanceProbability(name='', survival_probability=1.0, distance=<Quantity(0, 'meter')>), fire_boundary_dist=DistanceProbability( name='', survival_probability=1.0, distance=<Quantity(0, 'meter')> ), peak_ground_velocity=SpeedProbability( name='', survival_probability=1.0, speed=<Quantity(50, 'meter / second')> ), peak_ground_acceleration=AccelerationProbability( name='', survival_probability=1.0, acceleration=<Quantity(0, 'meter / second ** 2')> ), survival_probability=1.0 ) ], elevation=<Quantity(28.0, 'meter')> )
Asset survival probability is updated using the update_survival_probability methods. This method as input, the fragility curves and hazard model.
from erad.systems import AssetSystem
asset_system = AssetSystem(auto_add_composed_components=True)
asset_system.add_component(asset)
asset_system.info()
System ┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓ ┃ Property ┃ Value ┃ ┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩ │ System name │ │ │ Data format version │ │ │ Components attached │ 8 │ │ Time Series attached │ 0 │ │ Description │ │ └──────────────────────┴───────┘
Component Information ┏━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓ ┃ Type ┃ Count ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩ │ AccelerationProbability │ 1 │ │ Asset │ 1 │ │ AssetState │ 1 │ │ DistanceProbability │ 2 │ │ SpeedProbability │ 3 │ └─────────────────────────┴───────┘
