Source code for tsnet.network.discretize

"""
This file to for correction factor
"""

[docs]def correction_factor(pipe_characteristics, M_type=None, soil_type=None, age=None): # Make sure the values are strings pipe_characteristics = pd.DataFrame(data = pipe_characteristics.values, columns =pipe_characteristics.columns, index = pipe_characteristics.index.astype('str')) if M_type is None: k3_weight = {'AC': 1.0, 'CI': 1.0, 'DI': 0.5, 'PVC': 0.5, 'STL': 0.7, 'RCCP': 0.2} if M_type is None: k2_weight = {'AC': 1.0, 'CI': 1.0, 'DI': 1.5, 'PVC': 1.0, 'STL': 1.0, 'RCCP': 1.0} def find_corrosion(arrlike): age = arrlike['age'] soil_type = arrlike['soil_type'] M_type = arrlike['M_type'] if M_type == 'CI': if soil_type == 'H': if age < 1920: corrosion_rate = 3.0 elif age<1960: corrosion_rate = -0.05*age+99 else: corrosion_rate = 1.0 elif soil_type == 'M': if age < 1920: corrosion_rate = 2.0 elif age<1960: corrosion_rate = -0.025*age+50 else: corrosion_rate = 1.0 elif soil_type == 'L': corrosion_rate = 1.0 else: print('Soil Type Index Wrong') elif M_type == 'DI': corrosion_rate = 1.5 else: corrosion_rate = 1.0 return corrosion_rate C0 = pipe_characteristics['M_type'].map(k3_weight) C1 = pipe_characteristics['M_type'].map(k2_weight) C2 = pipe_characteristics.apply(find_corrosion,axis = 1) C = C0*C2 return C