Commit a866f202 authored by dasharatha.vamshi's avatar dasharatha.vamshi

calculated columns

parent 4a33d5db
,Date,Shift,"A1A023, A1A024",7303011675,"E5E014,E5E003, E5E016",IV component,7302011030,Recovered 7302011030,Reaction Product ,Package Scrubber Over Flow ,Package Scrubber Make Up ,MEE To RPT,Main 7302011030 Totaliser,Flash Column Feed,Flash Column Bottom,R#4 7302011030 Recovery Feed(FT-801),Flash Column Ejector UIST01,T-101 level (%),E5E014 E5E003 E5E016 Conc Shift Average,Surge Tank Pyr,Surge Tank Beta,Make Up To P/S (Pyr) MEE Tank,Make Up To P/S (Beta) MEE Tank,Package O/F Pyr,Package O/F Beta,Alpha in Rxn (PPM),Gamma to Beta Ratio,7303011675.1,Reactor coke,Regenerator coke,Fresh 7302011030,7302011030 totaliser,Calculated 7303011675,Calculated IV component,"Calculated E5E014,E5E003, E5E016",TOTAL 7302011030,Fresh 7302011030 / Total 7302011030,"Calculated A1A023, A1A024","(A1A023, A1A024)+7303011675+IV component",PRODN. RXN PDT,Calculated Scrubber,Calculated MEE To RPT,Surge Tank (PB) Total,Make Up To P/S (PB) MEE Tank,Norm (Surge Tank Stage),Norm (RPT Stage),Yield,"A1A023, A1A024 to E5E014 E5E003 E5E016 Molar ratio","A1A023, A1A024 to Amm Molar ratio","E5E014 E5E003 E5E016 to A1A023, A1A024 ratio @ 37%" ,Date,Shift,"A1A023, A1A024",7303011675,"E5E014,E5E003, E5E016",IV component,7302011030,Recovered 7302011030,Reaction Product ,Package Scrubber Over Flow ,Package Scrubber Make Up ,MEE To RPT,Main 7302011030 Totaliser,Flash Column Feed,Flash Column Bottom,R#4 7302011030 Recovery Feed(FT-801),Flash Column Ejector UIST01,T-101 level (%),E5E014 E5E003 E5E016 Conc Shift Average,Surge Tank Pyr,Surge Tank Beta,Make Up To P/S (Pyr) MEE Tank,Make Up To P/S (Beta) MEE Tank,Package OF Pyr,Package OF Beta,Alpha in Rxn (PPM),Gamma to Beta Ratio,7303011675.1,Reactor coke,Regenerator coke,Fresh 7302011030,7302011030 totaliser,Calculated 7303011675,Calculated IV component,"Calculated E5E014,E5E003, E5E016",TOTAL 7302011030,Fresh 7302011030 / Total 7302011030,"Calculated A1A023, A1A024","(A1A023, A1A024)+7303011675+IV component",PRODN. RXN PDT,Calculated Scrubber,Calculated MEE To RPT,Surge Tank (PB) Total,Make Up To P/S (PB) MEE Tank,Norm (Surge Tank Stage),Norm (RPT Stage),Yield,"A1A023, A1A024 to E5E014 E5E003 E5E016 Molar ratio","A1A023, A1A024 to Amm Molar ratio","E5E014 E5E003 E5E016 to A1A023, A1A024 ratio @ 37%",PB From Surge Tank,"fresh 7302011030/A1A023, A1A024 feed","Total Amm / A1A023, A1A024 feed",Surge tk Pyr ratio,Package Makeup,Package Overflow,Rec from package Pyr,Rec from package Beta,Package OF PB,PB from Pkg,NET RECOVERED PB,"A1A023, A1A024 NORM /SHIFT",Pyridine ratio Nett,Pkg Pyr ratio,Beta ratio Nett,Pyridine ratio Nett including Common scrubber,"24 hr A1A023, A1A024 LOAD (Kg/hr)"
0,16-Jun-20,A,84010,90872,20947614,0,4170949,13912668,38505,3127685,25884,7220725,19282442,60026708,146480896,60026708,12497817,49,46.7,13.56,13.06,,,,,608,0.43,,,,,,,,,,,,,,,,26.62,,,,,,, 0,16-Jun-20,A,84010,90872,20947614,0,4170949,13912668,38505,3127685,25884,7220725,19282442,60026708,146480896,60026708,12497817,49,46.7,13.56,13.06,,,,,608,0.43,,,,,,,,,,,,,,,,26.62,,,,,,,,,,,0.509,,,,,,,,,,,,,16311.333
1,16-Jun-20,B,8445,96441,20990822,0,4178243,13935717,18630,3215626,93779,7246067,19290064,60097936,146553200,51907,12506987,66,46.62,14.12,13.26,3.86,1.33,3.72,1.38,504,0.34,5569.0,1.27,1.03,7294.0,7622.0,5569.0,0.0,43208.0,23049.0,31.65%,24435.0,30004.0,80125.0,20046.0,25342.0,27.38,5.19,1.368,1.29,88.35%,1.2090813210558624,2.02,2.228036832412523 1,16-Jun-20,B,8445,96441,20990822,0,4178243,13935717,18630,3215626,93779,7246067,19290064,60097936,146553200,51907,12506987,66,46.62,14.12,13.26,3.86,1.33,3.72,1.38,504,0.34,5569.0,1.27,1.03,7294.0,7622.0,5569.0,0.0,43208.0,23049.0,31.65%,24435.0,30004.0,80125.0,20046.0,25342.0,27.38,5.19,1.368,1.29,88.35%,1.2090813210558624,2.02,2.228036832412523,21938.225,0.243,0.768,0.516,50684.0,87941.0,1315.003,539.5,5.1,1854.0,23792.0,1.027,53.08%,71.0%,46.92%,53.71%,16311.333
2,16-Jun-20,C,32944,2025,21034178,0,4185799,13957892,98988,3304077,61739,7263277,19296874,60181620,146637552,67193,12514134,57,46.62,13.03,16.51,3.92,1.27,3.61,1.21,510,0.18,5584.0,,,7556.0,6810.0,5584.0,0.0,43356.0,22175.0,34.07%,24499.0,30083.0,80358.0,1120491.0,17210.0,29.54,5.19,1.267,1.221,89.26%,1.2100534127923588,1.96,2.2298281562512754 2,16-Jun-20,C,32944,2025,21034178,0,4185799,13957892,98988,3304077,61739,7263277,19296874,60181620,146637552,67193,12514134,57,46.62,13.03,16.51,3.92,1.27,3.61,1.21,510,0.18,5584.0,,,7556.0,6810.0,5584.0,0.0,43356.0,22175.0,34.07%,24499.0,30083.0,80358.0,1120491.0,17210.0,29.54,5.19,1.267,1.221,89.26%,1.2100534127923588,1.96,2.2298281562512754,23737.753,0.251,0.737,0.441,34420.0,88451.0,1843.817,633.1,4.82,2477.0,26215.0,0.935,46.97%,74.0%,53.03%,47.55%,16311.333
3,17-Jun-20,A,57633,7648,21077852,0,4193419,13980316,80229,3393286,30556,7277307,19302896,60251764,146709136,82163,12522326,52,46.67,13.42,13.17,2.98,1.03,3.9,1.15,469,0.15,5623.0,,,7620.0,6022.0,5623.0,0.0,43674.0,22424.0,33.98%,24689.0,30312.0,81241.0,1120392.0,14030.0,26.59,4.01,1.403,1.368,89.49%,1.2108453902547693,1.96,2.2312875741795506 3,17-Jun-20,A,57633,7648,21077852,0,4193419,13980316,80229,3393286,30556,7277307,19302896,60251764,146709136,82163,12522326,52,46.67,13.42,13.17,2.98,1.03,3.9,1.15,469,0.15,5623.0,,,7620.0,6022.0,5623.0,0.0,43674.0,22424.0,33.98%,24689.0,30312.0,81241.0,1120392.0,14030.0,26.59,4.01,1.403,1.368,89.49%,1.2108453902547693,1.96,2.2312875741795506,21601.982,0.251,0.74,0.505,28060.0,89209.0,2642.963,736.9,5.05,3380.0,24982.0,0.988,54.22%,78.0%,45.78%,54.82%,24688.0
4,17-Jun-20,B,81596,13112,21120998,0,4200325,14002027,58385,3479779,97142,7298859,19306896,60327168,146785408,96818,12530364,51,46.84,12.59,12.66,3.16,1.12,4.13,1.21,455,0.29,5464.0,2.21,1.26,6906.0,4000.0,5464.0,0.0,43146.0,21711.0,31.81%,23963.0,29427.0,78156.0,19907.0,21552.0,25.25,4.28,1.491,1.425,87.99%,1.2369372248883697,1.95,2.2793683505313935 4,17-Jun-20,B,81596,13112,21120998,0,4200325,14002027,58385,3479779,97142,7298859,19306896,60327168,146785408,96818,12530364,51,46.84,12.59,12.66,3.16,1.12,4.13,1.21,455,0.29,5464.0,2.21,1.26,6906.0,4000.0,5464.0,0.0,43146.0,21711.0,31.81%,23963.0,29427.0,78156.0,19907.0,21552.0,25.25,4.28,1.491,1.425,87.99%,1.2369372248883697,1.95,2.2793683505313935,19734.39,0.235,0.738,0.499,43104.0,86493.0,2210.074,563.8,5.34,2774.0,22508.0,1.065,53.54%,80.0%,46.46%,54.2%,24688.0
5,17-Jun-20,C,7008,18903,21165954,0,4207826,14025105,42550,3571557,67942,7324324,19314654,60411128,146870896,12538,12538937,45,46.6,14.41,16.01,3.01,1.1,3.51,1.1,611,0.44,5791.0,,,7501.0,7758.0,5791.0,0.0,44956.0,23078.0,32.5%,25412.0,31203.0,84165.0,1120978.0,25465.0,30.42,4.11,1.219,1.171,90.07%,1.2091109502072512,1.95,2.228091431585844 5,17-Jun-20,C,7008,18903,21165954,0,4207826,14025105,42550,3571557,67942,7324324,19314654,60411128,146870896,12538,12538937,45,46.6,14.41,16.01,3.01,1.1,3.51,1.1,611,0.44,5791.0,,,7501.0,7758.0,5791.0,0.0,44956.0,23078.0,32.5%,25412.0,31203.0,84165.0,1120978.0,25465.0,30.42,4.11,1.219,1.171,90.07%,1.2091109502072512,1.95,2.228091431585844,25602.993,0.24,0.74,0.474,50930.0,91778.0,1688.415,449.3,4.61,2138.0,27741.0,0.916,49.81%,79.0%,50.19%,50.35%,24688.0
6,18-Jun-20,A,31019,24377,21208458,0,4215741,14046827,21637,3655150,31688,7339559,19322662,60482024,146944528,25020,12546907,64,46.75,12.34,12.86,2.6,0.93,2.91,1.03,389,0.26,5474.0,,,7915.0,8008.0,5474.0,0.0,42504.0,21722.0,36.44%,24011.0,29485.0,79087.0,1119847.0,15235.0,25.2,3.53,1.479,1.441,89.63%,1.2137593602931989,1.97,2.2366572978375903 6,18-Jun-20,A,31019,24377,21208458,0,4215741,14046827,21637,3655150,31688,7339559,19322662,60482024,146944528,25020,12546907,64,46.75,12.34,12.86,2.6,0.93,2.91,1.03,389,0.26,5474.0,,,7915.0,8008.0,5474.0,0.0,42504.0,21722.0,36.44%,24011.0,29485.0,79087.0,1119847.0,15235.0,25.2,3.53,1.479,1.441,89.63%,1.2137593602931989,1.97,2.2366572978375903,19929.924,0.268,0.737,0.49,30470.0,83593.0,1640.336,577.6,3.94,2218.0,22148.0,1.084,51.47%,74.0%,48.53%,52.15%,23770.667
7,18-Jun-20,B,54349,29851,21250762,108,4223191,14068487,250,3740988,98107,7362143,19326866,60552000,147015200,39376,12554967,57,46.79,12.74,12.93,2.14,0.76,3.12,0.76,426,0.3,5474.0,1.49,0.99,7450.0,4204.0,5474.0,108.0,42304.0,21660.0,34.4%,23330.0,28912.0,78613.0,19419.0,22584.0,25.67,2.9,1.433,1.388,90.06%,1.2443746683811971,2.01,2.2930737132331647 7,18-Jun-20,B,54349,29851,21250762,108,4223191,14068487,250,3740988,98107,7362143,19326866,60552000,147015200,39376,12554967,57,46.79,12.74,12.93,2.14,0.76,3.12,0.76,426,0.3,5474.0,1.49,0.99,7450.0,4204.0,5474.0,108.0,42304.0,21660.0,34.4%,23330.0,28912.0,78613.0,19419.0,22584.0,25.67,2.9,1.433,1.388,90.06%,1.2443746683811971,2.01,2.2930737132331647,20179.957,0.258,0.749,0.496,45168.0,85838.0,1711.55,309.1,3.88,2021.0,22201.0,1.051,52.82%,85.0%,47.18%,53.5%,23770.667
8,18-Jun-20,C,78320,35325,21294384,487,4231048,14090848,81320,3830045,66638,7380538,19334790,60632876,147098880,53807,12563201,49,46.79,14.63,16.01,3.01,0.82,3.01,1.42,436,0.25,5474.0,1.56,1.21,7857.0,7924.0,5474.0,379.0,43622.0,22361.0,35.14%,23971.0,29824.0,81070.0,1120526.0,18395.0,30.64,3.83,1.201,1.168,90.12%,1.2488316259925187,2.02,2.301286780084494 8,18-Jun-20,C,78320,35325,21294384,487,4231048,14090848,81320,3830045,66638,7380538,19334790,60632876,147098880,53807,12563201,49,46.79,14.63,16.01,3.01,0.82,3.01,1.42,436,0.25,5474.0,1.56,1.21,7857.0,7924.0,5474.0,379.0,43622.0,22361.0,35.14%,23971.0,29824.0,81070.0,1120526.0,18395.0,30.64,3.83,1.201,1.168,90.12%,1.2488316259925187,2.02,2.301286780084494,24839.848,0.263,0.75,0.477,36790.0,89057.0,1573.237,962.9,4.43,2536.0,27376.0,0.876,49.07%,62.0%,50.93%,49.62%,23770.667
Date,Shift,"A1A023, A1A024",7303011675,"E5E014,E5E003, E5E016",IV component,7302011030,Recovered 7302011030,Reaction Product ,Package Scrubber Over Flow ,Package Scrubber Make Up ,MEE To RPT,Main 7302011030 Totaliser,Flash Column Feed,Flash Column Bottom,R#4 7302011030 Recovery Feed(FT-801),Flash Column Ejector UIST01,T-101 level (%),E5E014 E5E003 E5E016 Conc Shift Average,Surge Tank Pyr,Surge Tank Beta,Make Up To P/S (Pyr) MEE Tank,Make Up To P/S (Beta) MEE Tank,Package O/F Pyr,Package O/F Beta,Alpha in Rxn (PPM),Gamma to Beta Ratio,7303011675,Reactor coke,Regenerator coke Date,Shift,"A1A023, A1A024",7303011675,"E5E014,E5E003, E5E016",IV component,7302011030,Recovered 7302011030,Reaction Product ,Package Scrubber Over Flow ,Package Scrubber Make Up ,MEE To RPT,Main 7302011030 Totaliser,Flash Column Feed,Flash Column Bottom,R#4 7302011030 Recovery Feed(FT-801),Flash Column Ejector UIST01,T-101 level (%),E5E014 E5E003 E5E016 Conc Shift Average,Surge Tank Pyr,Surge Tank Beta,Make Up To P/S (Pyr) MEE Tank,Make Up To P/S (Beta) MEE Tank,Package OF Pyr,Package OF Beta,Alpha in Rxn (PPM),Gamma to Beta Ratio,7303011675,Reactor coke,Regenerator coke
16-Jun-20,A,84010,90872,20947614,0,4170949,13912668,38505,3127685,25884,7220725,19282442,60026708,146480896,60026708,12497817,49,46.7,13.56,13.06,,,,,608,0.43,,, 16-Jun-20,A,84010,90872,20947614,0,4170949,13912668,38505,3127685,25884,7220725,19282442,60026708,146480896,60026708,12497817,49,46.7,13.56,13.06,,,,,608,0.43,,,
16-Jun-20,B,8445,96441,20990822,0,4178243,13935717,18630,3215626,93779,7246067,19290064,60097936,146553200,51907,12506987,66,46.62,14.12,13.26,3.86,1.33,3.72,1.38,504,0.34,5569,1.27,1.03 16-Jun-20,B,8445,96441,20990822,0,4178243,13935717,18630,3215626,93779,7246067,19290064,60097936,146553200,51907,12506987,66,46.62,14.12,13.26,3.86,1.33,3.72,1.38,504,0.34,5569,1.27,1.03
16-Jun-20,C,32944,2025,21034178,0,4185799,13957892,98988,3304077,61739,7263277,19296874,60181620,146637552,67193,12514134,57,46.62,13.03,16.51,3.92,1.27,3.61,1.21,510,0.18,5584,, 16-Jun-20,C,32944,2025,21034178,0,4185799,13957892,98988,3304077,61739,7263277,19296874,60181620,146637552,67193,12514134,57,46.62,13.03,16.51,3.92,1.27,3.61,1.21,510,0.18,5584,,
......
...@@ -103,21 +103,105 @@ class AppConstants(object): ...@@ -103,21 +103,105 @@ class AppConstants(object):
} }
A1A023_A1A024_to_E5E014_E5E003_E5E016_Molar_ratio = { A1A023_A1A024_to_E5E014_E5E003_E5E016_Molar_ratio = {
"new_column": "A1A023, A1A024 to E5E014 E5E003 E5E016 Molar ratio", "new_column": "A1A023, A1A024 to E5E014 E5E003 E5E016 Molar ratio",
"dependant_column": ["Calculated E5E014,E5E003, E5E016","E5E014 E5E003 E5E016 Conc Shift Average","Calculated A1A023, A1A024"], "dependant_column": ["Calculated E5E014,E5E003, E5E016", "E5E014 E5E003 E5E016 Conc Shift Average",
"constants": [44,30] "Calculated A1A023, A1A024"],
"constants": [44, 30]
} }
A1A023_A1A024_to_Amm_Molar_ratio = { A1A023_A1A024_to_Amm_Molar_ratio = {
"new_column": "A1A023, A1A024 to Amm Molar ratio", "new_column": "A1A023, A1A024 to Amm Molar ratio",
"dependant_column": ["TOTAL 7302011030","Fresh 7302011030","Calculated A1A023, A1A024"], "dependant_column": ["TOTAL 7302011030", "Fresh 7302011030", "Calculated A1A023, A1A024"],
"constants": [0.75,44,17] "constants": [0.75, 44, 17]
} }
E5E014_E5E003_E5E016_to_A1A023_A1A024_ratio_37 = { E5E014_E5E003_E5E016_to_A1A023_A1A024_ratio_37 = {
"new_column": "E5E014 E5E003 E5E016 to A1A023, A1A024 ratio @ 37%", "new_column": "E5E014 E5E003 E5E016 to A1A023, A1A024 ratio @ 37%",
"dependant_column": ["Calculated E5E014,E5E003, E5E016","Calculated A1A023, A1A024","E5E014 E5E003 E5E016 Conc Shift Average"], "dependant_column": ["Calculated E5E014,E5E003, E5E016", "Calculated A1A023, A1A024",
"E5E014 E5E003 E5E016 Conc Shift Average"],
"constants": [37] "constants": [37]
} }
PB_From_Surge_Tank = {
"new_column": "PB From Surge Tank",
"dependant_column": ["PRODN. RXN PDT", "Surge Tank (PB) Total"]
}
fresh_7302011030_div_A1A023_A1A024_feed = {
"new_column": "fresh 7302011030/A1A023, A1A024 feed",
"dependant_column": ["Fresh 7302011030", "(A1A023, A1A024)+7303011675+IV component"]
}
Total_Amm_A1A023_A1A024_feed = {
"new_column": "Total Amm / A1A023, A1A024 feed",
"dependant_column": ["TOTAL 7302011030", "(A1A023, A1A024)+7303011675+IV component"]
}
Surge_tk_Pyr_ratio = {
"new_column": "Surge tk Pyr ratio",
"dependant_column": ["Surge Tank Pyr", "Surge Tank (PB) Total"]
}
Package_Makeup = {
"new_column": "Package Makeup",
"dependant_column": ["Calculated MEE To RPT", "MEE To RPT"],
"condition": [0, 100000]
}
Package_Overflow = {
"new_column": "Package Overflow",
"dependant_column": "Package Scrubber Over Flow ",
"condition": [0, 1000000]
}
Rec_from_package_Pyr = {
"new_column": "Rec from package Pyr",
"dependant_column": ["Package Overflow", "Package OF Pyr", "Make Up To P/S (Pyr) MEE Tank", "Package Makeup"]
}
Rec_from_package_Beta = {
"new_column": "Rec from package Beta",
"dependant_column": ["Package Overflow", "Package OF Beta", "Make Up To P/S (Beta) MEE Tank", "Package Makeup"]
}
Package_OF_PB = {
"new_column": "Package OF PB",
"dependant_column": ["Package OF Pyr", "Package OF Beta"]
}
PB_from_Pkg = {
"new_column": "PB from Pkg",
"dependant_column": ["Package Overflow", "Package OF PB", "Package Makeup", "Make Up To P/S (PB) MEE Tank"]
}
NET_RECOVERED_PB = {
"new_column": "NET RECOVERED PB",
"dependant_column": ["PB From Surge Tank", "PB from Pkg"]
}
A1A023_A1A024_NORM_div_SHIFT = {
"new_column": "A1A023, A1A024 NORM /SHIFT",
"dependant_column": ["Calculated A1A023, A1A024", "NET RECOVERED PB"]
}
Pyridine_ratio_Nett = {
"new_column": "Pyridine ratio Nett",
"dependant_column": ["Surge Tank Pyr", "PRODN. RXN PDT", "Package Overflow", "Package OF Pyr",
"Make Up To P/S (Pyr) MEE Tank", "Package Makeup", "NET RECOVERED PB"]
}
Pkg_Pyr_ratio = {
"new_column": "Pkg Pyr ratio",
"dependant_column": ["Package Overflow", "Package OF Pyr", "Make Up To P/S (Pyr) MEE Tank", "Package Makeup",
"PB from Pkg"]
}
Beta_ratio_Nett = {
"new_column": "Beta ratio Nett",
"dependant_column": ["Surge Tank Pyr", "PRODN. RXN PDT", "Package Overflow", "Package OF Pyr",
"Make Up To P/S (Pyr) MEE Tank", "Package Makeup", "NET RECOVERED PB"]
}
Pyridine_ratio_Nett_including_Common_scrubber = {
"new_column": "Pyridine ratio Nett including Common scrubber",
"dependant_column": ["Surge Tank Pyr", "PRODN. RXN PDT", "Package Overflow", "Package OF Pyr",
"Make Up To P/S (Pyr) MEE Tank", "Package Makeup", "NET RECOVERED PB"],
"constants": 150
}
cal_24_hr_A1A023_A1A024_LOAD = {
"new_column": "24 hr A1A023, A1A024 LOAD (Kg/hr)",
"dependant_column": ["Date", "Calculated A1A023, A1A024"],
"constants": 3
}
class CalculatedColumns: class CalculatedColumns:
def fresh_7302011030(self, df): def fresh_7302011030(self, df):
my_dict = AppConstants.fresh_7302011030 my_dict = AppConstants.fresh_7302011030
...@@ -188,7 +272,7 @@ class CalculatedColumns: ...@@ -188,7 +272,7 @@ class CalculatedColumns:
my_dict = AppConstants.fresh_div_total_7302011030 my_dict = AppConstants.fresh_div_total_7302011030
try: try:
logger.info(f"Calculating the column {my_dict['new_column']}") logger.info(f"Calculating the column {my_dict['new_column']}")
df[my_dict['new_column']] = (((df[my_dict['numerator']] / df[my_dict['denominator']]) * 100)) df[my_dict['new_column']] = ((df[my_dict['numerator']] / df[my_dict['denominator']]) * 100)
my_list = list(df[my_dict['new_column']]) my_list = list(df[my_dict['new_column']])
new_list = [] new_list = []
for i in my_list: for i in my_list:
...@@ -351,7 +435,9 @@ class CalculatedColumns: ...@@ -351,7 +435,9 @@ class CalculatedColumns:
my_dict = AppConstants.calculate_yield my_dict = AppConstants.calculate_yield
try: try:
logger.info(f"Calculating the column {my_dict['new_column']}") logger.info(f"Calculating the column {my_dict['new_column']}")
df[my_dict['new_column']] = round((df[my_dict['dependant_column'][0]]/(df[my_dict['dependant_column'][1]] + df[my_dict['dependant_column'][2]] + df[my_dict['dependant_column'][3]]))*100,2) df[my_dict['new_column']] = round((df[my_dict['dependant_column'][0]] / (
df[my_dict['dependant_column'][1]] + df[my_dict['dependant_column'][2]] + df[
my_dict['dependant_column'][3]])) * 100, 2)
my_list = list(df[my_dict['new_column']]) my_list = list(df[my_dict['new_column']])
new_list = [] new_list = []
for i in my_list: for i in my_list:
...@@ -368,7 +454,9 @@ class CalculatedColumns: ...@@ -368,7 +454,9 @@ class CalculatedColumns:
my_dict = AppConstants.A1A023_A1A024_to_E5E014_E5E003_E5E016_Molar_ratio my_dict = AppConstants.A1A023_A1A024_to_E5E014_E5E003_E5E016_Molar_ratio
try: try:
logger.info(f"Calculating the column {my_dict['new_column']}") logger.info(f"Calculating the column {my_dict['new_column']}")
df[my_dict['new_column']] = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]] * my_dict['constants'][0]) / (df[my_dict['dependant_column'][2]] * my_dict['constants'][1])/100 df[my_dict['new_column']] = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]] *
my_dict['constants'][0]) / (
df[my_dict['dependant_column'][2]] * my_dict['constants'][1]) / 100
return df return df
except Exception as e: except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback) logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
...@@ -377,8 +465,10 @@ class CalculatedColumns: ...@@ -377,8 +465,10 @@ class CalculatedColumns:
my_dict = AppConstants.A1A023_A1A024_to_Amm_Molar_ratio my_dict = AppConstants.A1A023_A1A024_to_Amm_Molar_ratio
try: try:
logger.info(f"Calculating the column {my_dict['new_column']}") logger.info(f"Calculating the column {my_dict['new_column']}")
nr = ((df[my_dict['dependant_column'][0]] - df[my_dict['dependant_column'][1]]) * my_dict['constants'][0]) + df[my_dict['dependant_column'][1]] nr = ((df[my_dict['dependant_column'][0]] - df[my_dict['dependant_column'][1]]) * my_dict['constants'][0]) + \
df[my_dict['new_column']] = round((nr * my_dict['constants'][1]) / (df[my_dict['dependant_column'][2]] * my_dict['constants'][2]),2) df[my_dict['dependant_column'][1]]
df[my_dict['new_column']] = round(
(nr * my_dict['constants'][1]) / (df[my_dict['dependant_column'][2]] * my_dict['constants'][2]), 2)
return df return df
except Exception as e: except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback) logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
...@@ -387,8 +477,252 @@ class CalculatedColumns: ...@@ -387,8 +477,252 @@ class CalculatedColumns:
my_dict = AppConstants.E5E014_E5E003_E5E016_to_A1A023_A1A024_ratio_37 my_dict = AppConstants.E5E014_E5E003_E5E016_to_A1A023_A1A024_ratio_37
try: try:
logger.info(f"Calculating the column {my_dict['new_column']}") logger.info(f"Calculating the column {my_dict['new_column']}")
nr = ((df[my_dict['dependant_column'][0]])/df[my_dict['dependant_column'][1]]) * df[my_dict['dependant_column'][2]] nr = ((df[my_dict['dependant_column'][0]]) / df[my_dict['dependant_column'][1]]) * df[
my_dict['dependant_column'][2]]
df[my_dict['new_column']] = nr / my_dict['constants'][0] df[my_dict['new_column']] = nr / my_dict['constants'][0]
return df return df
except Exception as e: except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback) logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def PB_From_Surge_Tank(self, df):
my_dict = AppConstants.PB_From_Surge_Tank
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
df[my_dict['new_column']] = round(nr, 3)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def fresh_7302011030_div_A1A023_A1A024_feed(self, df):
my_dict = AppConstants.fresh_7302011030_div_A1A023_A1A024_feed
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] / df[my_dict['dependant_column'][1]])
df[my_dict['new_column']] = round(nr, 3)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Total_Amm_A1A023_A1A024_feed(self, df):
my_dict = AppConstants.Total_Amm_A1A023_A1A024_feed
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] / df[my_dict['dependant_column'][1]])
df[my_dict['new_column']] = round(nr, 3)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Surge_tk_Pyr_ratio(self, df):
my_dict = AppConstants.Surge_tk_Pyr_ratio
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] / df[my_dict['dependant_column'][1]])
df[my_dict['new_column']] = round(nr, 3)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Package_Makeup(self, df):
my_dict = AppConstants.Package_Makeup
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
df['temp'] = df[my_dict['dependant_column'][1]].diff()
my_list = list(df['temp'])
print(my_list)
new_list = []
for i in my_list:
if i > 0:
new_list.append(i + my_dict['condition'][0])
elif i < 0:
new_list.append(i + my_dict['condition'][1])
else:
new_list.append(i)
print(new_list)
print(list(df[my_dict['dependant_column'][0]]))
df['temp'] = pd.Series(new_list)
df[my_dict['new_column']] = df['temp'] + df[my_dict['dependant_column'][0]]
df = df.drop(["temp"], axis=1)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}",
exc_info=enable_traceback)
def Package_Overflow(self, df):
my_dict = AppConstants.Package_Overflow
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
df[my_dict['new_column']] = df[my_dict['dependant_column']].diff()
my_list = list(df[my_dict['new_column']])
new_list = []
for i in my_list:
if i > 0:
new_list.append(i + my_dict['condition'][0])
elif i < 0:
new_list.append(i + my_dict['condition'][1])
else:
new_list.append(i)
df[my_dict['new_column']] = pd.Series(new_list)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Rec_from_package_Pyr(self, df):
my_dict = AppConstants.Rec_from_package_Pyr
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
dr = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]]) / 100
df[my_dict['new_column']] = round(nr - dr, 3)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Rec_from_package_Beta(self, df):
my_dict = AppConstants.Rec_from_package_Beta
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
dr = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]]) / 100
df[my_dict['new_column']] = round(nr - dr, 1)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Package_OF_PB(self, df):
my_dict = AppConstants.Package_OF_PB
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] + df[my_dict['dependant_column'][1]])
df[my_dict['new_column']] = round(nr, 2)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def PB_from_Pkg(self, df):
my_dict = AppConstants.PB_from_Pkg
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]])
dr = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]])
df[my_dict['new_column']] = round((nr - dr) / 100, 0)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def NET_RECOVERED_PB(self, df):
my_dict = AppConstants.NET_RECOVERED_PB
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] + df[my_dict['dependant_column'][1]])
df[my_dict['new_column']] = round(nr, 0)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def A1A023_A1A024_NORM_div_SHIFT(self, df):
my_dict = AppConstants.A1A023_A1A024_NORM_div_SHIFT
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] / df[my_dict['dependant_column'][1]])
df[my_dict['new_column']] = round(nr, 3)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Pyridine_ratio_Nett(self, df):
my_dict = AppConstants.Pyridine_ratio_Nett
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
nr2 = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]]) / 100
nr3 = df[my_dict['dependant_column'][4]] * df[my_dict['dependant_column'][5]] / 100
df[my_dict['new_column']] = round(100 * ((nr + (nr2 - nr3)) / df[my_dict['dependant_column'][6]]), 2)
my_list = list(df[my_dict['new_column']])
new_list = []
for i in my_list:
if i > 0:
new_list.append(str(i) + "%")
else:
new_list.append(i)
df[my_dict['new_column']] = pd.Series(new_list)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Pkg_Pyr_ratio(self, df):
my_dict = AppConstants.Pkg_Pyr_ratio
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
nr2 = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]]) / 100
df[my_dict['new_column']] = round(100 * ((nr - nr2) / df[my_dict['dependant_column'][4]]), 0)
my_list = list(df[my_dict['new_column']])
new_list = []
for i in my_list:
if i > 0:
new_list.append(str(i) + "%")
else:
new_list.append(i)
df[my_dict['new_column']] = pd.Series(new_list)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Beta_ratio_Nett(self, df):
my_dict = AppConstants.Beta_ratio_Nett
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
nr2 = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]]) / 100
nr3 = df[my_dict['dependant_column'][4]] * df[my_dict['dependant_column'][5]] / 100
df[my_dict['new_column']] = 100 - round(100 * ((nr + (nr2 - nr3)) / df[my_dict['dependant_column'][6]]), 2)
my_list = list(df[my_dict['new_column']])
new_list = []
for i in my_list:
if i > 0:
new_list.append(str(i) + "%")
else:
new_list.append(i)
df[my_dict['new_column']] = pd.Series(new_list)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def Pyridine_ratio_Nett_including_Common_scrubber(self, df):
my_dict = AppConstants.Pyridine_ratio_Nett_including_Common_scrubber
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
nr = (df[my_dict['dependant_column'][0]] * df[my_dict['dependant_column'][1]]) / 100
nr2 = (df[my_dict['dependant_column'][2]] * df[my_dict['dependant_column'][3]]) / 100
nr3 = df[my_dict['dependant_column'][4]] * df[my_dict['dependant_column'][5]] / 100
df[my_dict['new_column']] = round(
100 * ((nr + (nr2 - nr3) + my_dict['constants']) / df[my_dict['dependant_column'][6]]), 2)
my_list = list(df[my_dict['new_column']])
new_list = []
for i in my_list:
if i > 0:
new_list.append(str(i) + "%")
else:
new_list.append(i)
df[my_dict['new_column']] = pd.Series(new_list)
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
def cal_24_hr_A1A023_A1A024_LOAD(self, df):
my_dict = AppConstants.cal_24_hr_A1A023_A1A024_LOAD
try:
logger.info(f"Calculating the column {my_dict['new_column']}")
date_list = list(df[my_dict['dependant_column'][0]])
my_list = list(df[my_dict['dependant_column'][1]])
df2 = pd.DataFrame()
df2['Date'] = pd.Series(date_list)
df2[my_dict['new_column']] = pd.Series(my_list)
df2 = df2.groupby(df2['Date']).sum()
df2[my_dict['new_column']] = round(df2[my_dict['new_column']]/3,3)
df = pd.merge(df, df2, how='left', on=['Date'])
return df
except Exception as e:
logger.error(f"Failed to calculate {my_dict['new_column']} because of error {e}", exc_info=enable_traceback)
...@@ -54,6 +54,23 @@ class yield_report: ...@@ -54,6 +54,23 @@ class yield_report:
self.df = cal_obj.A1A023_A1A024_to_E5E014_E5E003_E5E016_Molar_ratio(self.df) self.df = cal_obj.A1A023_A1A024_to_E5E014_E5E003_E5E016_Molar_ratio(self.df)
self.df = cal_obj.A1A023_A1A024_to_Amm_Molar_ratio(self.df) self.df = cal_obj.A1A023_A1A024_to_Amm_Molar_ratio(self.df)
self.df = cal_obj.E5E014_E5E003_E5E016_to_A1A023_A1A024_ratio_37(self.df) self.df = cal_obj.E5E014_E5E003_E5E016_to_A1A023_A1A024_ratio_37(self.df)
self.df = cal_obj.PB_From_Surge_Tank(self.df)
self.df = cal_obj.fresh_7302011030_div_A1A023_A1A024_feed(self.df)
self.df = cal_obj.Total_Amm_A1A023_A1A024_feed(self.df)
self.df = cal_obj.Surge_tk_Pyr_ratio(self.df)
self.df = cal_obj.Package_Makeup(self.df)
self.df = cal_obj.Package_Overflow(self.df)
self.df = cal_obj.Rec_from_package_Pyr(self.df)
self.df = cal_obj.Rec_from_package_Beta(self.df)
self.df = cal_obj.Package_OF_PB(self.df)
self.df = cal_obj.PB_from_Pkg(self.df)
self.df = cal_obj.NET_RECOVERED_PB(self.df)
self.df = cal_obj.A1A023_A1A024_NORM_div_SHIFT(self.df)
self.df = cal_obj.Pyridine_ratio_Nett(self.df)
self.df = cal_obj.Pkg_Pyr_ratio(self.df)
self.df = cal_obj.Beta_ratio_Nett(self.df)
self.df = cal_obj.Pyridine_ratio_Nett_including_Common_scrubber(self.df)
self.df = cal_obj.cal_24_hr_A1A023_A1A024_LOAD(self.df)
return self.df return self.df
except Exception as e: except Exception as e:
logger.error(f"failed to calculate because of error {e}", exc_info=enable_traceback) logger.error(f"failed to calculate because of error {e}", exc_info=enable_traceback)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment