Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# and try to auto-populate the loss model using the BIM information
DL_input, DL_input_path = auto_populate(DL_input_path, EDP_input_path,
DL_method, realization_count,
coupled_EDP, event_time,
ground_failure)
DL_method = DL_input['DamageAndLoss']['_method']
stripe_str = '' if len(stripes) == 1 else str(stripe)+'_'
if DL_method == 'FEMA P58':
A = FEMA_P58_Assessment(log_file=log_file)
elif DL_method in ['HAZUS MH EQ', 'HAZUS MH', 'HAZUS MH EQ IM']:
A = HAZUS_Assessment(hazard = 'EQ', log_file=log_file)
elif DL_method == 'HAZUS MH HU':
A = HAZUS_Assessment(hazard = 'HU', log_file=log_file)
A.read_inputs(DL_input_path, EDP_files[s_i], verbose=False) # make DL inputs into array of all BIM files
A.define_random_variables()
A.define_loss_model()
A.calculate_damage()
A.calculate_losses()
A.aggregate_results()
A.save_outputs(output_path, EDP_file, DM_file, DV_file, stripe_str,
DL_input, DL_input_path = auto_populate(DL_input_path, EDP_input_path,
DL_method, realization_count,
coupled_EDP, event_time,
ground_failure)
DL_method = DL_input['DamageAndLoss']['_method']
stripe_str = '' if len(stripes) == 1 else str(stripe)+'_'
if DL_method == 'FEMA P58':
A = FEMA_P58_Assessment(log_file=log_file)
elif DL_method in ['HAZUS MH EQ', 'HAZUS MH', 'HAZUS MH EQ IM']:
A = HAZUS_Assessment(hazard = 'EQ', log_file=log_file)
elif DL_method == 'HAZUS MH HU':
A = HAZUS_Assessment(hazard = 'HU', log_file=log_file)
A.read_inputs(DL_input_path, EDP_files[s_i], verbose=False) # make DL inputs into array of all BIM files
A.define_random_variables()
A.define_loss_model()
A.calculate_damage()
A.calculate_losses()
A.aggregate_results()
A.save_outputs(output_path, EDP_file, DM_file, DV_file, stripe_str,
detailed_results=detailed_results)
For the sake of efficiency, only the decision variables requested in
the input file are estimated. The following consequences are handled by
this method for a HAZUS assessment:
Reconstruction time and cost
Get a cost and time estimate for each Damage State in each Performance
Group. For more information about estimating reconstruction cost and
time see _calc_repair_cost_and_time() methods.
Injuries
The number of injuries are based on the probability of injuries of
various severity specified in the component data file. For more
information about estimating injuries _calc_non_collapse_injuries.
"""
super(HAZUS_Assessment, self).calculate_losses()
DVs = self._AIM_in['decision_variables']
# reconstruction cost and time
if DVs['rec_cost'] or DVs['rec_time']:
# all damages are considered repairable in HAZUS
repairable_IDs = self._ID_dict['non-collapse']
self._ID_dict.update({'repairable': repairable_IDs})
self._ID_dict.update({'irrepairable': []})
# reconstruction cost and time for repairable cases
DV_COST, DV_TIME = self._calc_repair_cost_and_time()
if DVs['rec_cost']:
self._DV_dict.update({'rec_cost': DV_COST})
if DVs['rec_time']: