Last active
April 22, 2020 22:04
-
-
Save flare9x/900ee78faa7f3ed2f2298082c180a284 to your computer and use it in GitHub Desktop.
POF analysis :: API 581 for external corrosion
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Distributions | |
using CSV | |
using DataFrames | |
using Statistics | |
using Cairo | |
using Gadfly | |
# read data | |
colnames = ["P&ID","Size","Service","Line_No","Sch","Spec","Exp Code","Design Temp"] | |
AI = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/AI.csv",header=true) | |
names!(AI, Symbol.(colnames)) | |
AR = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/AR.csv",header=true) | |
AR = AR[1:8] | |
names!(AR, Symbol.(colnames)) | |
AS = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/AS.csv",header=true) | |
AS = AS[1:8] | |
names!(AS, Symbol.(colnames)) | |
BC = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/BC.csv",header=true) | |
names!(BC, Symbol.(colnames)) | |
BM = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/BM.csv",header=true) | |
names!(BM, Symbol.(colnames)) | |
CH = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/CH.csv",header=true) | |
names!(CH, Symbol.(colnames)) | |
DC = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DC.csv",header=true) | |
names!(DC, Symbol.(colnames)) | |
DCS = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DCS.csv",header=true) | |
names!(DCS, Symbol.(colnames)) | |
DCW = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DCW.csv",header=true) | |
names!(DCW, Symbol.(colnames)) | |
DF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DF.csv",header=true) | |
names!(DF, Symbol.(colnames)) | |
DM = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DM.csv",header=true) | |
names!(DM, Symbol.(colnames)) | |
DO = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DO.csv",header=true) | |
names!(DO, Symbol.(colnames)) | |
DSB = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DSB.csv",header=true) | |
names!(DSB, Symbol.(colnames)) | |
DSG = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/DSG.csv",header=true) | |
DSG = DSG[1:8] | |
names!(DSG, Symbol.(colnames)) | |
EX = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/EX.csv",header=true) | |
names!(EX, Symbol.(colnames)) | |
EXH = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/EXH.csv",header=true) | |
names!(EXH, Symbol.(colnames)) | |
GAY = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/GAY.csv",header=true) | |
names!(GAY, Symbol.(colnames)) | |
GD = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/GD.csv",header=true) | |
names!(GD, Symbol.(colnames)) | |
GF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/GF.csv",header=true) | |
names!(GF, Symbol.(colnames)) | |
GP = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/GP.csv",header=true) | |
names!(GP, Symbol.(colnames)) | |
GW = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/GW.csv",header=true) | |
names!(GW, Symbol.(colnames)) | |
JF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/JF.csv",header=true) | |
names!(JF, Symbol.(colnames)) | |
LCF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/LCF.csv",header=true) | |
names!(LCF, Symbol.(colnames)) | |
LO = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/LO.csv",header=true) | |
names!(LO, Symbol.(colnames)) | |
LPM = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/LPM.csv",header=true) | |
names!(LPM, Symbol.(colnames)) | |
ME = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/ME.csv",header=true) | |
names!(ME, Symbol.(colnames)) | |
N2 = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/N2.csv",header=true) | |
names!(N2, Symbol.(colnames)) | |
NF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/NF.csv",header=true) | |
names!(NF, Symbol.(colnames)) | |
PF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/PF.csv",header=true) | |
names!(PF, Symbol.(colnames)) | |
PL = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/PL.csv",header=true) | |
names!(PL, Symbol.(colnames)) | |
PV = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/PV.csv",header=true) | |
names!(PV, Symbol.(colnames)) | |
PW = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/PW.csv",header=true) | |
names!(PW, Symbol.(colnames)) | |
SC = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/SC.csv",header=true) | |
names!(SC, Symbol.(colnames)) | |
SV = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/SV.csv",header=true) | |
names!(SV, Symbol.(colnames)) | |
VA = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/VA.csv",header=true) | |
names!(VA, Symbol.(colnames)) | |
VB = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/VB.csv",header=true) | |
names!(VB, Symbol.(colnames)) | |
VC = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/VC.csv",header=true) | |
names!(VC, Symbol.(colnames)) | |
VF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/VF.csv",header=true) | |
names!(VF, Symbol.(colnames)) | |
VN = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/VN.csv",header=true) | |
names!(VN, Symbol.(colnames)) | |
WB = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WB.csv",header=true) | |
names!(WB, Symbol.(colnames)) | |
WBC = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WBC.csv",header=true) | |
names!(WBC, Symbol.(colnames)) | |
WC = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WC.csv",header=true) | |
names!(WC, Symbol.(colnames)) | |
WCH = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WCH.csv",header=true) | |
names!(WCH, Symbol.(colnames)) | |
WD = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WD.csv",header=true) | |
names!(WD, Symbol.(colnames)) | |
WF = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WF.csv",header=true) | |
names!(WF, Symbol.(colnames)) | |
WH = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WH.csv",header=true) | |
names!(WH, Symbol.(colnames)) | |
WI = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WI.csv",header=true) | |
names!(WI, Symbol.(colnames)) | |
WP = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WP.csv",header=true) | |
names!(WP, Symbol.(colnames)) | |
WPD = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WPD.csv",header=true) | |
names!(WPD, Symbol.(colnames)) | |
WS = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WS.csv",header=true) | |
names!(WS, Symbol.(colnames)) | |
WW = CSV.read("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/WW.csv",header=true) | |
names!(WW, Symbol.(colnames)) | |
# Build 1x df | |
out = vcat(AI,AR,AS,BC,BM,CH,DC,DCS,DCW,DF,DM,DO,DSB,DSG,EX,EXH,GAY,GD,GF,GP,GW,JF,LCF,LO,LPM,ME,N2,NF,PF,PL,PV,PW,SC,SV,VA,VB,VC,VF,VN, | |
WB,WBC,WC,WCH,WD,WF,WH,WI,WP,WPD,WS,WW) | |
df = dropmissing(out, :Size) # remove missings | |
df[:Size] = chop.(df[:Size]) # chop not needed strings | |
df = df[df.Size .!= "X", :] # subset to remove erronous X values | |
# data clean pipe diameter | |
dia = df.Size # pull array from df | |
# cnvert fractions to decimals | |
for i=1:length(dia) | |
if dia[i] == "1 1/2" | |
dia[i] = "1.5" | |
elseif dia[i] == "1/2" | |
dia[i] = ".5" | |
elseif dia[i] == "3/4" | |
dia[i] = ".75" | |
elseif dia[i] == "6\" & 8" | |
dia[i] ="8" | |
elseif dia[i] == "{4" | |
dia[i] ="4" | |
elseif dia[i] == "{2" | |
dia[i] ="2" | |
end | |
end | |
df[:Size] = parse.(Float64, dia) # place data wrangled array back to the df | |
# data clean pipe schedule | |
df = dropmissing(df, :Sch) # remove missings | |
pipe_sch = df.Sch | |
spec = df.Spec | |
for i = 1:length(pipe_sch) | |
if pipe_sch[i] == "SS" && spec[i] == "MGA" | |
print("this occured1") | |
pipe_sch[i] = "80" | |
end | |
if pipe_sch[i] == "SS-MGA" | |
print("this occured2") | |
pipe_sch[i] = "80" | |
end | |
if pipe_sch[i] == "SS" && spec[i] == "G" | |
print("this occured3") | |
pipe_sch[i] = "80" | |
end | |
if pipe_sch[i] == "SS" && spec[i] == "CC" | |
print("this occured3") | |
pipe_sch[i] = "160" | |
end | |
if pipe_sch[i] == "SS-C" | |
print("this occured3") | |
pipe_sch[i] = "80" | |
end | |
if pipe_sch[i] == "20D" | |
print("this occured3") | |
pipe_sch[i] = "20" | |
end | |
end | |
df[:Sch] = pipe_sch | |
print(unique(pipe_sch)) | |
df = df[df.Sch .!= "SS", :] # subset to remove erronous X values | |
df = df[df.Sch .!= "316SS", :] # subset to remove erronous X values | |
df = df[df.Sch .!= "0.188", :] # subset to remove erronous X values | |
df = df[df.Sch .!= "1.5625", :] # subset to remove erronous X values | |
df = df[df.Sch .!= "1.51\"", :] # subset to remove erronous X values | |
pipe_spec = df.Spec | |
pressure_class = Int64.(zeros(length(pipe_spec))) | |
A = 150 | |
ALT = 150 | |
AV = 150 | |
AW = 150 | |
B = 300 | |
BB = 300 | |
BLT = 300 | |
C = 600 | |
CC = 600 | |
CPVC = 150 | |
D = 900 | |
DD = 900 | |
DDHT = 900 | |
DHT = 900 | |
DLT = 900 | |
E = 1500 | |
EE = 1500 | |
F = 2500 | |
FF = 2500 | |
FHP = 2500 | |
FRAC = 15000 | |
G = 150 | |
I = 300 | |
J = 5000 | |
JJ = 5000 | |
N = 150 | |
P = 150 | |
PVC = 150 | |
SSA = 150 | |
SSB = 300 | |
SSC = 600 | |
SSD = 900 | |
T = 10000 | |
THP = 10000 | |
TTHP = 10000 | |
UF = 150 | |
UWP = 150 | |
V = 150 | |
IFF = 2500 | |
IFJ = 5000 | |
IFT = 10000 | |
GPLD = 900 | |
OPLD = 900 | |
OPLE = 10000 | |
# USCG | |
MB = 300 | |
MDA = 150 | |
MGA = 150 | |
MQ = 150 | |
MR = 150 | |
MSS = 150 | |
MV = 150 | |
MVB = 300 | |
MVEN = 125 | |
# SP** = 150 | |
# remove white space | |
for i = 1:nrow(df) | |
missings_id = ismissing(df.Spec[i]) | |
if missings_id == false | |
df.Spec[i] = strip(chop(df.Spec[i])) | |
end | |
end | |
pressure_class = zeros(nrow(df)) | |
upper_pressure_limit_pipe_spec = pressure_class | |
Do = zeros(nrow(df)) | |
S = zeros(nrow(df)) | |
YS = zeros(nrow(df)) | |
TS = zeros(nrow(df)) | |
i=1 | |
for i = 1:nrow(df) | |
missings_id = ismissing(df.Spec[i]) | |
if missings_id == false && df.Spec[i] == "A" | |
pressure_class[i] = A | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "A/WE" | |
pressure_class[i] = A | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "A/IC" | |
pressure_class[i] = A | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "A/PV" | |
pressure_class[i] = A | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "ALT" | |
pressure_class[i] = ALT | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "AV" | |
pressure_class[i] = AV | |
upper_pressure_limit_pipe_spec[i] = 100.0 | |
elseif missings_id == false && df.Spec[i] == "AV/PVM" | |
pressure_class[i] = AV | |
upper_pressure_limit_pipe_spec[i] = 100.0 | |
elseif missings_id == false && df.Spec[i] == "AV/IC" | |
pressure_class[i] = AV | |
upper_pressure_limit_pipe_spec[i] = 100.0 | |
elseif missings_id == false && df.Spec[i] == "AW" | |
pressure_class[i] = AV | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "B" | |
pressure_class[i] = B | |
upper_pressure_limit_pipe_spec[i] = 740.0 | |
elseif missings_id == false && df.Spec[i] == "B/WE" | |
pressure_class[i] = B | |
upper_pressure_limit_pipe_spec[i] = 740.0 | |
elseif missings_id == false && df.Spec[i] == "BLT" | |
pressure_class[i] = BLT | |
upper_pressure_limit_pipe_spec[i] = 740.0 | |
elseif missings_id == false && df.Spec[i] == "C" | |
pressure_class[i] = C | |
upper_pressure_limit_pipe_spec[i] = 1480.0 | |
elseif missings_id == false && df.Spec[i] == "CC" | |
pressure_class[i] = CC | |
upper_pressure_limit_pipe_spec[i] = 1480.0 | |
elseif missings_id == false && df.Spec[i] == "CC/WEL" | |
pressure_class[i] = CC | |
upper_pressure_limit_pipe_spec[i] = 1480.0 | |
elseif missings_id == false && df.Spec[i] == "CC/WE" | |
pressure_class[i] = CC | |
upper_pressure_limit_pipe_spec[i] = 1480.0 | |
elseif missings_id == false && df.Spec[i] == "CC/PV" | |
pressure_class[i] = CC | |
upper_pressure_limit_pipe_spec[i] = 1480.0 | |
elseif missings_id == false && df.Spec[i] == "CC/ICP" | |
pressure_class[i] = CC | |
upper_pressure_limit_pipe_spec[i] = 1480.0 | |
elseif missings_id == false && df.Spec[i] == "CPVC" | |
pressure_class[i] = CPVC | |
upper_pressure_limit_pipe_spec[i] = 0.0 | |
elseif missings_id == false && df.Spec[i] == "CPV" | |
pressure_class[i] = CPVC | |
upper_pressure_limit_pipe_spec[i] = 0.0 | |
elseif missings_id == false && df.Spec[i] == "D" | |
pressure_class[i] = D | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "D /WE" | |
pressure_class[i] = D | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DD" | |
pressure_class[i] = DD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DD/DVM" | |
pressure_class[i] = DD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DD/WE" | |
pressure_class[i] = DD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DD/WEL" | |
pressure_class[i] = DD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DD/ICP" | |
pressure_class[i] = DD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DD/PV" | |
pressure_class[i] = DD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DDHT" | |
pressure_class[i] = DDHT | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DHT" | |
pressure_class[i] = DHT | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "DLT" | |
pressure_class[i] = DLT | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "E" | |
pressure_class[i] = E | |
upper_pressure_limit_pipe_spec[i] = 3700.0 | |
elseif missings_id == false && df.Spec[i] == "EE" | |
pressure_class[i] = EE | |
upper_pressure_limit_pipe_spec[i] = 3705.0 | |
elseif missings_id == false && df.Spec[i] == "EE/WE" | |
pressure_class[i] = EE | |
upper_pressure_limit_pipe_spec[i] = 3705.0 | |
elseif missings_id == false && df.Spec[i] == "F" | |
pressure_class[i] = F | |
upper_pressure_limit_pipe_spec[i] = 6000.0 | |
elseif missings_id == false && df.Spec[i] == "FF" | |
pressure_class[i] = FF | |
upper_pressure_limit_pipe_spec[i] = 6000.0 | |
elseif missings_id == false && df.Spec[i] == "FHP" | |
pressure_class[i] = FHP | |
upper_pressure_limit_pipe_spec[i] = 6000.0 | |
elseif missings_id == false && df.Spec[i] == "FRAC" | |
pressure_class[i] = FRAC | |
upper_pressure_limit_pipe_spec[i] = 15000.0 | |
elseif missings_id == false && df.Spec[i] == "G" | |
pressure_class[i] = G | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "I" | |
pressure_class[i] = I | |
upper_pressure_limit_pipe_spec[i] = 740.0 | |
elseif missings_id == false && df.Spec[i] == "I /FS" | |
pressure_class[i] = I | |
upper_pressure_limit_pipe_spec[i] = 740.0 | |
elseif missings_id == false && df.Spec[i] == "I/FS" | |
pressure_class[i] = I | |
upper_pressure_limit_pipe_spec[i] = 740.0 | |
elseif missings_id == false && df.Spec[i] == "J" | |
pressure_class[i] = J | |
upper_pressure_limit_pipe_spec[i] = 5000.0 | |
elseif missings_id == false && df.Spec[i] == "JJ" | |
pressure_class[i] = JJ | |
upper_pressure_limit_pipe_spec[i] = 5000.0 | |
elseif missings_id == false && df.Spec[i] == "JJ/WEL" | |
pressure_class[i] = JJ | |
upper_pressure_limit_pipe_spec[i] = 5000.0 | |
elseif missings_id == false && df.Spec[i] == "JJ/WE" | |
pressure_class[i] = JJ | |
upper_pressure_limit_pipe_spec[i] = 5000.0 | |
elseif missings_id == false && df.Spec[i] == "N" | |
pressure_class[i] = N | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "P" | |
pressure_class[i] = P | |
upper_pressure_limit_pipe_spec[i] = 285.0 | |
elseif missings_id == false && df.Spec[i] == "PVC/US" | |
pressure_class[i] = PVC | |
upper_pressure_limit_pipe_spec[i] = 150.0 | |
elseif missings_id == false && df.Spec[i] == "PVC" | |
pressure_class[i] = PVC | |
upper_pressure_limit_pipe_spec[i] = 150.0 | |
elseif missings_id == false && df.Spec[i] == "PVC/TW" | |
pressure_class[i] = PVC | |
upper_pressure_limit_pipe_spec[i] = 150.0 | |
elseif missings_id == false && df.Spec[i] == "SSA" | |
pressure_class[i] = SSA | |
upper_pressure_limit_pipe_spec[i] = 275.0 | |
elseif missings_id == false && df.Spec[i] == "SSA/TW" | |
pressure_class[i] = SSA | |
upper_pressure_limit_pipe_spec[i] = 275.0 | |
elseif missings_id == false && df.Spec[i] == "SSA/US" | |
pressure_class[i] = SSA | |
upper_pressure_limit_pipe_spec[i] = 275.0 | |
elseif missings_id == false && df.Spec[i] == "SSB" | |
pressure_class[i] = SSB | |
upper_pressure_limit_pipe_spec[i] = 720.0 | |
elseif missings_id == false && df.Spec[i] == "SSC" | |
pressure_class[i] = SSC | |
upper_pressure_limit_pipe_spec[i] = 1440.0 | |
elseif missings_id == false && df.Spec[i] == "SSC/TW" | |
pressure_class[i] = SSC | |
upper_pressure_limit_pipe_spec[i] = 1440.0 | |
elseif missings_id == false && df.Spec[i] == "SSC/US" | |
pressure_class[i] = SSC | |
upper_pressure_limit_pipe_spec[i] = 1440.0 | |
elseif missings_id == false && df.Spec[i] == "SSD" | |
pressure_class[i] = SSD | |
upper_pressure_limit_pipe_spec[i] = 2160.0 | |
elseif missings_id == false && df.Spec[i] == "SSD/WE" | |
pressure_class[i] = SSD | |
upper_pressure_limit_pipe_spec[i] = 2160.0 | |
elseif missings_id == false && df.Spec[i] == "T" | |
pressure_class[i] = T | |
upper_pressure_limit_pipe_spec[i] = 10000.0 | |
elseif missings_id == false && df.Spec[i] == "THP" | |
pressure_class[i] = THP | |
upper_pressure_limit_pipe_spec[i] = 10000.0 | |
elseif missings_id == false && df.Spec[i] == "TTHP" | |
pressure_class[i] = TTHP | |
upper_pressure_limit_pipe_spec[i] = 10000.0 | |
elseif missings_id == false && df.Spec[i] == "UF/PO" | |
pressure_class[i] = UF | |
upper_pressure_limit_pipe_spec[i] = 225.0 | |
elseif missings_id == false && df.Spec[i] == "UF" | |
pressure_class[i] = UF | |
upper_pressure_limit_pipe_spec[i] = 225.0 | |
elseif missings_id == false && df.Spec[i] == "UWP" | |
pressure_class[i] = UWP | |
upper_pressure_limit_pipe_spec[i] = 200.0 | |
elseif missings_id == false && df.Spec[i] == "V" | |
pressure_class[i] = V | |
upper_pressure_limit_pipe_spec[i] = 200.0 | |
elseif missings_id == false && df.Spec[i] == "IFF" | |
pressure_class[i] = IFF | |
upper_pressure_limit_pipe_spec[i] = 6000.0 | |
elseif missings_id == false && df.Spec[i] == "IFJ" | |
pressure_class[i] = IFJ | |
upper_pressure_limit_pipe_spec[i] = 5000.0 | |
elseif missings_id == false && df.Spec[i] == "IFT" | |
pressure_class[i] = IFT | |
upper_pressure_limit_pipe_spec[i] = 10000.0 | |
elseif missings_id == false && df.Spec[i] == "GPLD" | |
pressure_class[i] = GPLD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "OPLD" | |
pressure_class[i] = OPLD | |
upper_pressure_limit_pipe_spec[i] = 2220.0 | |
elseif missings_id == false && df.Spec[i] == "OPLE" | |
pressure_class[i] = OPLE | |
upper_pressure_limit_pipe_spec[i] = 3700.0 | |
elseif missings_id == false && df.Spec[i] == "MB" | |
pressure_class[i] = MB | |
upper_pressure_limit_pipe_spec[i] = 350.0 | |
elseif missings_id == false && df.Spec[i] == "MDA" | |
pressure_class[i] = MDA | |
upper_pressure_limit_pipe_spec[i] = 150.0 | |
elseif missings_id == false && df.Spec[i] == "MGA" | |
pressure_class[i] = MGA | |
upper_pressure_limit_pipe_spec[i] = 150.0 | |
elseif missings_id == false && df.Spec[i] == "MQ" | |
pressure_class[i] = MQ | |
upper_pressure_limit_pipe_spec[i] = 200.0 | |
elseif missings_id == false && df.Spec[i] == "MR" | |
pressure_class[i] = MR | |
upper_pressure_limit_pipe_spec[i] = 200.0 | |
elseif missings_id == false && df.Spec[i] == "MSS" | |
pressure_class[i] = MSS | |
upper_pressure_limit_pipe_spec[i] = 150.0 | |
elseif missings_id == false && df.Spec[i] == "MV" | |
pressure_class[i] = MV | |
upper_pressure_limit_pipe_spec[i] = 200.0 | |
elseif missings_id == false && df.Spec[i] == "MV/PPA" | |
pressure_class[i] = MV | |
upper_pressure_limit_pipe_spec[i] = 200.0 | |
elseif missings_id == false && df.Spec[i] == "MVB" | |
pressure_class[i] = MVB | |
upper_pressure_limit_pipe_spec[i] = 300.0 | |
elseif missings_id == false && df.Spec[i] == "MVEN" | |
pressure_class[i] = MVEN | |
upper_pressure_limit_pipe_spec[i] = 125.0 | |
end | |
end | |
# material S value @ temperature combination | |
df.P = upper_pressure_limit_pipe_spec | |
Do = zeros(nrow(df)) | |
names(df) | |
print(unique(df.Size)) | |
for i = 1:nrow(df) | |
if df.Size[i] == 0.5 | |
Do[i] = 0.840 | |
elseif df.Size[i] == 0.75 | |
Do[i] = 1.050 | |
elseif df.Size[i] == 1.0 | |
Do[i] = 1.315 | |
elseif df.Size[i] == 1.5 | |
Do[i] = 1.900 | |
elseif df.Size[i] == 2.0 | |
Do[i] = 2.375 | |
elseif df.Size[i] == 3.0 | |
Do[i] = 3.500 | |
elseif df.Size[i] == 4.0 | |
Do[i] = 4.5 | |
elseif df.Size[i] == 5.0 | |
Do[i] = 5.563 | |
elseif df.Size[i] == 6.0 | |
Do[i] = 6.625 | |
elseif df.Size[i] == 8.0 | |
Do[i] = 8.625 | |
elseif df.Size[i] == 10.0 | |
Do[i] = 10.75 | |
elseif df.Size[i] == 12.0 | |
Do[i] = 12.750 | |
elseif df.Size[i] == 14.0 | |
Do[i] = 14.0 | |
elseif df.Size[i] == 16.0 | |
Do[i] = 16.0 | |
elseif df.Size[i] == 18.0 | |
Do[i] = 18.0 | |
elseif df.Size[i] == 20.0 | |
Do[i] = 20.0 | |
elseif df.Size[i] == 22.0 | |
Do[i] = 22.0 | |
elseif df.Size[i] == 24.0 | |
Do[i] = 24.0 | |
end | |
end | |
# append to df | |
df.Do = Do | |
S = zeros(nrow(df)) | |
YS = zeros(nrow(df)) | |
TS = zeros(nrow(df)) | |
design_code = fill("",nrow(df)) | |
i=1 | |
for i = 1:nrow(df) | |
missings_id = ismissing(df.Spec[i]) | |
if missings_id == false && df.Spec[i] == "A" | |
# df pipe D | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "A/WE" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "A/IC" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "A/PV" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "ALT" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "AV" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "AV/PVM" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "AV/IC" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "AW" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "B" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "B/WE" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "BLT" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "C" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "CC" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "CC/WEL" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "CC/WE" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "CC/PV" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "CC/ICP" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "CPVC" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "" | |
elseif missings_id == false && df.Spec[i] == "CPV" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "" | |
elseif missings_id == false && df.Spec[i] == "D" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "D /WE" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DD" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DD/DVM" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DD/WE" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DD/WEL" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DD/ICP" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DD/PV" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DDHT" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DHT" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "DLT" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "E" | |
if df.Size[i] <= 12.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 12.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "EE" | |
if df.Size[i] <= 4.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 4.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "EE/WE" | |
if df.Size[i] <= 4.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 4.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "F" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 3.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "FF" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 3.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "FHP" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 3.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "FRAC" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 3.0 | |
S[i] = 2/3 * 110000 | |
YS[i] = 110*1000 | |
TS[i] = 115*1000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "G" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "I" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "I /FS" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "I/FS" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "J" | |
if df.Size[i] <= 4.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 4.0 && df.Size[i] <= 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "JJ" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 3.0 && df.Size[i] <= 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "JJ/WEL" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 3.0 && df.Size[i] <= 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "JJ/WE" | |
if df.Size[i] <= 3.0 | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif (df.Size[i] > 3.0) && (df.Size[i] <= 6.0) | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif df.Size[i] > 6.0 | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
end | |
elseif missings_id == false && df.Spec[i] == "N" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "P" | |
S[i] = 23300 | |
YS[i] = 40000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "PVC/US" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "PVC" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "PVC/TW" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSA" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSA/TW" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSA/US" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSB" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSC" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSC/TW" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSC/US" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSD" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "SSD/WE" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "T" | |
S[i] = 2/3*65300.0 | |
YS[i] = 65.3*1000 | |
TS[i] = 77.6*1000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "THP" | |
S[i] = 2/3*65300.0 | |
YS[i] = 65.3*1000 | |
TS[i] = 77.6*1000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "TTHP" | |
S[i] = 2/3*65300.0 | |
YS[i] = 65.3*1000 | |
TS[i] = 77.6*1000 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "UF/PO" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "UF" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "UWP" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "V" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "IFF" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "IFJ" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "IFT" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "GPLD" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "OPLD" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "OPLE" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.3" | |
elseif missings_id == false && df.Spec[i] == "MB" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MDA" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MGA" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MQ" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MR" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MSS" | |
S[i] = 16700 | |
YS[i] = 25000 | |
TS[i] = 70000 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MV" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MV/PPA" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MVB" | |
S[i] = 0 | |
YS[i] = 0 | |
TS[i] = 0 | |
design_code[i] = "ASME B31.1" | |
elseif missings_id == false && df.Spec[i] == "MVEN" | |
S[i] = 20000 | |
YS[i] = 35000 | |
TS[i] = 60000 | |
design_code[i] = "ASME B31.1" | |
end | |
end | |
df.S = S | |
df.YS = YS | |
df.TS = TS | |
df.design_code = design_code | |
unique(df.Sch) | |
for i in 1:nrow(df) | |
if df.Sch[i] == 80 | |
df.Sch[i] = "080" | |
elseif df.Sch[i] == 40 | |
df.Sch[i] = "040" | |
elseif df.Sch[i] == 20 | |
df.Sch[i] = "020" | |
elseif df.Sch[i] == "040S" | |
df.Sch[i] = "040" | |
elseif df.Sch[i] == 200 | |
df.Sch[i] = "200" | |
elseif df.Sch[i] == 160 | |
df.Sch[i] = "0160" | |
elseif df.Sch[i] == "40" | |
df.Sch[i] = "040" | |
elseif df.Sch[i] == "80" | |
df.Sch[i] = "080" | |
elseif df.Sch[i] == "20" | |
df.Sch[i] = "020" | |
end | |
end | |
print(unique(df.Sch)) | |
df[:unique_line_no] = join.(df[:Sch],df[:Line_No],df[:Spec]) | |
df = unique(df, :unique_line_no) | |
# assoicate wdf thickness | |
# do nominal WT for each | |
d_050_40 = .109 | |
d_050_80 = .147 | |
d_050_160 = .188 | |
d_050_xxs = .294 | |
d_075_40 = 0.113 | |
d_075_80 = 0.154 | |
d_075_160 = 0.219 | |
d_075_xxs = 0.308 | |
d_1_40 = 0.133 | |
d_1_80 = 0.179 | |
d_1_160 = 0.250 | |
d_1_xxs = 0.358 | |
d_1_5_40 = 0.145 | |
d_1_5_80 = 0.200 | |
d_1_5_160 = 0.281 | |
d_1_5_xxs = 0.400 | |
d_2_40 = .154 | |
d_2_std = .154 | |
d_2_80 = .218 | |
d_2_xs = .218 | |
d_2_160 = .344 | |
d_2_xxs = .436 | |
d_2_5_40 = 0.203 | |
d_2_5_std = 0.203 | |
d_2_5_80 = 0.276 | |
d_2_5_xs = 0.276 | |
d_2_5_160 = 0.375 | |
d_2_5_xxs = 0.552 | |
d_3_40 = 0.216 | |
d_3_std = 0.216 | |
d_3_80 = 0.300 | |
d_3_xs = 0.300 | |
d_3_160 = 0.438 | |
d_3_xxs = 0.600 | |
d_3_5_40 = 0.226 | |
d_3_5_std = 0.226 | |
d_3_5_80 = 0.318 | |
d_3_5_xs = 0.318 | |
d_4_40 = 0.237 | |
d_4_std = 0.237 | |
d_4_80 = 0.337 | |
d_4_xs = 0.337 | |
d_4_120 = 0.438 | |
d_4_160 = 0.531 | |
d_4_xxs = 0.674 | |
d_5_40 = 0.258 | |
d_5_std = 0.258 | |
d_5_80 = 0.375 | |
d_5_xs = 0.375 | |
d_5_120 = 0.500 | |
d_5_160 = 0.625 | |
d_5_xxs = 0.750 | |
d_6_40 = 0.280 | |
d_6_std = 0.280 | |
d_6_80 = 0.432 | |
d_6_xs = 0.432 | |
d_6_120 = 0.562 | |
d_6_160 = 0.719 | |
d_6_xxs = 0.864 | |
d_8_20 = 0.250 | |
d_8_30 = 0.277 | |
d_8_40 = 0.322 | |
d_8_std = 0.322 | |
d_8_60 = 0.406 | |
d_8_80 = 0.500 | |
d_8_xs = 0.500 | |
d_8_100 = 0.594 | |
d_8_120 = 0.719 | |
d_8_140 = 0.812 | |
d_8_xxs = 0.875 | |
d_8_160 = 0.906 | |
d_10_20 = 0.250 | |
d_10_30 = 0.307 | |
d_10_40 = 0.365 | |
d_10_std = 0.365 | |
d_10_60 = 0.500 | |
d_10_xs = 0.500 | |
d_10_80 = 0.594 | |
d_10_100 = 0.719 | |
d_10_120 = 0.844 | |
d_10_140 = 1.000 | |
d_10_160 = 1.125 | |
d_12_20 = 0.250 | |
d_12_30 = 0.330 | |
d_12_std = 0.375 | |
d_12_40 = 0.406 | |
d_12_xs = 0.500 | |
d_12_60 = 0.562 | |
d_12_80 = 0.688 | |
d_12_100 = 0.844 | |
d_12_120 = 1.000 | |
d_12_140 = 1.125 | |
d_12_160 = 1.312 | |
d_14_10 = 0.250 | |
d_14_20 = 0.312 | |
d_14_30 = 0.375 | |
d_14_40 = 0.438 | |
d_14_xs = 0.500 | |
d_14_60 = 0.594 | |
d_14_80 = 0.750 | |
d_14_100 = 0.938 | |
d_14_120 = 1.094 | |
d_14_140 = 1.125 | |
d_14_160 = 1.406 | |
d_16_10 = 0.250 | |
d_16_20 = 0.312 | |
d_16_30 = 0.375 | |
d_16_40 = 0.500 | |
d_16_60 = 0.656 | |
d_16_80 = 0.844 | |
d_16_100 = 1.0311 | |
d_16_120 = 1.219 | |
d_16_140 = 1.438 | |
d_16_160 = 1.594 | |
d_18_10 = 0.250 | |
d_18_20 = 0.312 | |
d_18_std = 0.375 | |
d_18_30 = 0.438 | |
d_18_xs = 0.500 | |
d_18_40 = 0.562 | |
d_18_60 = 0.750 | |
d_18_80 = 0.938 | |
d_18_100 = 1.156 | |
d_18_120 = 1.375 | |
d_18_140 = 1.562 | |
d_18_160 = 1.781 | |
d_20_10 = 0.250 | |
d_20_20 = 0.375 | |
d_20_30 = 0.500 | |
d_20_40 = 0.594 | |
d_20_60 = 0.812 | |
d_20_80 = 1.031 | |
d_20_100 = 1.281 | |
d_20_120 = 1.500 | |
d_20_140 = 1.750 | |
d_20_160 = 1.969 | |
d_22_10 = 0.250 | |
d_22_20 = 0.375 | |
d_22_30 = 0.500 | |
d_22_60 = 0.875 | |
d_22_80 = 1.125 | |
d_22_100 = 1.375 | |
d_22_120 = 1.625 | |
d_22_140 = 1.875 | |
d_22_160 = 2.125 | |
d_24_10 = 0.250 | |
d_24_20 = 0.375 | |
d_24_xs = 0.500 | |
d_24_30 = 0.562 | |
d_24_40 = 0.688 | |
d_24_60 = 0.969 | |
d_24_80 = 1.219 | |
d_24_100 = 1.531 | |
d_24_120 = 1.812 | |
d_24_140 = 2.062 | |
d_24_160 = 2.344 | |
unique(df[:Sch]) | |
print(sort(unique(df.Size))) | |
# [0.75, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] | |
# Any["XXS", "160", "080", "120", "XS", "100", "060", "STD", "040", "X65", "200", "150", "010", "0160", "020", "225"] | |
nominal_wt = zeros(nrow(df)) | |
for i = 1:length(nominal_wt) | |
# .75 | |
if df[:Size][i] == .75 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_075_40 | |
elseif df[:Size][i] == .75 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_075_80 | |
elseif df[:Size][i] == .75 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_075_160 | |
elseif df[:Size][i] == .75 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_075_xxs | |
# 1.0 | |
elseif df[:Size][i] == 1.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_1_40 | |
elseif df[:Size][i] == 1.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_1_80 | |
elseif df[:Size][i] == 1.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_1_160 | |
elseif df[:Size][i] == 1.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_1_xxs | |
# 1.5 | |
elseif df[:Size][i] == 1.5 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_1_5_40 | |
elseif df[:Size][i] == 1.5 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_1_5_80 | |
elseif df[:Size][i] == 1.5 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_1_5_160 | |
elseif df[:Size][i] == 1.5 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_1_5_xxs | |
# 2.0 | |
elseif df[:Size][i] == 2.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_2_40 | |
elseif df[:Size][i] == 2.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_2_80 | |
elseif df[:Size][i] == 2.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_2_160 | |
elseif df[:Size][i] == 2.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_2_xxs | |
elseif df[:Size][i] == 2.0 && df[:Sch][i] == "STD" | |
nominal_wt[i] = d_2_40 | |
# 3.0 | |
elseif df[:Size][i] == 3.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_3_40 | |
elseif df[:Size][i] == 3.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_3_80 | |
elseif df[:Size][i] == 3.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_3_160 | |
elseif df[:Size][i] == 3.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_3_xxs | |
# 4.0 | |
elseif df[:Size][i] == 4.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_4_40 | |
elseif df[:Size][i] == 4.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_4_80 | |
elseif df[:Size][i] == 4.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_4_120 | |
elseif df[:Size][i] == 4.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_4_160 | |
elseif df[:Size][i] == 4.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_4_xxs | |
# 5.0 | |
elseif df[:Size][i] == 5.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_5_40 | |
elseif df[:Size][i] == 5.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_5_80 | |
elseif df[:Size][i] == 5.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_5_120 | |
elseif df[:Size][i] == 5.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_5_160 | |
elseif df[:Size][i] == 5.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_5_xxs | |
# 6.0 | |
elseif df[:Size][i] == 6.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_6_40 | |
elseif df[:Size][i] == 6.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_6_80 | |
elseif df[:Size][i] == 6.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_6_120 | |
elseif df[:Size][i] == 6.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_6_160 | |
elseif df[:Size][i] == 6.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_6_xxs | |
# 8.0 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_8_20 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "030" | |
nominal_wt[i] = d_8_30 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_8_40 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_8_60 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_8_80 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_8_100 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_8_120 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_8_140 | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "XXS" | |
nominal_wt[i] = d_8_xxs | |
elseif df[:Size][i] == 8.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_8_160 | |
# 10.0 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_10_20 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "030" | |
nominal_wt[i] = d_10_30 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_10_40 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_10_60 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_10_80 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_10_100 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_10_120 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_10_140 | |
elseif df[:Size][i] == 10.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_10_160 | |
# 12.0 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_12_20 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "030" | |
nominal_wt[i] = d_12_30 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "STD" | |
nominal_wt[i] = d_12_std | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_12_40 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "XS" | |
nominal_wt[i] = d_12_xs | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_12_60 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_12_80 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_12_100 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_12_120 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_12_140 | |
elseif df[:Size][i] == 12.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_12_160 | |
# 14.0 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "010" | |
nominal_wt[i] = d_14_10 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_14_20 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "030" | |
nominal_wt[i] = d_14_30 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_14_40 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "XS" | |
nominal_wt[i] = d_14_xs | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_14_60 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_14_80 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_14_100 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_14_120 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_14_140 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_14_160 | |
elseif df[:Size][i] == 14.0 && df[:Sch][i] == "STD" | |
nominal_wt[i] = .375 | |
# 16.0 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "010" | |
nominal_wt[i] = d_16_10 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_16_20 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "030" | |
nominal_wt[i] = d_16_30 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_16_40 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_16_60 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_16_80 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_16_100 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_16_120 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_16_140 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_16_160 | |
elseif df[:Size][i] == 16.0 && df[:Sch][i] == "STD" | |
nominal_wt[i] = .375 | |
# 18.0 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "010" | |
nominal_wt[i] = d_18_10 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_18_20 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "STD" | |
nominal_wt[i] = d_18_30 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "XS" | |
nominal_wt[i] = d_18_xs | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_18_40 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_18_60 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_18_80 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_18_100 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_18_120 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_18_140 | |
elseif df[:Size][i] == 18.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_18_140 | |
# 20.0 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "010" | |
nominal_wt[i] = d_20_10 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "020" | |
nominal_wt[i] = d_20_20 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "030" | |
nominal_wt[i] = d_20_30 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "040" | |
nominal_wt[i] = d_20_40 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "060" | |
nominal_wt[i] = d_20_60 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "080" | |
nominal_wt[i] = d_20_80 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "100" | |
nominal_wt[i] = d_20_100 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "120" | |
nominal_wt[i] = d_20_120 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "140" | |
nominal_wt[i] = d_20_140 | |
elseif df[:Size][i] == 20.0 && df[:Sch][i] == "160" | |
nominal_wt[i] = d_20_160 | |
#################################### | |
end | |
end | |
df[:nominal_wt] = nominal_wt | |
#= | |
# subset per pipe schedule | |
df_1_inch = df[df.Size .== 1.0, :] | |
df_0_50_inch = df[df.Size .== .5, :] | |
df_0_75_inch = df[df.Size .== .75, :] | |
df_1_5_inch = df[df.Size .== 1.5, :] | |
df_2_inch = df[df.Size .== 2.0, :] | |
df_3_inch = df[df.Size .== 3.0, :] | |
df_4_inch = df[df.Size .== 4.0, :] | |
df_5_inch = df[df.Size .== 5.0, :] | |
df_6_inch = df[df.Size .== 6.0, :] | |
df_7_inch = df[df.Size .== 7.0, :] | |
df_8_inch = df[df.Size .== 8.0, :] | |
df_10_inch = df[df.Size .== 10.0, :] | |
df_12_inch = df[df.Size .== 12.0, :] | |
df_14_inch = df[df.Size .== 14.0, :] | |
df_16_inch = df[df.Size .== 16.0, :] | |
df_20_inch = df[df.Size .== 20.0, :] | |
# remove fiberglass spec | |
df_2_inch = df_2_inch[df_2_inch.Sch .!= "200", :] # remove UF fiberglass specification | |
groups = groupby(df_2_inch, :Sch) | |
for i = 1:nrow(df_2_inch) | |
if df_2_inch[:Sch] == 160 | |
print(unique(df.Size)) | |
=# | |
###################+ Begin API 581 +###################+ | |
# External Corrosion | |
# Step 1 | |
# Furnished thickness | |
i = 31 | |
tmin = zeros(nrow(df)) | |
Art = zeros(nrow(df)) | |
FSextcorr = zeros(nrow(df)) | |
SRPextcorr_one = zeros(nrow(df)) | |
SRPextcorr_two = zeros(nrow(df)) | |
SRPextcorr_final = zeros(nrow(df)) | |
I1extcorr = zeros(nrow(df)) | |
I2extcorr = zeros(nrow(df)) | |
I3extcorr = zeros(nrow(df)) | |
Pop1extcorr = zeros(nrow(df)) | |
Pop2extcorr = zeros(nrow(df)) | |
Pop3extcorr = zeros(nrow(df)) | |
βextcorr1 = zeros(nrow(df)) | |
βextcorr2 = zeros(nrow(df)) | |
βextcorr3 = zeros(nrow(df)) | |
Df = zeros(nrow(df)) | |
Pf_t = zeros(nrow(df)) | |
for i = 1:nrow(df) | |
age = 23.7 | |
# Step 2 | |
Crb = .005 # can iterate later for sensitivty | |
FEQ = 2.0 | |
FIF = 1.0 | |
# Step 3 | |
Cr = Crb*(maximum([FEQ,FIF])) | |
agetk = age # Time in service | |
# Step 4 | |
Trde = df.nominal_wt[i] # last known inspection thickness | |
# Step 5 | |
agecoat = agetk | |
# Step 6 | |
Coatadj = minimum([5.0,agecoat]) | |
# Step 7 | |
age_final = agetk - Coatadj | |
# Step 8 | |
if df.design_code[i] == "ASME B31.3" | |
tmin[i] = (df.P[i] * df.Do[i]) / (2*((df.S[i] * 1.0 * 1.0) + (df.P[i] * 0.4))) | |
elseif df.design_code[i] == "ASME B31.1" | |
tmin[i] = (df.P[i] * df.Do[i]) / (2*((df.S[i] * 1.0 * 1.0) + (df.P[i] * 0.4))) + 0.0 # mech allow == 0.0 | |
end | |
# Step 9 | |
Art[i] = ((Cr*age_final)/df.nominal_wt[i]) | |
# Step 10 | |
FSextcorr[i] = (df.YS[i]+df.TS[i])/2*1*1.1 | |
# Step 11 | |
df.Sch[i] | |
SRPextcorr_one[i] = ((df.S[i]*1)/FSextcorr[i]) * (tmin[i]/Trde) | |
SRPextcorr_two[i] = (df.P[i]*df.Do[i])/(2*FSextcorr[i]*Trde) | |
SRPextcorr_final[i] = maximum([SRPextcorr_one[i],SRPextcorr_two[i]]) | |
# Step 12 | |
NAextcorr = 1 | |
NBextcorr = 1 | |
NCextcorr = 1 | |
NDextcorr = 1 | |
# Step 13 inspection effectivness factors = fixed from API 581 | |
Prp1extcorr = 0.5 | |
Prp2extcorr = 0.3 | |
Prp3extcorr = 0.2 | |
Cop1extcorr = 0.33 | |
Cop2extcorr = 0.33 | |
Cop3extcorr = 0.33 | |
I1extcorr[i] = Prp1extcorr*(Cop1extcorr^NAextcorr)*(Cop1extcorr^NBextcorr)*(Cop1extcorr^NCextcorr)*(Cop1extcorr^NDextcorr) | |
I2extcorr[i] = Prp2extcorr*(Cop2extcorr^NAextcorr)*(Cop2extcorr^NBextcorr)*(Cop2extcorr^NCextcorr)*(Cop2extcorr^NDextcorr) | |
I3extcorr[i] = Prp3extcorr*(Cop3extcorr^NAextcorr)*(Cop3extcorr^NBextcorr)*(Cop3extcorr^NCextcorr)*(Cop3extcorr^NDextcorr) | |
# Step 14 Posterior probabilities | |
Pop1extcorr[i] = (I1extcorr[i]/(I1extcorr[i]+I2extcorr[i]+I3extcorr[i])) | |
Pop2extcorr[i] = (I2extcorr[i]/(I1extcorr[i]+I2extcorr[i]+I3extcorr[i])) | |
Pop3extcorr[i] = (I3extcorr[i]/(I1extcorr[i]+I2extcorr[i]+I3extcorr[i])) | |
# Step 15 | |
βextcorr1[i] = ((1-1*Art[i])-SRPextcorr_final[i])/sqrt(1^2*Art[i]^2*0.2^2+(1-1*Art[i])^2*0.2^2+(SRPextcorr_final[i])^2*0.05^2) | |
βextcorr2[i] = ((1-2*Art[i])-SRPextcorr_final[i])/sqrt(2^2*Art[i]^2*0.2^2+(1-2*Art[i])^2*0.2^2+(SRPextcorr_final[i]^2)*0.05^2) | |
βextcorr3[i] = ((1-4*Art[i])-SRPextcorr_final[i])/sqrt(4^2*Art[i]^2*0.2^2+(1-4*Art[i])^2*0.2^2+(SRPextcorr_final[i]^2)*0.05^2) | |
# Step 16 - Damage factor | |
# using Distributions | |
# cdf(Normal(0, 1), -βextcorr1[i]) | |
Df[i] = ((Pop1extcorr[i] *cdf(Normal(0, 1),-(βextcorr1[i])))+(Pop2extcorr[i]*cdf(Normal(0, 1),-(βextcorr2[i])))+(Pop3extcorr[i]*cdf(Normal(0, 1), -(βextcorr3[i])))) / 0.000156 | |
# POF | |
Pf_t[i] = Df[i] * 0.0000306 | |
print(Pf_t[i],"_____-") | |
end | |
df.Df = Df | |
df.Pf_t = Pf_t | |
df.RCA = df.nominal_wt .- tmin | |
# Consequence Category | |
# Relative rank | |
sorted_df = sort!(df, (:Pf_t), rev=(false)) | |
sorted_df = sorted_df[sorted_df.Pf_t .> 0.0, :] | |
index = fill("",nrow(sorted_df)) | |
for i = 1:nrow(sorted_df) | |
index[i] = join([sorted_df.Size[i],sorted_df.Sch[i]],"_") | |
end | |
index = collect(1:1:nrow(sorted_df)) | |
names(sorted_df) | |
#= | |
p = plot(layer(sorted_df, x=index, y=sorted_df.Pf_t, Geom.line), | |
layer(sorted_df, x=index, y=sorted_df.nominal_wt, Geom.line)) | |
=# | |
wt = cor(sorted_df.nominal_wt,sorted_df.Pf_t) | |
round(wt,digits=2) | |
rca = cor(sorted_df.Pf_t,sorted_df.RCA) | |
p = cor(sorted_df.Pf_t,sorted_df.P) | |
s = cor(sorted_df.Pf_t,sorted_df.S) | |
array_out = hcat(wt,rca,p,s) | |
stats_out = DataFrame(array_out) | |
names_names = ["Nominal WT","RCA","Pressure","Code Allowable S"] | |
rename!(stats_out,names_names) | |
print(stats_out) | |
fig1a= plot(sorted_df, x=index, y="Pf_t", color="Pf_t",Guide.YTicks(ticks=collect(0:.025:.2)), | |
Guide.title("API 581 Probability of Failure Assessment - Piping"), Guide.xlabel("Index Number"),Guide.ylabel("POF - Times Per Year")) | |
fig1b = plot(sorted_df, x=index, y="nominal_wt", color="nominal_wt", Guide.title("Pearsons Correlation Coefficient = -0.872"), | |
Guide.xlabel("Index Number"),Guide.ylabel("Nominal Wall Thickness")) | |
fig1c = plot(sorted_df, x=index, y=sorted_df.RCA, color="RCA", Guide.title("RCA"), | |
Guide.xlabel("Index Number"),Guide.ylabel("Remaining Corrosion Allowance")) | |
print(unique(sorted_df.P)) | |
p = vstack(fig1a,fig1b,fig1c) | |
draw(PNG("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/POF.png",30cm, 20cm, dpi=300),p) | |
CSV.write("C:/Users/Andrew.Bannerman/Desktop/MARS/risk studies/relative_rank.csv", df;delim=',') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment