def main(): land_area_val = D.TEA_LCA_Qty('Land Area', 100, 'hectare') biomass_output = D.TEA_LCA_Qty('Woody Biomass', 8960, 'kg/yr/ha') biomass_IO_array = UF.createEmptyFrame() biomass_IO_array.loc[0] = UF.getWriteRow('Woody Biomass', D.biomass_production, D.tl_output, biomass_output.qty*land_area_val.qty) return convertGrassBiomass(land_area_val, biomass_IO_array)
def convertGrassBiomass(size, biomass_IO_array): return_array = UF.createEmptyFrame() forestry_vals = forestry_cited_values_dict forestry_out = forestry_out_vals in_list = conv_in_list out_list = conv_out_list match_list = [[UF.input_or_output, D.tl_output], [UF.substance_name, 'Woody Biomass']] grass_biomass_out_qty = UF.returnPintQty(biomass_IO_array, match_list) scaling_param = size.qty * (grass_biomass_out_qty/ (size.qty * D.forestry_woody_biomass_val.qty)) # special write of woody biomass return_array.loc[0] = UF.getWriteRow('Woody Biomass', D.conv, D.tl_input, grass_biomass_out_qty) row_count = 1 for substance in in_list: pint_qty = scaling_param*forestry_vals[substance].qty return_array.loc[row_count] = UF.getWriteRow(substance, D.conv, D.tl_input, pint_qty) row_count += 1 for substance in out_list: pint_qty = scaling_param*forestry_out[substance].qty return_array.loc[row_count] = UF.getWriteRow(substance, D.conv, D.tl_output, pint_qty) row_count += 1 return return_array
def growGrassForOneYear(size, biomass_output): return_array = UF.createEmptyFrame() crop_inputs = grass_inputs_dict crop_outputs = grass_outputs_dict # Calculate Atmospheric CO2 based on biomass output return_array.loc[0] = UF.getWriteRow( 'Atmospheric CO2', D.biomass_production, D.tl_input, biomass_output.qty * size.qty * D.CO2_fixing_proportion_grass.qty) # special write of woody biomass return_array.loc[1] = UF.getWriteRow('Woody Biomass', D.biomass_production, D.tl_output, biomass_output.qty * size.qty) row_count = 2 # Scale crop inputs for key in crop_inputs: pint_qty = size.qty * crop_inputs[key].qty return_array.loc[row_count] = UF.getWriteRow(key, D.biomass_production, D.tl_input, pint_qty) row_count += 1 # Scale crop outputs for key in crop_outputs: pint_qty = size.qty * crop_outputs[key].qty return_array.loc[row_count] = UF.getWriteRow(key, D.biomass_production, D.tl_output, pint_qty) row_count += 1 return return_array
def upgradeGrassProducts(size, conv_IO_array): return_array = UF.createEmptyFrame() forestry_vals = forestry_upgr_in forestry_out = forestry_upgr_out in_list = upgr_in_list out_list = upgr_out_list match_list = [[UF.input_or_output, D.tl_output], [UF.substance_name, 'Woody Biomass']] grass_biomass_out_qty = UF.returnPintQty(conv_IO_array, match_list) scaling_param = size.qty * (grass_biomass_out_qty / (size.qty * D.forestry_woody_biomass_val.qty)) row_count = 0 for substance in in_list: pint_qty = scaling_param * forestry_vals[substance].qty return_array.loc[row_count] = UF.getWriteRow(substance, D.upgrading, D.tl_input, pint_qty) row_count += 1 for substance in out_list: pint_qty = scaling_param * forestry_out[substance].qty return_array.loc[row_count] = UF.getWriteRow(substance, D.upgrading, D.tl_output, pint_qty) row_count += 1 return return_array
# Data and Universal Functions import TEA_LCA_Data as D import UnivFunc as UF # Bolt on TEA and LCA import TEA import LCA # Process steps import Grow_Grass as GG import GasFT as GFT import Hydroprocessing as H # Initialize empty Process Model output table results_array = UF.createEmptyFrame() # Scaling Value land_area_val = D.TEA_LCA_Qty(D.substance_dict['Land Area'], 100, 'hectare') biomass_output = D.TEA_LCA_Qty(D.substance_dict['Woody Biomass'], 8960, 'kg/yr/ha') # Biomass Production biomass_IO = GG.growGrassForOneYear(land_area_val, biomass_output) results_array = results_array.append(biomass_IO, ignore_index=True) # Extraction/Conversion conversion_IO = GFT.convertGrassBiomass(land_area_val, results_array) results_array = results_array.append(conversion_IO, ignore_index=True) # Upgrading