aebm

Module contents

shakecastaebm.capacity.get_capacity(mbt, sdl, bid, height, stories, year, performance_rating='baseline', quality_rating='poor', elastic_period=None, elastic_damping=None, design_period=None, ultimate_period=None, design_coefficient=None, modal_weight=None, modal_height=None, modal_response=None, pre_yield=None, post_yield=None, max_strength=None, ductility=None, default_damage_state_beta=None, **kwargs)

Builds a dictionary that contains a capacity curve as well as the various parameters used to generate it and potential damage states when shaking occurs

Parameters:
  • mbt – HAZUS model building type
  • sdl – seasmic design level (special_high, high, moderate, low)
  • bid – basis ID, 1-7, describes structural deficiencies from FEMA 155
  • height – height of the structure in feet
  • stories – count of stories above ground.
  • year – year the building was constructured or retrofit
  • performance_rating – DEFAULT ‘baseline’, structural performance rating (baseline, poor, or very_poor)
  • quality_rating – DEFAULT ‘poor’, The quality of this structural data (best, very_good, good, poor, very_poor) elastic_period=None,
  • design_period=None, ultimate_period=None, design_coefficient=None, modal_weight=None, (elastic_damping=None,) –
  • modal_response=None, pre_yield=None, post_yield=None, (modal_height=None,) –
  • ductility=None, default_damage_state_beta=None (max_strength=None,) –
Returns:

‘curve’: capacity_curve, ‘damage_state_medians’: damage_state_medians, ‘default_damage_state_beta’: default_damage_state_beta, ‘design_coefficient’: design_coefficient, ‘design_period’: design_period, ‘ductility’: ductility, ‘elastic_damping’: elastic_damping, ‘elastic_period’: elastic_period, ‘max_strength’: max_strength, ‘modal_height’: modal_height, ‘modal_response’: modal_response, ‘modal_weight’: modal_weight, ‘performance_rating’: performance_rating, ‘post_yield’: post_yield, ‘pre_yield’: pre_yield, ‘quality_rating’: quality_rating, ‘stories’: stories, ‘ultimate_period’: ultimate_period, ‘ultimate_point’: ultimate_point, ‘year’: year, ‘yield_point’: yield_point

Return type:

dict

shakecastaebm.capacity.get_capacity_curve(d_y, a_y, d_u, a_u, elastic_points=5, elipse_points=15, ultimate_points=30)
shakecastaebm.capacity.get_default_period(mbt, sdl, height)
shakecastaebm.capacity.get_design_coefficient(design_period, mbt, sdl)
shakecastaebm.capacity.get_design_period(mbt, sdl, height)
shakecastaebm.capacity.get_ductility(stories)
shakecastaebm.capacity.get_elastic_damping(mbt)
shakecastaebm.capacity.get_max_strength(pre_yield, post_yield, modal_weight, design_coefficient)
shakecastaebm.capacity.get_modal_height(mbt, stories)
shakecastaebm.capacity.get_modal_response(mbt, bid, stories)
shakecastaebm.capacity.get_modal_weight(mbt, stories)
shakecastaebm.capacity.get_post_yield(mbt, bid)
shakecastaebm.capacity.get_pre_yield(stories)
shakecastaebm.capacity.get_seismic_design(design_period, mbt, sdl)
shakecastaebm.capacity.get_ultimate_period(d, a)
shakecastaebm.capacity.get_ultimate_point(ductility, d_y, a_y, post_yield)
shakecastaebm.capacity.get_yield_point(design_coefficient, elastic_period, modal_weight, pre_yield)
shakecastaebm.demand.extend_demand(demand)

Add a final point to the demand curve to anchor it and guarentee intersection with a capacity curve

shakecastaebm.demand.get_demand(hazard, hazard_beta, pref_periods, capacity, mag, rRup)

Generate a displacement/SA spectrum from an input period/SA spectrum using a specific uncertainty, list of prefered periods, capacity magnitude and distance to the rupture

shakecastaebm.demand.make_demand_spectrum(input, x='x', y='y')

Generate displacement values for a period/acceleration spectrum

shakecastaebm.damage.get_damage_probabilities(damage_state_medians, damage_state_beta, displacement)

Computes damage probabilities based on input damage state medians and displacement

Parameters:
  • damage_state_medians

    dict ex. ```{

    ’slight’: float, ‘moderate’: float, ‘extensive’: float, ‘complete’: float

    }```

  • damage_state_beta – float uncertainty in damage states
  • displacement – float
shakecastaebm.damage.get_damage_state_beta(default_beta, default_median, lower_bound_demand_disp, lower_bound_demand_acc, upper_bound_demand_disp, upper_bound_demand_acc, demand_uncertainty, quality_rating, performance_rating, year, stories)

Calculate the uncertainty for a specific damage state

shakecastaebm.damage.get_damage_state_medians(mbt, sdl, performance_rating, height, modal_height, modal_response)
shakecastaebm.damage.get_default_damage_state_beta(quality_rating, performance_rating, year, stories)
shakecastaebm.damage.get_drift(mbt, sdl, perf, state)
shakecastaebm.damage.lognorm(med, spread, value)
shakecastaebm.damping.damp(demand, capacity, mag, r_rup)
shakecastaebm.damping.get_b_eff(capacity, kappa)
shakecastaebm.damping.get_dsf(beta, mag, rRup)
shakecastaebm.damping.get_kappa(spr, year, mag, r_rup)
shakecastaebm.performance_point.average_intersections(intersections, capacity, demand)
shakecastaebm.performance_point.chop_curve(curve, start_val, stop_val, x='x', y='y')
shakecastaebm.performance_point.find_intersections(line1, line2, x='x', y='y')
shakecastaebm.performance_point.find_point_on_curve(x_val, curve, x='x', y='y')
shakecastaebm.performance_point.get_area_under_curve(curve, x='x', y='y')

Integrates a curve of discrete values

shakecastaebm.performance_point.get_intersection(seg1, seg2, x, y)

seg1 and seg2 are 2d arrays [ {x: x1_val, y: y1_val}, {x: x2_val, y: y2_val} ]

shakecastaebm.performance_point.get_performance_point(capacity, demand)
shakecastaebm.spectrum.build_spectrum(input, pref, insert=None, start_val=None, finish_val=None, x='x', y='y')

@param input (list) of points [{x: x_val, y, y_val}, …] @param pref (list) of x values to be included in the expanded spectrum @param insert (list) of additional x values

shakecastaebm.spectrum.insert_vals(lst, vals)
shakecastaebm.spectrum.interpolate(interpX, p1, p2, x='x', y='y')
shakecastaebm.spectrum.linear_interpolate(interpX, p1, p2, x='x', y='y')