From 8c2b41bdc152b7ead910c1f0bf553a4bd746e674 Mon Sep 17 00:00:00 2001 From: Zhuoran Zhang Date: Fri, 1 Apr 2022 01:22:55 -0400 Subject: [PATCH] update insurance input --- DesalinationModels/ABS_cost.py | 9 +- DesalinationModels/LTMED_cost.py | 13 +- DesalinationModels/MEDTVC_cost.py | 15 ++- SAM_flatJSON/SamBaseClass.py | 9 +- SAM_flatJSON/defaults/ABS_cost.json | 3 +- SAM_flatJSON/defaults/LTMED_cost.json | 3 +- SAM_flatJSON/defaults/MEDTVC.json | 2 +- SAM_flatJSON/defaults/MEDTVC_cost.json | 3 +- .../models/inputs/ABS_cost_inputs.json | 9 ++ .../models/inputs/LTMED_cost_inputs.json | 9 ++ .../models/inputs/MEDTVC_cost_inputs.json | 9 ++ app/app-data.json | 2 +- app/apps/analysis_report.py | 2 +- app/logs/applog.log | 127 ++++++++++++++++++ 14 files changed, 189 insertions(+), 26 deletions(-) diff --git a/DesalinationModels/ABS_cost.py b/DesalinationModels/ABS_cost.py index d709d0d1..622e3ebe 100644 --- a/DesalinationModels/ABS_cost.py +++ b/DesalinationModels/ABS_cost.py @@ -40,7 +40,7 @@ def __init__(self, self.operation_hour = 24 #* (1-downtime) # Average daily operation hour (h/day) self.f_HEX = f_HEX - self.HEX_area = HEX_area*Capacity + self.HEX_area = HEX_area * 86.4 # from m2/m3/day to m3/kg/s self.Capacity = Capacity self.STEC = STEC self.coe = coe @@ -66,7 +66,7 @@ def __init__(self, self.pump_type = pump_type def lcow(self): - self.cost_sys = 6291 * self.Capacity**(-0.135) * (1- self.f_HEX + self.f_HEX * (self.HEX_area/8841)**0.8) + self.cost_sys = 6291 * self.Capacity**(-0.135) * (1- self.f_HEX + self.f_HEX * (self.HEX_area/302.01)**0.8) if self.pump_type == 1: self.cost_AHP = 0.9168 * self.Capacity**(-0.255) @@ -83,8 +83,8 @@ def lcow(self): self.OPEX = self.STEC * (self.fuel_usage * self.coh + (1-self.fuel_usage) * self.sam_coh) \ - + self.coe * self.SEEC + self.Chemicals + self.Labor + self.Maintenance/100*self.CAPEX \ - + self.Miscellaneous + self.Discharge + self.Insurance/100*self.CAPEX + + self.coe * self.SEEC + self.Chemicals + self.Labor + self.Maintenance/100*self.cost_sys*self.Capacity/self.Prod \ + + self.Miscellaneous + self.Discharge + self.Insurance/100*self.cost_sys*self.Capacity/self.Prod self.LCOW = self.CAPEX + self.OPEX @@ -96,7 +96,6 @@ def lcow(self): cost_output.append({'Name':'Levelized cost of heat (from solar field)','Value':self.sam_coh,'Unit':'$/m3'}) cost_output.append({'Name':'Energy cost','Value':self.STEC * (self.fuel_usage * self.coh + (1-self.fuel_usage) * self.sam_coh) + self.coe * self.SEEC,'Unit':'$/m3'}) cost_output.append({'Name':'Absorption heat pump capital cost','Value':self.cost_AHP,'Unit':'$/kW'}) - return cost_output #%% diff --git a/DesalinationModels/LTMED_cost.py b/DesalinationModels/LTMED_cost.py index fcfec44e..8dcdfe68 100644 --- a/DesalinationModels/LTMED_cost.py +++ b/DesalinationModels/LTMED_cost.py @@ -40,7 +40,7 @@ def __init__(self, self.operation_hour = 24 #* (1-downtime) # Average daily operation hour (h/day) self.f_HEX = f_HEX - self.HEX_area = HEX_area*Capacity + self.HEX_area = HEX_area * 86.4 # from m2/m3/day to m3/kg/s self.Capacity = Capacity self.STEC = STEC self.coe = coe @@ -65,13 +65,14 @@ def __init__(self, def lcow(self): - self.cost_sys = 6291 * self.Capacity**(-0.135) * (1- self.f_HEX + self.f_HEX * (self.HEX_area / 8841)**0.8) - self.CAPEX = ((self.cost_sys*self.Capacity+ self.cost_storage * self.storage_cap)*self.int_rate*(1+self.int_rate)**self.yrs) / ((1+self.int_rate)**self.yrs-1) / self.Prod + self.cost_sys = 6291 * self.Capacity**(-0.135) * (1- self.f_HEX + self.f_HEX * (self.HEX_area / 302.01)**0.8) + + self.CAPEX = ((self.cost_sys*self.Capacity+ self.cost_storage * self.storage_cap)*self.int_rate*(1+self.int_rate)**self.yrs) / ((1+self.int_rate)**self.yrs-1) / self.Prod + self.OPEX = self.STEC * (self.fuel_usage * self.coh + (1-self.fuel_usage) * self.sam_coh) \ - + self.coe * self.SEEC + self.Chemicals + self.Labor + self.Maintenance/100*self.CAPEX \ - + self.Miscellaneous + self.Discharge + self.Insurance/100*self.CAPEX - print(self.cost_sys) + + self.coe * self.SEEC + self.Chemicals + self.Labor + self.Maintenance/100*self.cost_sys*self.Capacity/self.Prod \ + + self.Miscellaneous + self.Discharge + self.Insurance/100*self.cost_sys*self.Capacity/self.Prod self.LCOW = self.CAPEX + self.OPEX diff --git a/DesalinationModels/MEDTVC_cost.py b/DesalinationModels/MEDTVC_cost.py index e80d9bc0..2fc56c43 100644 --- a/DesalinationModels/MEDTVC_cost.py +++ b/DesalinationModels/MEDTVC_cost.py @@ -24,7 +24,7 @@ def __init__(self, Miscellaneous = 0.1, # Other direct/indirect cost ($/m3) Discharge = 0.02, # Water discharge/disposal cost ($/m3) Maintenance = 2, # Percentage to the capital cost (%) - + Insurance = 0.5, # Percentage to the capital cost (%) # GOR = 10.475, # Gained output ratio # downtime = 0.1, # Yearly downtime of the plant (ratio) yrs = 20, # Expected plant lifetime @@ -40,7 +40,7 @@ def __init__(self, self.operation_hour = 24 #* (1-downtime) # Average daily operation hour (h/day) self.f_HEX = f_HEX - self.HEX_area = HEX_area*Capacity + self.HEX_area = HEX_area * 86.4 # from m2/m3/day to m3/kg/s self.Capacity = Capacity self.STEC = STEC self.coe = coe @@ -63,16 +63,19 @@ def __init__(self, self.cost_storage = cost_storage self.storage_cap = storage_cap self.Nef = Nef + self.Insurance = Insurance def lcow(self): - self.cost_sys = 6291 * self.Capacity**(-0.135) * (1- self.f_HEX + self.f_HEX * (self.HEX_area/8841)**0.8) - + self.cost_sys = 6291 * self.Capacity**(-0.135) * (1- self.f_HEX + self.f_HEX * (self.HEX_area/302.01)**0.8) + self.CAPEX = ((self.cost_sys*self.Capacity+ self.cost_storage * self.storage_cap)*self.int_rate*(1+self.int_rate)**self.yrs) / ((1+self.int_rate)**self.yrs-1) / self.Prod - self.OPEX = self.STEC * (self.fuel_usage * self.coh + (1-self.fuel_usage) * self.sam_coh) + self.coe * self.SEEC + self.Chemicals + self.Labor + self.Maintenance/100*self.CAPEX + self.Miscellaneous + self.Discharge - + self.OPEX = self.STEC * (self.fuel_usage * self.coh + (1-self.fuel_usage) * self.sam_coh) \ + + self.coe * self.SEEC + self.Chemicals + self.Labor + self.Maintenance/100*self.cost_sys*self.Capacity/self.Prod \ + + self.Miscellaneous + self.Discharge + self.Insurance/100*self.cost_sys*self.Capacity/self.Prod + self.LCOW = self.CAPEX + self.OPEX diff --git a/SAM_flatJSON/SamBaseClass.py b/SAM_flatJSON/SamBaseClass.py index a3b101c0..0d16f4ae 100644 --- a/SAM_flatJSON/SamBaseClass.py +++ b/SAM_flatJSON/SamBaseClass.py @@ -835,7 +835,8 @@ def cost(self, desal): self.LCOW = LTMED_cost(f_HEX = self.cost_values_json['f_HEX'], downtime = self.cost_values_json['downtime'], HEX_area = self.LTMED.sA, Capacity = self.desal_values_json['Capacity'], Prod = self.simu_output[4]['Value'], fuel_usage = self.simu_output[7]['Value'], SEEC = self.cost_values_json['SEEC'], STEC = self.LTMED.STEC, - Chemicals = self.cost_values_json['Chemicals'], Labor = self.cost_values_json['Labor'], Discharge = self.cost_values_json['Discharge'], Maintenance = self.cost_values_json['Maintenance'], Miscellaneous = self.cost_values_json['Miscellaneous'], + Chemicals = self.cost_values_json['Chemicals'], Labor = self.cost_values_json['Labor'], Discharge = self.cost_values_json['Discharge'], + Maintenance = self.cost_values_json['Maintenance'], Miscellaneous = self.cost_values_json['Miscellaneous'], Insurance = self.cost_values_json['Insurance'], yrs = self.cost_values_json['yrs'], int_rate = self.cost_values_json['int_rate'], coe = self.cost_values_json['coe'], solar_coh = self.cost_values_json['solar_coh'], coh = self.cost_values_json['coh'], sam_coh = self.lcoh, cost_storage = self.cost_values_json['cost_storage'], storage_cap = self.LTMED.storage_cap) self.cost_output = self.LCOW.lcow() @@ -844,7 +845,8 @@ def cost(self, desal): self.LCOW = ABS_cost(f_HEX = self.cost_values_json['f_HEX'], P_req = self.P_req, downtime = self.cost_values_json['downtime'], HEX_area = self.ABS.sA, pump_type = self.ABS.pump_type, Capacity = self.desal_values_json['Capacity'], Prod = self.simu_output[4]['Value'], fuel_usage = self.simu_output[7]['Value'], SEEC = self.cost_values_json['SEEC'], STEC = self.ABS.STEC, - Chemicals = self.cost_values_json['Chemicals'], Labor = self.cost_values_json['Labor'], Discharge = self.cost_values_json['Discharge'], Maintenance = self.cost_values_json['Maintenance'], Miscellaneous = self.cost_values_json['Miscellaneous'], + Chemicals = self.cost_values_json['Chemicals'], Labor = self.cost_values_json['Labor'], Discharge = self.cost_values_json['Discharge'], + Maintenance = self.cost_values_json['Maintenance'], Miscellaneous = self.cost_values_json['Miscellaneous'], Insurance = self.cost_values_json['Insurance'], yrs = self.cost_values_json['yrs'], int_rate = self.cost_values_json['int_rate'], coe = self.cost_values_json['coe'], solar_coh = self.cost_values_json['solar_coh'], coh = self.cost_values_json['coh'], sam_coh = self.lcoh, cost_storage = self.cost_values_json['cost_storage'], storage_cap = self.ABS.storage_cap) self.cost_output = self.LCOW.lcow() @@ -853,7 +855,8 @@ def cost(self, desal): self.LCOW = MEDTVC_cost(f_HEX = self.cost_values_json['f_HEX'], downtime = self.cost_values_json['downtime'], HEX_area = self.MEDTVC.sA, Capacity = self.desal_values_json['Capacity'], Prod = self.simu_output[4]['Value'], fuel_usage = self.simu_output[7]['Value'], SEEC = self.cost_values_json['SEEC'], STEC = self.MEDTVC.STEC, - Chemicals = self.cost_values_json['Chemicals'], Labor = self.cost_values_json['Labor'], Discharge = self.cost_values_json['Discharge'], Maintenance = self.cost_values_json['Maintenance'], Miscellaneous = self.cost_values_json['Miscellaneous'], + Chemicals = self.cost_values_json['Chemicals'], Labor = self.cost_values_json['Labor'], Discharge = self.cost_values_json['Discharge'], + Maintenance = self.cost_values_json['Maintenance'], Miscellaneous = self.cost_values_json['Miscellaneous'], Insurance = self.cost_values_json['Insurance'], yrs = self.cost_values_json['yrs'], int_rate = self.cost_values_json['int_rate'], coe = self.cost_values_json['coe'], solar_coh = self.cost_values_json['solar_coh'], coh = self.cost_values_json['coh'], sam_coh = self.lcoh, cost_storage = self.cost_values_json['cost_storage'], storage_cap = self.MEDTVC.storage_cap) self.cost_output = self.LCOW.lcow() diff --git a/SAM_flatJSON/defaults/ABS_cost.json b/SAM_flatJSON/defaults/ABS_cost.json index 659e18ad..6e2dc7e3 100644 --- a/SAM_flatJSON/defaults/ABS_cost.json +++ b/SAM_flatJSON/defaults/ABS_cost.json @@ -13,5 +13,6 @@ "Miscellaneous": 0.1, "Discharge": 0.02, "Maintenance": 2, - "SEEC": 1.5 + "SEEC": 1.5, + "Insurance": 0.5 } diff --git a/SAM_flatJSON/defaults/LTMED_cost.json b/SAM_flatJSON/defaults/LTMED_cost.json index 659e18ad..6e2dc7e3 100644 --- a/SAM_flatJSON/defaults/LTMED_cost.json +++ b/SAM_flatJSON/defaults/LTMED_cost.json @@ -13,5 +13,6 @@ "Miscellaneous": 0.1, "Discharge": 0.02, "Maintenance": 2, - "SEEC": 1.5 + "SEEC": 1.5, + "Insurance": 0.5 } diff --git a/SAM_flatJSON/defaults/MEDTVC.json b/SAM_flatJSON/defaults/MEDTVC.json index b0398ecf..4aaa9bad 100644 --- a/SAM_flatJSON/defaults/MEDTVC.json +++ b/SAM_flatJSON/defaults/MEDTVC.json @@ -2,7 +2,7 @@ "rr" : 30, "nef" : 14, "tin" : 25, - "Capacity": 10000, + "Capacity": 2000, "FeedC_r": 35, "pm": 24, "Fossil_f": 0, diff --git a/SAM_flatJSON/defaults/MEDTVC_cost.json b/SAM_flatJSON/defaults/MEDTVC_cost.json index 2c7ae428..b64beea7 100644 --- a/SAM_flatJSON/defaults/MEDTVC_cost.json +++ b/SAM_flatJSON/defaults/MEDTVC_cost.json @@ -13,5 +13,6 @@ "Miscellaneous": 0.1, "Discharge": 0.02, "Maintenance": 2, - "SEEC": 1.5 + "SEEC": 1.5, + "Insurance": 0.5 } diff --git a/SAM_flatJSON/models/inputs/ABS_cost_inputs.json b/SAM_flatJSON/models/inputs/ABS_cost_inputs.json index 787d7c00..65e6de8b 100644 --- a/SAM_flatJSON/models/inputs/ABS_cost_inputs.json +++ b/SAM_flatJSON/models/inputs/ABS_cost_inputs.json @@ -120,6 +120,15 @@ "Require": "*", "Constraint": "", "Tab": "Desalination" + }, + { + "DataType": "SSC_NUMBER", + "Name": "Insurance", + "Label": "Insurance (percentage of CAPEX)", + "Units": "%", + "Require": "*", + "Constraint": "", + "Tab": "Desalination" } ] } \ No newline at end of file diff --git a/SAM_flatJSON/models/inputs/LTMED_cost_inputs.json b/SAM_flatJSON/models/inputs/LTMED_cost_inputs.json index 92de1ef8..aecce62b 100644 --- a/SAM_flatJSON/models/inputs/LTMED_cost_inputs.json +++ b/SAM_flatJSON/models/inputs/LTMED_cost_inputs.json @@ -120,6 +120,15 @@ "Require": "*", "Constraint": "", "Tab": "Desalination" + }, + { + "DataType": "SSC_NUMBER", + "Name": "Insurance", + "Label": "Insurance (percentage of CAPEX)", + "Units": "%", + "Require": "*", + "Constraint": "", + "Tab": "Desalination" } ] } \ No newline at end of file diff --git a/SAM_flatJSON/models/inputs/MEDTVC_cost_inputs.json b/SAM_flatJSON/models/inputs/MEDTVC_cost_inputs.json index d9b6a19e..b478d674 100644 --- a/SAM_flatJSON/models/inputs/MEDTVC_cost_inputs.json +++ b/SAM_flatJSON/models/inputs/MEDTVC_cost_inputs.json @@ -120,6 +120,15 @@ "Require": "*", "Constraint": "", "Tab": "Desalination" + }, + { + "DataType": "SSC_NUMBER", + "Name": "Insurance", + "Label": "Insurance (percentage of CAPEX)", + "Units": "%", + "Require": "*", + "Constraint": "", + "Tab": "Desalination" } ] } \ No newline at end of file diff --git a/app/app-data.json b/app/app-data.json index 2388d672..a9ff5455 100644 --- a/app/app-data.json +++ b/app/app-data.json @@ -1 +1 @@ -{"solar": "SC_FPC", "desal": "RO_FO", "finance": "iph_to_lcoefcr", "parametric": false, "project_name": "Project_1", "timestamp": "2022-04-01_00-14-38", "solar_outfile": "SC_FPC2022-04-01_00-14-38_inputs.json", "desal_outfile": "RO_FO2022-04-01_00-14-38_inputs.json", "finance_outfile": "lcoh_calculator2022-04-01_00-14-38_inputs.json"} \ No newline at end of file +{"solar": "SC_FPC", "desal": "MEDTVC", "finance": "iph_to_lcoefcr", "parametric": false, "project_name": "Project_1", "timestamp": "2022-04-01_01-21-59", "solar_outfile": "SC_FPC2022-04-01_01-21-59_inputs.json", "desal_outfile": "MEDTVC2022-04-01_01-21-59_inputs.json", "finance_outfile": "lcoh_calculator2022-04-01_01-21-59_inputs.json"} \ No newline at end of file diff --git a/app/apps/analysis_report.py b/app/apps/analysis_report.py index 724678a2..b917a281 100644 --- a/app/apps/analysis_report.py +++ b/app/apps/analysis_report.py @@ -1544,7 +1544,7 @@ def set_cost_analysis(x): html.Div(f"Assumed cost of heat (LCOH, from other sources): {r['lcoh']:.3f} $/kWh"), html.Div(f"Levelized cost of heat (LCOH, from solar field): {r['sam_lcoh']:.3f} $/kWh"), html.Div(f"Levelized cost of electric energy (LCOE): {r['lcoe']:.2f} $/kWh"), - html.Div(f"Capital cost of heat pump: {r['AHP_cost']:.0f} $/kW"), + html.Div(f"Capital cost of heat pump: {r['AHP_cost']:.2f} $/kW"), html.Div(f"Capital cost: {r['capital_cost']:.2f} $/m3"), html.Div(f"Operational and Maintenance cost: {r['ops_cost']:.2f} $/m3"), html.Div(f"Unit energy cost: {r['energy_cost']:.2f} $/m3", diff --git a/app/logs/applog.log b/app/logs/applog.log index 7410232d..a8bd2a0f 100644 --- a/app/logs/applog.log +++ b/app/logs/applog.log @@ -211697,3 +211697,130 @@ 2022-03-31 23:56:07,244 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() 2022-03-31 23:56:07,246 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() 2022-03-31 23:56:07,246 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:57:07,522 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:57:07,522 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:57:07,522 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:57:07,523 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:57:07,523 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:57:07,523 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,317 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,317 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,317 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,317 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,317 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,319 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,319 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,319 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,319 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 00:58:57,319 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,871 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,871 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,871 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,872 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,872 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,872 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,873 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,873 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,873 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,874 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,875 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,876 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,877 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,877 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,877 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,877 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,877 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,877 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,878 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,879 - SamBaseClass - CRITICAL - object of type 'NoneType' has no len() +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,880 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,881 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,882 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,882 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,882 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,882 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,882 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,882 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,883 - SamBaseClass - CRITICAL - must be real number, not NoneType +2022-04-01 01:00:58,884 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,884 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,884 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,886 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,887 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,887 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,887 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,887 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,887 - SamBaseClass - CRITICAL - must be real number, not list +2022-04-01 01:00:58,887 - SamBaseClass - CRITICAL - must be real number, not list