From b307bea7ef6da401a4f4b33a1ced474a8590158b Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sat, 15 Aug 2020 09:49:03 -0600 Subject: [PATCH 01/14] Addition of average fuel mixes from all egrid subregions to create US average fuel mix. First step in trying to create a generation inventory for Canada and Mexico generation flows using EPA eGRID Trading method. Fuel mixes are showing up in OpenLCA with fractions of electricity flows from all eGRID regions for every fuel category Co-Authored-By: hottleta <29923016+hottleta@users.noreply.github.com> --- electricitylci/__init__.py | 18 +++++ electricitylci/consumption_mix.py | 3 - electricitylci/distribution.py | 1 - electricitylci/generation.py | 2 +- electricitylci/generation_mix.py | 67 ++++++++++++++++++- electricitylci/main.py | 6 ++ electricitylci/process_dictionary_writer.py | 52 ++++++++++++++ ...process_exchange_aggregator_uncertainty.py | 1 - 8 files changed, 143 insertions(+), 7 deletions(-) diff --git a/electricitylci/__init__.py b/electricitylci/__init__.py index 67d6ba15..46bd60b8 100644 --- a/electricitylci/__init__.py +++ b/electricitylci/__init__.py @@ -210,6 +210,24 @@ def write_generation_mix_database_to_dict( return genmix_dict +def write_fuel_mix_database_to_dict( + genmix_database, gen_dict, regions=None +): + from electricitylci.generation_mix import olcaschema_genmix_international + if regions is None: + regions = config.model_specs.regional_aggregation + if regions in ["FERC","US","BA"]: + fuelmix_dict = olcaschema_genmix_international( + genmix_database, gen_dict, subregion="BA" + ) + else: + fuelmix_dict = olcaschema_genmix_international( + genmix_database, gen_dict, subregion=regions + ) + return fuelmix_dict + + + def write_surplus_pool_and_consumption_mix_dict(): """ Create olca formatted dictionaries for the consumption mix as calculated by diff --git a/electricitylci/consumption_mix.py b/electricitylci/consumption_mix.py index e973ecd2..c31ef30a 100644 --- a/electricitylci/consumption_mix.py +++ b/electricitylci/consumption_mix.py @@ -55,7 +55,6 @@ def surplus_pool_dictionary(nerc_region, surplus_pool_trade_in, trade_matrix, ge # chk = 1; final = process_table_creation_surplus(region, exchanges_list) - print(region+' NERC Surplus Process Created') surplus_dict['SurplusPool'+region] = final; return surplus_dict @@ -84,7 +83,6 @@ def consumption_mix_dictionary(nerc_region, surplus_pool_trade_in, trade_matrix, # name = surplus_dict[nerc_region[reg][0].value]['name'] if trade_matrix[nerc+1][j].value != None and trade_matrix[nerc+1][j].value !=0: - print(nerc_region[reg][0].value) exchange(exchange_table_creation_input_con_mix(surplus_pool_trade_in[reg][0].value, nerc_region[reg][0].value), exchanges_list) chk=1; break; @@ -96,7 +94,6 @@ def consumption_mix_dictionary(nerc_region, surplus_pool_trade_in, trade_matrix, exchange(exchange_table_creation_input_con_mix(1, region), exchanges_list) final = process_table_creation_con_mix(region, exchanges_list) - print(region+' Consumption Mix Process Created') consumption_dict['Consumption'+region] = final; return consumption_dict diff --git a/electricitylci/distribution.py b/electricitylci/distribution.py index b1b7497f..28171f0f 100644 --- a/electricitylci/distribution.py +++ b/electricitylci/distribution.py @@ -10,6 +10,5 @@ def distribution_mix_dictionary(): exchange(ref_exchange_creator(electricity_at_user_flow), exchanges_list) exchange(exchange_table_creation_input_con_mix(1/model_specs.efficiency_of_distribution_grid, reg, ref_to_consumption=True), exchanges_list) final = process_table_creation_distribution(reg, exchanges_list) - print(reg+' Distribution Process Created') distribution_dict['Distribution'+reg] = final; return distribution_dict diff --git a/electricitylci/generation.py b/electricitylci/generation.py index 5cfc8082..5a72c6c9 100644 --- a/electricitylci/generation.py +++ b/electricitylci/generation.py @@ -1108,7 +1108,7 @@ def turn_data_to_dict(data, upstream_dict): process_df["@type"] = "Process" process_df["allocationFactors"] = "" process_df["defaultAllocationMethod"] = "" - process_df["location"] = "" + process_df["location"] = process_df[region_agg].values process_df["parameters"] = "" # process_doc_dict = process_doc_creation(process_type) # process_df["processDocumentation"] = [process_doc_dict]*len(process_df) diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index e42d9877..9aebda67 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -342,7 +342,7 @@ def olcaschema_genmix(database, gen_dict, subregion=None): break if matching_dict is None: logging.warning( - f"Trouble matching dictionary for {fuelname} - {reg}" + f"Trouble matching dictionary for generation mix {fuelname} - {reg}" ) else: ra["provider"] = { @@ -358,3 +358,68 @@ def olcaschema_genmix(database, gen_dict, subregion=None): # print(reg +' Process Created') generation_mix_dict[reg] = final return generation_mix_dict + + +def olcaschema_genmix_international(database, gen_dict, subregion=None): + if subregion is None: + subregion = model_specs.regional_aggregation + generation_mix_dict = {} + + us_database = create_generation_mix_process_df_from_egrid_ref_data(subregion='US') + df2 = us_database.groupby(['FuelCategory'])['Electricity'].agg('sum').reset_index() + df2['Electricity_fuel_total'] = df2['Electricity'] + del df2['Electricity'] + df3 = us_database.merge(df2,left_on ='FuelCategory',right_on = 'FuelCategory') + df3['Generation_Ratio'] = df3['Electricity']/df3['Electricity_fuel_total'] + del df3['Electricity_fuel_total'] + us_database = df3 + + if "FuelCategory" in us_database.columns: + fuels = list(pd.unique(us_database["FuelCategory"])) + + for fuel in fuels: + + database_reg = us_database[us_database["FuelCategory"] == fuel] + exchanges_list = [] + + # Creating the reference output + exchange(exchange_table_creation_ref(database_reg), exchanges_list) + for reg in list(us_database["Subregion"].unique()): + # Reading complete fuel name and heat content information + # fuelname = row['Fuelname'] + # croppping the database according to the current fuel being considered + database_f1 = database_reg[ + database_reg["Subregion"] == reg + ] + if database_f1.empty != True: + ra = exchange_table_creation_input_fuelmix( + database_f1, fuel + ) + ra["quantitativeReference"] = False + matching_dict = None + for generator in gen_dict: + if ( + gen_dict[generator]["name"] + == "Electricity - " + fuel + " - " + reg + ): + matching_dict = gen_dict[generator] + break + if matching_dict is None: + logging.warning( + f"Trouble matching dictionary for creating fuel mix {fuel} - {reg}" + ) + else: + ra["provider"] = { + "name": matching_dict["name"], + "@id": matching_dict["uuid"], + "category": matching_dict["category"].split("/"), + } + exchange(ra, exchanges_list) + # Writing final file + + final = process_table_creation_fuelmix(fuel, exchanges_list) + # print(reg +' Process Created') + generation_mix_dict[fuel] = final + + return generation_mix_dict + diff --git a/electricitylci/main.py b/electricitylci/main.py index d3da5bfa..e4074d26 100644 --- a/electricitylci/main.py +++ b/electricitylci/main.py @@ -63,10 +63,16 @@ def main(): print("write gen mix to dict") generation_mix_dict = electricitylci.write_generation_mix_database_to_dict( generation_mix_df, generation_process_dict) + + fuel_mix_dict = electricitylci.write_fuel_mix_database_to_dict( + generation_mix_df, generation_process_dict) print("write gen mix to jsonld") generation_mix_dict = electricitylci.write_process_dicts_to_jsonld( generation_mix_dict ) + fuel_mix_dict = electricitylci.write_process_dicts_to_jsonld( + fuel_mix_dict + ) # At this point the two methods diverge from underlying functions enough that # it's just easier to split here. if config.model_specs.EPA_eGRID_trading is False: diff --git a/electricitylci/process_dictionary_writer.py b/electricitylci/process_dictionary_writer.py index 51345beb..ba6b4c46 100644 --- a/electricitylci/process_dictionary_writer.py +++ b/electricitylci/process_dictionary_writer.py @@ -88,6 +88,8 @@ def lookup_location_uuid(location): + "; " + generation_mix_name_parts["Mix type"] ) + +fuel_mix_name = 'Electricity; at grid; fuelmix' surplus_pool_name = "Electricity; at grid; surplus pool" consumption_mix_name = "Electricity; at grid; consumption mix" distribution_to_end_user_name = "Electricity; at user; consumption mix" @@ -217,6 +219,28 @@ def exchange_table_creation_input_genmix(database, fuelname): return ar +def exchange_table_creation_input_fuelmix(database, fuelname): + """Add docstring.""" + region = database["Subregion"].iloc[0] + ar = dict() + ar["internalId"] = "" + ar["@type"] = "Exchange" + ar["avoidedProduct"] = False + ar["flow"] = electricity_at_grid_flow + ar["flowProperty"] = "" + ar["input"] = True + ar["quantitativeReference"] = "True" + ar["baseUncertainty"] = "" + ar["provider"] = gen_process_ref(fuelname, region) + ar["amount"] = database["Generation_Ratio"].iloc[0] + ar["unit"] = unit("MWh") + ar["pedigreeUncertainty"] = "" + # ar['category']='22: Utilities/2211: Electric Power Generation, Transmission and Distribution'+fuelname + ar["comment"] = "from " + fuelname +" - "+ region + ar["uncertainty"] = "" + return ar + + def exchange_table_creation_input_con_mix( generation, loc, ref_to_consumption=False ): @@ -662,6 +686,34 @@ def process_table_creation_genmix(region, exchanges_list): ar["version"] = make_valid_version_num(elci_version) return ar + +def process_table_creation_fuelmix(fuel, exchanges_list): + """Add docstring.""" + ar = dict() + ar["@type"] = "Process" + ar["allocationFactors"] = "" + ar["defaultAllocationMethod"] = "" + ar["exchanges"] = exchanges_list + ar["location"] = location('US') + ar["parameters"] = "" + ar["processDocumentation"] = process_doc_creation(process_type="fuel_mix") + ar["processType"] = "UNIT_PROCESS" + ar["name"] = fuel_mix_name + " - " + str(fuel) + ar[ + "category" + ] = "22: Utilities/2211: Electric Power Generation, Transmission and Distribution" + ar["description"] = ( + "Electricity fuel mix for the " + str(fuel) + " fuel." + ) + ar["description"]=(ar["description"] + + " This process was created with ElectricityLCI " + + "(https://github.com/USEPA/ElectricityLCI) version " + elci_version + + " using the " + model_specs.model_name + " configuration." + ) + ar["version"] = make_valid_version_num(elci_version) + return ar + + def process_table_creation_surplus(region, exchanges_list): """Add docstring.""" ar = dict() diff --git a/electricitylci/process_exchange_aggregator_uncertainty.py b/electricitylci/process_exchange_aggregator_uncertainty.py index 0978497f..b5a491ff 100644 --- a/electricitylci/process_exchange_aggregator_uncertainty.py +++ b/electricitylci/process_exchange_aggregator_uncertainty.py @@ -2,7 +2,6 @@ # Comopilation based on weight factor import math -import sys import numpy as np from scipy.stats import t from sympy import var,solve From cea9d30e882662c600397858e787ad89d9cedc12 Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sat, 15 Aug 2020 11:00:22 -0600 Subject: [PATCH 02/14] Soft Fix for missing Providers in generation process When the code uses the function generation_mix_from_eGRID_Reference_data, it does not use the generation database for creating generation mix processes. Thus filters and other edits do not show up resulting in flows that were previously omitted showing up inside the generation mix processes. Currently, soft fixing the problem by skipping such flows when they show up with a warning message. --- electricitylci/generation_mix.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index 9aebda67..c380bf7b 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -328,10 +328,6 @@ def olcaschema_genmix(database, gen_dict, subregion=None): database_reg["FuelCategory"] == fuelname ] if database_f1.empty != True: - ra = exchange_table_creation_input_genmix( - database_f1, fuelname - ) - ra["quantitativeReference"] = False matching_dict = None for generator in gen_dict: if ( @@ -345,16 +341,20 @@ def olcaschema_genmix(database, gen_dict, subregion=None): f"Trouble matching dictionary for generation mix {fuelname} - {reg}" ) else: + ra = exchange_table_creation_input_genmix( + database_f1, fuelname + ) + ra["quantitativeReference"] = False ra["provider"] = { - "name": matching_dict["name"], - "@id": matching_dict["uuid"], - "category": matching_dict["category"].split("/"), + "name": matching_dict["name"], + "@id": matching_dict["uuid"], + "category": matching_dict["category"].split("/"), } - exchange(ra, exchanges_list) - # Writing final file + #if matching_dict is None: + exchange(ra, exchanges_list) + # Writing final file final = process_table_creation_genmix(reg, exchanges_list) - # print(reg +' Process Created') generation_mix_dict[reg] = final return generation_mix_dict From 552238c44c56c096a1a968305aa66e0ab2d77f43 Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sat, 15 Aug 2020 11:05:25 -0600 Subject: [PATCH 03/14] Changin functions names for better clarity. --- electricitylci/__init__.py | 6 +++--- electricitylci/generation_mix.py | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/electricitylci/__init__.py b/electricitylci/__init__.py index 46bd60b8..ec24fead 100644 --- a/electricitylci/__init__.py +++ b/electricitylci/__init__.py @@ -213,15 +213,15 @@ def write_generation_mix_database_to_dict( def write_fuel_mix_database_to_dict( genmix_database, gen_dict, regions=None ): - from electricitylci.generation_mix import olcaschema_genmix_international + from electricitylci.generation_mix import olcaschema_fuelmix if regions is None: regions = config.model_specs.regional_aggregation if regions in ["FERC","US","BA"]: - fuelmix_dict = olcaschema_genmix_international( + fuelmix_dict = olcaschema_fuelmix( genmix_database, gen_dict, subregion="BA" ) else: - fuelmix_dict = olcaschema_genmix_international( + fuelmix_dict = olcaschema_fuelmix( genmix_database, gen_dict, subregion=regions ) return fuelmix_dict diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index c380bf7b..2724004b 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -338,7 +338,7 @@ def olcaschema_genmix(database, gen_dict, subregion=None): break if matching_dict is None: logging.warning( - f"Trouble matching dictionary for generation mix {fuelname} - {reg}" + f"Trouble matching dictionary for generation mix {fuelname} - {reg}. Skipping this flow for now" ) else: ra = exchange_table_creation_input_genmix( @@ -360,7 +360,7 @@ def olcaschema_genmix(database, gen_dict, subregion=None): return generation_mix_dict -def olcaschema_genmix_international(database, gen_dict, subregion=None): +def olcaschema_fuelmix(database, gen_dict, subregion=None): if subregion is None: subregion = model_specs.regional_aggregation generation_mix_dict = {} @@ -392,10 +392,6 @@ def olcaschema_genmix_international(database, gen_dict, subregion=None): database_reg["Subregion"] == reg ] if database_f1.empty != True: - ra = exchange_table_creation_input_fuelmix( - database_f1, fuel - ) - ra["quantitativeReference"] = False matching_dict = None for generator in gen_dict: if ( @@ -406,20 +402,23 @@ def olcaschema_genmix_international(database, gen_dict, subregion=None): break if matching_dict is None: logging.warning( - f"Trouble matching dictionary for creating fuel mix {fuel} - {reg}" + f"Trouble matching dictionary for creating fuel mix {fuel} - {reg}.Skipping this flow for now" ) else: + ra = exchange_table_creation_input_fuelmix( + database_f1, fuel + ) + ra["quantitativeReference"] = False ra["provider"] = { "name": matching_dict["name"], "@id": matching_dict["uuid"], "category": matching_dict["category"].split("/"), } - exchange(ra, exchanges_list) - # Writing final file + exchange(ra, exchanges_list) + # Writing final file final = process_table_creation_fuelmix(fuel, exchanges_list) # print(reg +' Process Created') generation_mix_dict[fuel] = final - return generation_mix_dict - + return generation_mix_dict \ No newline at end of file From 63603fd16bde0c5688c6c1e36e7601fdabd4b2fe Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sat, 15 Aug 2020 12:40:26 -0600 Subject: [PATCH 04/14] Print statements within main for eGRID EPA --- electricitylci/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/electricitylci/main.py b/electricitylci/main.py index e4074d26..1952b3b2 100644 --- a/electricitylci/main.py +++ b/electricitylci/main.py @@ -113,9 +113,11 @@ def main(): generation_mix_dict = electricitylci.write_process_dicts_to_jsonld( generation_mix_dict ) + print('Filling up UUID of surplus pool consumption mix') sur_con_mix_dict = fill_default_provider_uuids( sur_con_mix_dict, generation_mix_dict ) + print('wrtie surplus pool consumption mix to jsonld') sur_con_mix_dict = electricitylci.write_process_dicts_to_jsonld(sur_con_mix_dict) sur_con_mix_dict = fill_default_provider_uuids( sur_con_mix_dict, sur_con_mix_dict, generation_mix_dict From 91cdb6107787cbea4bb51eff9b70ab6cd6259fb6 Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sun, 16 Aug 2020 11:27:23 -0600 Subject: [PATCH 05/14] Creating ELCI versions which have faster runtime for debugging purposes. Will be removed later. --- electricitylci/modelconfig/ELCI_4_config.yml | 90 ++++++++++++++++++++ electricitylci/modelconfig/ELCI_5_config.yml | 90 ++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 electricitylci/modelconfig/ELCI_4_config.yml create mode 100644 electricitylci/modelconfig/ELCI_5_config.yml diff --git a/electricitylci/modelconfig/ELCI_4_config.yml b/electricitylci/modelconfig/ELCI_4_config.yml new file mode 100644 index 00000000..0cd8d4dd --- /dev/null +++ b/electricitylci/modelconfig/ELCI_4_config.yml @@ -0,0 +1,90 @@ +# MODEL CONFIG FILE +# This file contains parameters that can be changed by a user. + +# MODEL AND DATA YEARS +# These parameters determine what year the outputs represent and which years of data +# are used from each source + +# The target year is used to determine the temporal correlation of data with the +# electricity generation processes, which can be used in uncertainty calculations. +electricity_lci_target_year: 2018 + +# Select a regional aggregation from "eGRID", "NERC", "BA", "US", "FERC", and "EIA" +# The EPA_eGRID trading method can only be used with "eGRID". +# The NETL_BA_trading method can only be used with "BA" and "FERC" +regional_aggregation: 'eGRID' + +# If egrid is not used as a primary data source then set "replace_egrid" to True. This +# will trigger the use of EPA CEMS and EIA data as substitutes for eGRID. Replacing +# eGRID will also use EIA generation data to determine the generation mix. +egrid_year: 2016 +eia_gen_year: 2016 +replace_egrid: False + +#NETL has developed profiles for renewable generation to capture construction +#impacts (e.g., solar PV menufacturing). +include_renewable_generation: False + +#NETL has developed profiles for power plant water use. +include_netl_water: False + +# Upstream data from NETL can be included in the outputs. +include_upstream_processes: False + +inventories_of_interest: + eGRID: 2016 + TRI: 2016 + NEI: 2016 + RCRAInfo: 2015 + + +# GENERATOR FILTERS +# These parameters determine if any power plants are filtered out +include_only_egrid_facilities_with_positive_generation: True +filter_on_efficiency: True +egrid_facility_efficiency_filters: + lower_efficiency: 10 + upper_efficiency: 100 + +# ELCI creates life cycle processes for each fuel type. If you only want to include +# power plants with a minumum amount of generation from a single fuel make sure this +# parameter is set to True. +filter_on_min_plant_percent_generation_from_primary_fuel: True +min_plant_percent_generation_from_primary_fuel_category: 90 + +#If the parameter above is set to True, one may still want to keep the plants +#do not meet the threshhold. This setting will mark those power plants as +#MIXED and generate life cycle processes for them. Note that the definition +#of mixed is purposefully ambiguous and will mean different things depending +#on the region of aggregation. +keep_mixed_plant_category: True + +# NEEDS A GOOD DESCRIPTION OF THIS PARAMETER +filter_non_egrid_emission_on_NAICS: True + + +# TRANSMISSION AND ELECTRICITY TRADING +# These parameters are used to determine which method of electricity trading is used +# and what losses from electricity distribution are included in the results. + +# Should this be transmission grid? +efficiency_of_distribution_grid: 0.95 + +# Electricity trading can be calculated using a method from EPA (with or without a +# surplus trading pool) that is based on eGRID regions or a method from NETL that +# uses an input-output approach using exchange data between balancing authorities +# from EIA. + +EPA_eGRID_trading: True +net_trading: False + + +NETL_IO_trading_year: 2016 + + + +# OTHER PARAMETERS + +fedelemflowlist_version: 1.0.2 +post_process_generation_emission_factors: False +fuel_name_file: fuelname_1.csv diff --git a/electricitylci/modelconfig/ELCI_5_config.yml b/electricitylci/modelconfig/ELCI_5_config.yml new file mode 100644 index 00000000..fb64fe25 --- /dev/null +++ b/electricitylci/modelconfig/ELCI_5_config.yml @@ -0,0 +1,90 @@ +# MODEL CONFIG FILE +# This file contains parameters that can be changed by a user. + +# MODEL AND DATA YEARS +# These parameters determine what year the outputs represent and which years of data +# are used from each source + +# The target year is used to determine the temporal correlation of data with the +# electricity generation processes, which can be used in uncertainty calculations. +electricity_lci_target_year: 2018 + +# Select a regional aggregation from "eGRID", "NERC", "BA", "US", "FERC", and "EIA" +# The EPA_eGRID trading method can only be used with "eGRID". +# The NETL_BA_trading method can only be used with "BA" and "FERC" +regional_aggregation: 'eGRID' + +# If egrid is not used as a primary data source then set "replace_egrid" to True. This +# will trigger the use of EPA CEMS and EIA data as substitutes for eGRID. Replacing +# eGRID will also use EIA generation data to determine the generation mix. +egrid_year: 2016 +eia_gen_year: 2016 +replace_egrid: False + +#NETL has developed profiles for renewable generation to capture construction +#impacts (e.g., solar PV menufacturing). +include_renewable_generation: False + +#NETL has developed profiles for power plant water use. +include_netl_water: False + +# Upstream data from NETL can be included in the outputs. +include_upstream_processes: False + +inventories_of_interest: + eGRID: 2016 + TRI: 2016 + NEI: 2016 + RCRAInfo: 2015 + + +# GENERATOR FILTERS +# These parameters determine if any power plants are filtered out +include_only_egrid_facilities_with_positive_generation: True +filter_on_efficiency: True +egrid_facility_efficiency_filters: + lower_efficiency: 10 + upper_efficiency: 100 + +# ELCI creates life cycle processes for each fuel type. If you only want to include +# power plants with a minumum amount of generation from a single fuel make sure this +# parameter is set to True. +filter_on_min_plant_percent_generation_from_primary_fuel: True +min_plant_percent_generation_from_primary_fuel_category: 90 + +#If the parameter above is set to True, one may still want to keep the plants +#do not meet the threshhold. This setting will mark those power plants as +#MIXED and generate life cycle processes for them. Note that the definition +#of mixed is purposefully ambiguous and will mean different things depending +#on the region of aggregation. +keep_mixed_plant_category: True + +# NEEDS A GOOD DESCRIPTION OF THIS PARAMETER +filter_non_egrid_emission_on_NAICS: True + + +# TRANSMISSION AND ELECTRICITY TRADING +# These parameters are used to determine which method of electricity trading is used +# and what losses from electricity distribution are included in the results. + +# Should this be transmission grid? +efficiency_of_distribution_grid: 0.95 + +# Electricity trading can be calculated using a method from EPA (with or without a +# surplus trading pool) that is based on eGRID regions or a method from NETL that +# uses an input-output approach using exchange data between balancing authorities +# from EIA. + +EPA_eGRID_trading: True +net_trading: True + + +NETL_IO_trading_year: 2016 + + + +# OTHER PARAMETERS + +fedelemflowlist_version: 1.0.2 +post_process_generation_emission_factors: False +fuel_name_file: fuelname_1.csv From 1073addd87ef37b90b51949ae8f22206d2267b3e Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sun, 16 Aug 2020 21:59:47 -0600 Subject: [PATCH 06/14] Incorporated international mixes from Canada and mexico. The Canada and Mexico mixes takes US average flows. They seem to be working fine. However, it needs to be compared with gross and net and reviewed. Co-Authored-By: hottleta <29923016+hottleta@users.noreply.github.com> --- electricitylci/__init__.py | 24 ++++- .../data/eGRID_Consumption_Mix_new.xlsx | Bin 111405 -> 114040 bytes electricitylci/egrid_facilities.py | 3 + electricitylci/generation_mix.py | 92 +++++++++++++++--- electricitylci/main.py | 28 ++++-- electricitylci/process_dictionary_writer.py | 41 ++++++-- 6 files changed, 154 insertions(+), 34 deletions(-) diff --git a/electricitylci/__init__.py b/electricitylci/__init__.py index ec24fead..2c8a57b4 100644 --- a/electricitylci/__init__.py +++ b/electricitylci/__init__.py @@ -213,20 +213,36 @@ def write_generation_mix_database_to_dict( def write_fuel_mix_database_to_dict( genmix_database, gen_dict, regions=None ): - from electricitylci.generation_mix import olcaschema_fuelmix + from electricitylci.generation_mix import olcaschema_usaverage if regions is None: regions = config.model_specs.regional_aggregation if regions in ["FERC","US","BA"]: - fuelmix_dict = olcaschema_fuelmix( + usaverage_dict = olcaschema_usaverage( genmix_database, gen_dict, subregion="BA" ) else: - fuelmix_dict = olcaschema_fuelmix( + usaverage_dict = olcaschema_usaverage( genmix_database, gen_dict, subregion=regions ) - return fuelmix_dict + return usaverage_dict +def write_international_mix_database_to_dict( + genmix_database, usfuelmix_dict, regions=None +): + from electricitylci.generation_mix import olcaschema_international; + if regions is None: + regions = config.model_specs.regional_aggregation + if regions in ["FERC","US","BA"]: + international_dict = olcaschema_international( + genmix_database, usfuelmix_dict, subregion="BA" + ) + else: + international_dict = olcaschema_international( + genmix_database, usfuelmix_dict, subregion=regions + ) + return international_dict + def write_surplus_pool_and_consumption_mix_dict(): """ diff --git a/electricitylci/data/eGRID_Consumption_Mix_new.xlsx b/electricitylci/data/eGRID_Consumption_Mix_new.xlsx index 95517f12d9baaa5775176e6f7e40f1db2a6d338b..15df457c10081b04c6b2ca3a4d41bb1089d5f6fa 100644 GIT binary patch delta 98630 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 Z8pxXi!?4cN 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 z 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 delta 96002 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 MjFstc0k?ww2kE7oKL7v# diff --git a/electricitylci/egrid_facilities.py b/electricitylci/egrid_facilities.py index 73207cbf..b565bc11 100644 --- a/electricitylci/egrid_facilities.py +++ b/electricitylci/egrid_facilities.py @@ -70,3 +70,6 @@ def list_facilities_w_percent_generation_from_primary_fuel_category_greater_than # Merge back into facilities egrid_facilities = pd.merge(egrid_facilities, egrid_facilities_fuel_cat_per_gen, on=['FacilityID', 'FuelCategory'], how='left') + +international = pd.read_csv(data_dir+'/International_Electricity_Mix.csv') +international_reg = list(pd.unique(international['Subregion'])) diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index 2724004b..e3d48363 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -5,6 +5,7 @@ import numpy as np import pandas as pd +from electricitylci.globals import data_dir from electricitylci.process_dictionary_writer import * from electricitylci.egrid_facilities import egrid_facilities, egrid_subregions from electricitylci.model_config import model_specs @@ -360,12 +361,14 @@ def olcaschema_genmix(database, gen_dict, subregion=None): return generation_mix_dict -def olcaschema_fuelmix(database, gen_dict, subregion=None): +def olcaschema_usaverage(database, gen_dict, subregion=None): if subregion is None: subregion = model_specs.regional_aggregation generation_mix_dict = {} us_database = create_generation_mix_process_df_from_egrid_ref_data(subregion='US') + #Not choosing the Hawaiian and Alaskan regions. + us_database = us_database[(us_database['Subregion'] != 'HIMS') & (us_database['Subregion'] != 'HIOA') & (us_database['Subregion'] != 'AKGD') & (us_database['Subregion'] != 'AKMS')] df2 = us_database.groupby(['FuelCategory'])['Electricity'].agg('sum').reset_index() df2['Electricity_fuel_total'] = df2['Electricity'] del df2['Electricity'] @@ -373,7 +376,6 @@ def olcaschema_fuelmix(database, gen_dict, subregion=None): df3['Generation_Ratio'] = df3['Electricity']/df3['Electricity_fuel_total'] del df3['Electricity_fuel_total'] us_database = df3 - if "FuelCategory" in us_database.columns: fuels = list(pd.unique(us_database["FuelCategory"])) @@ -385,40 +387,102 @@ def olcaschema_fuelmix(database, gen_dict, subregion=None): # Creating the reference output exchange(exchange_table_creation_ref(database_reg), exchanges_list) for reg in list(us_database["Subregion"].unique()): + # Reading complete fuel name and heat content information + # fuelname = row['Fuelname'] + # croppping the database according to the current fuel being considered + #Not choosing the Hawaiian and Alaskan regions. + if reg == 'HIMS' or reg == 'HIOA' or reg == 'AKGD' or reg == 'AKMS': + continue + else: + database_f1 = database_reg[ + database_reg["Subregion"] == reg + ] + if database_f1.empty != True: + matching_dict = None + for generator in gen_dict: + if ( + gen_dict[generator]["name"] + == "Electricity - " + fuel + " - " + reg + ): + matching_dict = gen_dict[generator] + break + if matching_dict is None: + logging.warning( + f"Trouble matching dictionary for creating fuel mix {fuel} - {reg}.Skipping this flow for now" + ) + else: + ra = exchange_table_creation_input_usaverage( + database_f1, fuel + ) + ra["quantitativeReference"] = False + ra["provider"] = { + "name": matching_dict["name"], + "@id": matching_dict["uuid"], + "category": matching_dict["category"].split("/"), + } + exchange(ra, exchanges_list) + # Writing final file + + final = process_table_creation_usaverage(fuel, exchanges_list) + # print(reg +' Process Created') + generation_mix_dict[fuel] = final + + return generation_mix_dict + +def olcaschema_international(database, gen_dict, subregion=None): + + intl_database = pd.read_csv(data_dir+'/International_Electricity_Mix.csv') + database = intl_database + generation_mix_dict = {} + if "Subregion" in database.columns: + region = list(pd.unique(database["Subregion"])) + else: + region = ["US"] + database["Subregion"] = "US" + for reg in region: + + database_reg = database[database["Subregion"] == reg] + exchanges_list = [] + + # Creating the reference output + exchange(exchange_table_creation_ref(database_reg), exchanges_list) + for fuelname in list(database["FuelCategory"].unique()): # Reading complete fuel name and heat content information # fuelname = row['Fuelname'] # croppping the database according to the current fuel being considered database_f1 = database_reg[ - database_reg["Subregion"] == reg + database_reg["FuelCategory"] == fuelname ] if database_f1.empty != True: matching_dict = None for generator in gen_dict: if ( gen_dict[generator]["name"] - == "Electricity - " + fuel + " - " + reg - ): + == "Electricity; at grid; USaverage - " + fuelname + ): matching_dict = gen_dict[generator] break if matching_dict is None: logging.warning( - f"Trouble matching dictionary for creating fuel mix {fuel} - {reg}.Skipping this flow for now" + f"Trouble matching dictionary for us average mix {fuelname} - USaverage. Skipping this flow for now" ) else: - ra = exchange_table_creation_input_fuelmix( - database_f1, fuel + ra = exchange_table_creation_input_international_mix( + database_f1, fuelname ) ra["quantitativeReference"] = False ra["provider"] = { - "name": matching_dict["name"], - "@id": matching_dict["uuid"], - "category": matching_dict["category"].split("/"), + "name": matching_dict["name"], + "@id": matching_dict["uuid"], + "category": matching_dict["category"].split("/"), } + #if matching_dict is None: exchange(ra, exchanges_list) # Writing final file - final = process_table_creation_fuelmix(fuel, exchanges_list) + final = process_table_creation_genmix(reg, exchanges_list) # print(reg +' Process Created') - generation_mix_dict[fuel] = final + generation_mix_dict[reg] = final + return generation_mix_dict + - return generation_mix_dict \ No newline at end of file diff --git a/electricitylci/main.py b/electricitylci/main.py index 1952b3b2..59502342 100644 --- a/electricitylci/main.py +++ b/electricitylci/main.py @@ -63,16 +63,24 @@ def main(): print("write gen mix to dict") generation_mix_dict = electricitylci.write_generation_mix_database_to_dict( generation_mix_df, generation_process_dict) - - fuel_mix_dict = electricitylci.write_fuel_mix_database_to_dict( - generation_mix_df, generation_process_dict) print("write gen mix to jsonld") generation_mix_dict = electricitylci.write_process_dicts_to_jsonld( generation_mix_dict ) - fuel_mix_dict = electricitylci.write_process_dicts_to_jsonld( - fuel_mix_dict + print("us average mix to dict") + usavegfuel_mix_dict = electricitylci.write_fuel_mix_database_to_dict( + generation_mix_df, generation_process_dict) + print("write us average mix to jsonld") + usavegfuel_mix_dict = electricitylci.write_process_dicts_to_jsonld( + usavegfuel_mix_dict ) + print("international average mix to dict") + international_mix_dict = electricitylci.write_international_mix_database_to_dict( + generation_mix_df, usavegfuel_mix_dict) + international_mix_dict = electricitylci.write_process_dicts_to_jsonld( + international_mix_dict + ) + # At this point the two methods diverge from underlying functions enough that # it's just easier to split here. if config.model_specs.EPA_eGRID_trading is False: @@ -115,17 +123,17 @@ def main(): ) print('Filling up UUID of surplus pool consumption mix') sur_con_mix_dict = fill_default_provider_uuids( - sur_con_mix_dict, generation_mix_dict + sur_con_mix_dict, generation_mix_dict, international_mix_dict ) - print('wrtie surplus pool consumption mix to jsonld') + print('write surplus pool consumption mix to jsonld') sur_con_mix_dict = electricitylci.write_process_dicts_to_jsonld(sur_con_mix_dict) + print('Filling up UUID of surplus pool consumption mix') sur_con_mix_dict = fill_default_provider_uuids( - sur_con_mix_dict, sur_con_mix_dict, generation_mix_dict + sur_con_mix_dict, sur_con_mix_dict, generation_mix_dict, international_mix_dict ) sur_con_mix_dict = electricitylci.write_process_dicts_to_jsonld(sur_con_mix_dict) dist_dict = fill_default_provider_uuids(dist_dict, sur_con_mix_dict) dist_dict = electricitylci.write_process_dicts_to_jsonld(dist_dict) - logger.info( f'JSON-LD files have been saved in the "output" folder with the full path ' f'{config.model_specs.namestr}' @@ -140,4 +148,4 @@ def main(): config.model_specs=config.build_model_class(args.model_config) else: config.model_specs=None - main() + main() diff --git a/electricitylci/process_dictionary_writer.py b/electricitylci/process_dictionary_writer.py index ba6b4c46..2b573181 100644 --- a/electricitylci/process_dictionary_writer.py +++ b/electricitylci/process_dictionary_writer.py @@ -16,7 +16,7 @@ elci_version ) from electricitylci.utils import make_valid_version_num -from electricitylci.egrid_facilities import egrid_subregions +from electricitylci.egrid_facilities import egrid_subregions,international_reg from electricitylci.model_config import model_specs @@ -89,7 +89,7 @@ def lookup_location_uuid(location): + generation_mix_name_parts["Mix type"] ) -fuel_mix_name = 'Electricity; at grid; fuelmix' +fuel_mix_name = 'Electricity; at grid; USaverage' surplus_pool_name = "Electricity; at grid; surplus pool" consumption_mix_name = "Electricity; at grid; consumption mix" distribution_to_end_user_name = "Electricity; at user; consumption mix" @@ -184,11 +184,18 @@ def con_process_ref(reg, ref_type="generation"): name = consumption_mix_name +" - "+reg elif reg in egrid_subregions: name = generation_mix_name +" - "+reg + elif reg in international_reg: + name = generation_mix_name +" - "+reg + elif ref_type == "generation_international": + name = fuel_mix_name + " - " + reg else: name = surplus_pool_name + " - "+reg processref = dict() processref["name"] = name - processref["location"] = reg + if ref_type == "generation_international": + processref["location"] = 'US' + else: + processref["location"] = reg processref["processType"] = "UNIT_PROCESS" processref["categoryPath"] = [ "22: Utilities", @@ -219,7 +226,7 @@ def exchange_table_creation_input_genmix(database, fuelname): return ar -def exchange_table_creation_input_fuelmix(database, fuelname): +def exchange_table_creation_input_usaverage(database, fuelname): """Add docstring.""" region = database["Subregion"].iloc[0] ar = dict() @@ -241,6 +248,28 @@ def exchange_table_creation_input_fuelmix(database, fuelname): return ar +def exchange_table_creation_input_international_mix( + database, ref_to_consumption=False +): + region = database["Subregion"].iloc[0] + fuelname = database["FuelCategory"].iloc[0] + ar = dict() + ar["internalId"] = "" + ar["@type"] = "Exchange" + ar["avoidedProduct"] = False + ar["flow"] = electricity_at_grid_flow + ar["flowProperty"] = "" + ar["input"] = True + ar["baseUncertainty"] = "" + ar["provider"] = con_process_ref(fuelname, "generation_international") + ar["amount"] = database["Generation_Ratio"].iloc[0] + ar["unit"] = unit("MWh") + ar["pedigreeUncertainty"] = "" + ar["uncertainty"] = "" + ar["comment"] = "eGRID " + str(model_specs.egrid_year) + ". From US Average - " + fuelname + # ar['location'] = location(loc) + return ar + def exchange_table_creation_input_con_mix( generation, loc, ref_to_consumption=False ): @@ -687,7 +716,7 @@ def process_table_creation_genmix(region, exchanges_list): return ar -def process_table_creation_fuelmix(fuel, exchanges_list): +def process_table_creation_usaverage(fuel, exchanges_list): """Add docstring.""" ar = dict() ar["@type"] = "Process" @@ -703,7 +732,7 @@ def process_table_creation_fuelmix(fuel, exchanges_list): "category" ] = "22: Utilities/2211: Electric Power Generation, Transmission and Distribution" ar["description"] = ( - "Electricity fuel mix for the " + str(fuel) + " fuel." + "Electricity fuel US Average mix for the " + str(fuel) + " fuel." ) ar["description"]=(ar["description"] + " This process was created with ElectricityLCI " From 1773fbbe2409c987e41ad466be9467d186db99dc Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Sun, 16 Aug 2020 22:05:44 -0600 Subject: [PATCH 07/14] Removing warnings for missing Surplus Pools due to dual fill default provider statements. Removing extra yml files. Co-Authored-By: hottleta <29923016+hottleta@users.noreply.github.com> --- electricitylci/main.py | 4 - electricitylci/modelconfig/ELCI_4_config.yml | 90 -------------------- electricitylci/modelconfig/ELCI_5_config.yml | 90 -------------------- 3 files changed, 184 deletions(-) delete mode 100644 electricitylci/modelconfig/ELCI_4_config.yml delete mode 100644 electricitylci/modelconfig/ELCI_5_config.yml diff --git a/electricitylci/main.py b/electricitylci/main.py index 59502342..a8fee8fe 100644 --- a/electricitylci/main.py +++ b/electricitylci/main.py @@ -121,10 +121,6 @@ def main(): generation_mix_dict = electricitylci.write_process_dicts_to_jsonld( generation_mix_dict ) - print('Filling up UUID of surplus pool consumption mix') - sur_con_mix_dict = fill_default_provider_uuids( - sur_con_mix_dict, generation_mix_dict, international_mix_dict - ) print('write surplus pool consumption mix to jsonld') sur_con_mix_dict = electricitylci.write_process_dicts_to_jsonld(sur_con_mix_dict) print('Filling up UUID of surplus pool consumption mix') diff --git a/electricitylci/modelconfig/ELCI_4_config.yml b/electricitylci/modelconfig/ELCI_4_config.yml deleted file mode 100644 index 0cd8d4dd..00000000 --- a/electricitylci/modelconfig/ELCI_4_config.yml +++ /dev/null @@ -1,90 +0,0 @@ -# MODEL CONFIG FILE -# This file contains parameters that can be changed by a user. - -# MODEL AND DATA YEARS -# These parameters determine what year the outputs represent and which years of data -# are used from each source - -# The target year is used to determine the temporal correlation of data with the -# electricity generation processes, which can be used in uncertainty calculations. -electricity_lci_target_year: 2018 - -# Select a regional aggregation from "eGRID", "NERC", "BA", "US", "FERC", and "EIA" -# The EPA_eGRID trading method can only be used with "eGRID". -# The NETL_BA_trading method can only be used with "BA" and "FERC" -regional_aggregation: 'eGRID' - -# If egrid is not used as a primary data source then set "replace_egrid" to True. This -# will trigger the use of EPA CEMS and EIA data as substitutes for eGRID. Replacing -# eGRID will also use EIA generation data to determine the generation mix. -egrid_year: 2016 -eia_gen_year: 2016 -replace_egrid: False - -#NETL has developed profiles for renewable generation to capture construction -#impacts (e.g., solar PV menufacturing). -include_renewable_generation: False - -#NETL has developed profiles for power plant water use. -include_netl_water: False - -# Upstream data from NETL can be included in the outputs. -include_upstream_processes: False - -inventories_of_interest: - eGRID: 2016 - TRI: 2016 - NEI: 2016 - RCRAInfo: 2015 - - -# GENERATOR FILTERS -# These parameters determine if any power plants are filtered out -include_only_egrid_facilities_with_positive_generation: True -filter_on_efficiency: True -egrid_facility_efficiency_filters: - lower_efficiency: 10 - upper_efficiency: 100 - -# ELCI creates life cycle processes for each fuel type. If you only want to include -# power plants with a minumum amount of generation from a single fuel make sure this -# parameter is set to True. -filter_on_min_plant_percent_generation_from_primary_fuel: True -min_plant_percent_generation_from_primary_fuel_category: 90 - -#If the parameter above is set to True, one may still want to keep the plants -#do not meet the threshhold. This setting will mark those power plants as -#MIXED and generate life cycle processes for them. Note that the definition -#of mixed is purposefully ambiguous and will mean different things depending -#on the region of aggregation. -keep_mixed_plant_category: True - -# NEEDS A GOOD DESCRIPTION OF THIS PARAMETER -filter_non_egrid_emission_on_NAICS: True - - -# TRANSMISSION AND ELECTRICITY TRADING -# These parameters are used to determine which method of electricity trading is used -# and what losses from electricity distribution are included in the results. - -# Should this be transmission grid? -efficiency_of_distribution_grid: 0.95 - -# Electricity trading can be calculated using a method from EPA (with or without a -# surplus trading pool) that is based on eGRID regions or a method from NETL that -# uses an input-output approach using exchange data between balancing authorities -# from EIA. - -EPA_eGRID_trading: True -net_trading: False - - -NETL_IO_trading_year: 2016 - - - -# OTHER PARAMETERS - -fedelemflowlist_version: 1.0.2 -post_process_generation_emission_factors: False -fuel_name_file: fuelname_1.csv diff --git a/electricitylci/modelconfig/ELCI_5_config.yml b/electricitylci/modelconfig/ELCI_5_config.yml deleted file mode 100644 index fb64fe25..00000000 --- a/electricitylci/modelconfig/ELCI_5_config.yml +++ /dev/null @@ -1,90 +0,0 @@ -# MODEL CONFIG FILE -# This file contains parameters that can be changed by a user. - -# MODEL AND DATA YEARS -# These parameters determine what year the outputs represent and which years of data -# are used from each source - -# The target year is used to determine the temporal correlation of data with the -# electricity generation processes, which can be used in uncertainty calculations. -electricity_lci_target_year: 2018 - -# Select a regional aggregation from "eGRID", "NERC", "BA", "US", "FERC", and "EIA" -# The EPA_eGRID trading method can only be used with "eGRID". -# The NETL_BA_trading method can only be used with "BA" and "FERC" -regional_aggregation: 'eGRID' - -# If egrid is not used as a primary data source then set "replace_egrid" to True. This -# will trigger the use of EPA CEMS and EIA data as substitutes for eGRID. Replacing -# eGRID will also use EIA generation data to determine the generation mix. -egrid_year: 2016 -eia_gen_year: 2016 -replace_egrid: False - -#NETL has developed profiles for renewable generation to capture construction -#impacts (e.g., solar PV menufacturing). -include_renewable_generation: False - -#NETL has developed profiles for power plant water use. -include_netl_water: False - -# Upstream data from NETL can be included in the outputs. -include_upstream_processes: False - -inventories_of_interest: - eGRID: 2016 - TRI: 2016 - NEI: 2016 - RCRAInfo: 2015 - - -# GENERATOR FILTERS -# These parameters determine if any power plants are filtered out -include_only_egrid_facilities_with_positive_generation: True -filter_on_efficiency: True -egrid_facility_efficiency_filters: - lower_efficiency: 10 - upper_efficiency: 100 - -# ELCI creates life cycle processes for each fuel type. If you only want to include -# power plants with a minumum amount of generation from a single fuel make sure this -# parameter is set to True. -filter_on_min_plant_percent_generation_from_primary_fuel: True -min_plant_percent_generation_from_primary_fuel_category: 90 - -#If the parameter above is set to True, one may still want to keep the plants -#do not meet the threshhold. This setting will mark those power plants as -#MIXED and generate life cycle processes for them. Note that the definition -#of mixed is purposefully ambiguous and will mean different things depending -#on the region of aggregation. -keep_mixed_plant_category: True - -# NEEDS A GOOD DESCRIPTION OF THIS PARAMETER -filter_non_egrid_emission_on_NAICS: True - - -# TRANSMISSION AND ELECTRICITY TRADING -# These parameters are used to determine which method of electricity trading is used -# and what losses from electricity distribution are included in the results. - -# Should this be transmission grid? -efficiency_of_distribution_grid: 0.95 - -# Electricity trading can be calculated using a method from EPA (with or without a -# surplus trading pool) that is based on eGRID regions or a method from NETL that -# uses an input-output approach using exchange data between balancing authorities -# from EIA. - -EPA_eGRID_trading: True -net_trading: True - - -NETL_IO_trading_year: 2016 - - - -# OTHER PARAMETERS - -fedelemflowlist_version: 1.0.2 -post_process_generation_emission_factors: False -fuel_name_file: fuelname_1.csv From 667c6ca236a048723670ce657c48ee688cd0eb70 Mon Sep 17 00:00:00 2001 From: Tapajyoti Ghosh Date: Sun, 16 Aug 2020 22:13:40 -0600 Subject: [PATCH 08/14] Raw data file of Fuel technology mix for international mixes of Canada, mexico. Example. mexico is 100% Wind. --- .../data/International_Electricity_Mix.csv | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 electricitylci/data/International_Electricity_Mix.csv diff --git a/electricitylci/data/International_Electricity_Mix.csv b/electricitylci/data/International_Electricity_Mix.csv new file mode 100644 index 00000000..92e276be --- /dev/null +++ b/electricitylci/data/International_Electricity_Mix.csv @@ -0,0 +1,51 @@ +Subregion,FuelCategory,Electricity,NERC,Generation_Ratio +British Columbia,GAS,,WECC,0.02357189 +British Columbia,COAL,,WECC,0 +British Columbia,NUCLEAR,,WECC,0 +British Columbia,GEOTHERMAL,,WECC,0.057344566 +British Columbia,SOLAR,,WECC,2.94E-05 +British Columbia,WIND,,WECC,0.009877884 +British Columbia,HYDRO,,WECC,0.909176305 +Alberta,GAS,,WECC,0.416603496 +Alberta,COAL,,WECC,0.475944 +Alberta,NUCLEAR,,WECC,0 +Alberta,GEOTHERMAL,,WECC,0.022504382 +Alberta,SOLAR,,WECC,1.18E-05 +Alberta,WIND,,WECC,0.056722888 +Alberta,HYDRO,,WECC,0.028213389 +Saskatchewan,GAS,,MRO,0.250935862 +Saskatchewan,COAL,,MRO,0.524041261 +Saskatchewan,NUCLEAR,,MRO,0 +Saskatchewan,GEOTHERMAL,,MRO,0.006280675 +Saskatchewan,SOLAR,,MRO,4.16E-05 +Saskatchewan,WIND,,MRO,0.030529906 +Saskatchewan,HYDRO,,MRO,0.188170701 +Manitoba,GAS,,MRO,0.001771549 +Manitoba,COAL,,MRO,0.00153358 +Manitoba,NUCLEAR,,MRO,0 +Manitoba,GEOTHERMAL,,MRO,0.001401375 +Manitoba,SOLAR,,MRO,2.64E-05 +Manitoba,WIND,,MRO,0.022157589 +Manitoba,HYDRO,,MRO,0.973109466 +Ontario,GAS,,NPCC,0.070797025 +Ontario,COAL,,NPCC,0 +Ontario,NUCLEAR,,NPCC,0.55173294 +Ontario,GEOTHERMAL,,NPCC,0.036202035 +Ontario,SOLAR,,NPCC,0.029588202 +Ontario,WIND,,NPCC,0.057992876 +Ontario,HYDRO,,NPCC,0.253686922 +Quebec,GAS,,NPCC,0.005132507 +Quebec,COAL,,NPCC,0 +Quebec,NUCLEAR,,NPCC,0 +Quebec,GEOTHERMAL,,NPCC,0.005777032 +Quebec,SOLAR,,NPCC,0 +Quebec,WIND,,NPCC,0.041349143 +Quebec,HYDRO,,NPCC,0.947741318 +New Brunswick,GAS,,NPCC,0.193446177 +New Brunswick,COAL,,NPCC,0.116984908 +New Brunswick,NUCLEAR,,NPCC,0.329775702 +New Brunswick,GEOTHERMAL,,NPCC,0.050529476 +New Brunswick,SOLAR,,NPCC,0 +New Brunswick,WIND,,NPCC,0.064537647 +New Brunswick,HYDRO,,NPCC,0.24472609 +Mexico,WIND,,WECC,1 \ No newline at end of file From b2eda8461363f362c47453f48ea43ca4ca77693f Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Mon, 17 Aug 2020 22:06:56 -0600 Subject: [PATCH 09/14] Separating the use of usaverage and international mixes - eGRID trading vs EIO trading This update to main.py makes sure that the new functions introduced in init.py and generation_mix.py only runs when eGRID_EPA_trading = TRUE. Co-Authored-By: hottleta <29923016+hottleta@users.noreply.github.com> --- electricitylci/main.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/electricitylci/main.py b/electricitylci/main.py index a8fee8fe..3360c1b1 100644 --- a/electricitylci/main.py +++ b/electricitylci/main.py @@ -67,20 +67,7 @@ def main(): generation_mix_dict = electricitylci.write_process_dicts_to_jsonld( generation_mix_dict ) - print("us average mix to dict") - usavegfuel_mix_dict = electricitylci.write_fuel_mix_database_to_dict( - generation_mix_df, generation_process_dict) - print("write us average mix to jsonld") - usavegfuel_mix_dict = electricitylci.write_process_dicts_to_jsonld( - usavegfuel_mix_dict - ) - print("international average mix to dict") - international_mix_dict = electricitylci.write_international_mix_database_to_dict( - generation_mix_df, usavegfuel_mix_dict) - international_mix_dict = electricitylci.write_process_dicts_to_jsonld( - international_mix_dict - ) - + # At this point the two methods diverge from underlying functions enough that # it's just easier to split here. if config.model_specs.EPA_eGRID_trading is False: @@ -114,6 +101,19 @@ def main(): dist_mix_dicts[subreg] = electricitylci.write_process_dicts_to_jsonld( dist_mix_dicts[subreg]) else: + print("us average mix to dict") + usavegfuel_mix_dict = electricitylci.write_fuel_mix_database_to_dict( + generation_mix_df, generation_process_dict) + print("write us average mix to jsonld") + usavegfuel_mix_dict = electricitylci.write_process_dicts_to_jsonld( + usavegfuel_mix_dict + ) + print("international average mix to dict") + international_mix_dict = electricitylci.write_international_mix_database_to_dict( + generation_mix_df, usavegfuel_mix_dict) + international_mix_dict = electricitylci.write_process_dicts_to_jsonld( + international_mix_dict + ) # Get surplus and consumption mix dictionary sur_con_mix_dict = electricitylci.write_surplus_pool_and_consumption_mix_dict() # Get dist dictionary @@ -144,4 +144,4 @@ def main(): config.model_specs=config.build_model_class(args.model_config) else: config.model_specs=None - main() + main() From 71cc3e7eabeefe17098ea1a0d8d78c7c00511333 Mon Sep 17 00:00:00 2001 From: Tapajyoti Ghosh Date: Mon, 17 Aug 2020 22:09:48 -0600 Subject: [PATCH 10/14] Update International_mix.csv Removing NERC region column. Adding Year - 2016 --- .../data/International_Electricity_Mix.csv | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/electricitylci/data/International_Electricity_Mix.csv b/electricitylci/data/International_Electricity_Mix.csv index 92e276be..4106512e 100644 --- a/electricitylci/data/International_Electricity_Mix.csv +++ b/electricitylci/data/International_Electricity_Mix.csv @@ -1,51 +1,51 @@ -Subregion,FuelCategory,Electricity,NERC,Generation_Ratio -British Columbia,GAS,,WECC,0.02357189 -British Columbia,COAL,,WECC,0 -British Columbia,NUCLEAR,,WECC,0 -British Columbia,GEOTHERMAL,,WECC,0.057344566 -British Columbia,SOLAR,,WECC,2.94E-05 -British Columbia,WIND,,WECC,0.009877884 -British Columbia,HYDRO,,WECC,0.909176305 -Alberta,GAS,,WECC,0.416603496 -Alberta,COAL,,WECC,0.475944 -Alberta,NUCLEAR,,WECC,0 -Alberta,GEOTHERMAL,,WECC,0.022504382 -Alberta,SOLAR,,WECC,1.18E-05 -Alberta,WIND,,WECC,0.056722888 -Alberta,HYDRO,,WECC,0.028213389 -Saskatchewan,GAS,,MRO,0.250935862 -Saskatchewan,COAL,,MRO,0.524041261 -Saskatchewan,NUCLEAR,,MRO,0 -Saskatchewan,GEOTHERMAL,,MRO,0.006280675 -Saskatchewan,SOLAR,,MRO,4.16E-05 -Saskatchewan,WIND,,MRO,0.030529906 -Saskatchewan,HYDRO,,MRO,0.188170701 -Manitoba,GAS,,MRO,0.001771549 -Manitoba,COAL,,MRO,0.00153358 -Manitoba,NUCLEAR,,MRO,0 -Manitoba,GEOTHERMAL,,MRO,0.001401375 -Manitoba,SOLAR,,MRO,2.64E-05 -Manitoba,WIND,,MRO,0.022157589 -Manitoba,HYDRO,,MRO,0.973109466 -Ontario,GAS,,NPCC,0.070797025 -Ontario,COAL,,NPCC,0 -Ontario,NUCLEAR,,NPCC,0.55173294 -Ontario,GEOTHERMAL,,NPCC,0.036202035 -Ontario,SOLAR,,NPCC,0.029588202 -Ontario,WIND,,NPCC,0.057992876 -Ontario,HYDRO,,NPCC,0.253686922 -Quebec,GAS,,NPCC,0.005132507 -Quebec,COAL,,NPCC,0 -Quebec,NUCLEAR,,NPCC,0 -Quebec,GEOTHERMAL,,NPCC,0.005777032 -Quebec,SOLAR,,NPCC,0 -Quebec,WIND,,NPCC,0.041349143 -Quebec,HYDRO,,NPCC,0.947741318 -New Brunswick,GAS,,NPCC,0.193446177 -New Brunswick,COAL,,NPCC,0.116984908 -New Brunswick,NUCLEAR,,NPCC,0.329775702 -New Brunswick,GEOTHERMAL,,NPCC,0.050529476 -New Brunswick,SOLAR,,NPCC,0 -New Brunswick,WIND,,NPCC,0.064537647 -New Brunswick,HYDRO,,NPCC,0.24472609 -Mexico,WIND,,WECC,1 \ No newline at end of file +Subregion,FuelCategory,Electricity,Generation_Ratio,Year +British Columbia,GAS,,0.02357189,2016 +British Columbia,COAL,,0,2016 +British Columbia,NUCLEAR,,0,2016 +British Columbia,GEOTHERMAL,,0.057344566,2016 +British Columbia,SOLAR,,2.94E-05,2016 +British Columbia,WIND,,0.009877884,2016 +British Columbia,HYDRO,,0.909176305,2016 +Alberta,GAS,,0.416603496,2016 +Alberta,COAL,,0.475944,2016 +Alberta,NUCLEAR,,0,2016 +Alberta,GEOTHERMAL,,0.022504382,2016 +Alberta,SOLAR,,1.18E-05,2016 +Alberta,WIND,,0.056722888,2016 +Alberta,HYDRO,,0.028213389,2016 +Saskatchewan,GAS,,0.250935862,2016 +Saskatchewan,COAL,,0.524041261,2016 +Saskatchewan,NUCLEAR,,0,2016 +Saskatchewan,GEOTHERMAL,,0.006280675,2016 +Saskatchewan,SOLAR,,4.16E-05,2016 +Saskatchewan,WIND,,0.030529906,2016 +Saskatchewan,HYDRO,,0.188170701,2016 +Manitoba,GAS,,0.001771549,2016 +Manitoba,COAL,,0.00153358,2016 +Manitoba,NUCLEAR,,0,2016 +Manitoba,GEOTHERMAL,,0.001401375,2016 +Manitoba,SOLAR,,2.64E-05,2016 +Manitoba,WIND,,0.022157589,2016 +Manitoba,HYDRO,,0.973109466,2016 +Ontario,GAS,,0.070797025,2016 +Ontario,COAL,,0,2016 +Ontario,NUCLEAR,,0.55173294,2016 +Ontario,GEOTHERMAL,,0.036202035,2016 +Ontario,SOLAR,,0.029588202,2016 +Ontario,WIND,,0.057992876,2016 +Ontario,HYDRO,,0.253686922,2016 +Quebec,GAS,,0.005132507,2016 +Quebec,COAL,,0,2016 +Quebec,NUCLEAR,,0,2016 +Quebec,GEOTHERMAL,,0.005777032,2016 +Quebec,SOLAR,,0,2016 +Quebec,WIND,,0.041349143,2016 +Quebec,HYDRO,,0.947741318,2016 +New Brunswick,GAS,,0.193446177,2016 +New Brunswick,COAL,,0.116984908,2016 +New Brunswick,NUCLEAR,,0.329775702,2016 +New Brunswick,GEOTHERMAL,,0.050529476,2016 +New Brunswick,SOLAR,,0,2016 +New Brunswick,WIND,,0.064537647,2016 +New Brunswick,HYDRO,,0.24472609,2016 +Mexico,WIND,,1,2016 \ No newline at end of file From dda8fbb086fe310faf7bbb578b29047b72eaf05a Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Mon, 17 Aug 2020 22:10:12 -0600 Subject: [PATCH 11/14] Update International_Electricity_Mix.csv Added year. Removed NERC Co-Authored-By: hottleta <29923016+hottleta@users.noreply.github.com> --- .../data/International_Electricity_Mix.csv | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/electricitylci/data/International_Electricity_Mix.csv b/electricitylci/data/International_Electricity_Mix.csv index 92e276be..4106512e 100644 --- a/electricitylci/data/International_Electricity_Mix.csv +++ b/electricitylci/data/International_Electricity_Mix.csv @@ -1,51 +1,51 @@ -Subregion,FuelCategory,Electricity,NERC,Generation_Ratio -British Columbia,GAS,,WECC,0.02357189 -British Columbia,COAL,,WECC,0 -British Columbia,NUCLEAR,,WECC,0 -British Columbia,GEOTHERMAL,,WECC,0.057344566 -British Columbia,SOLAR,,WECC,2.94E-05 -British Columbia,WIND,,WECC,0.009877884 -British Columbia,HYDRO,,WECC,0.909176305 -Alberta,GAS,,WECC,0.416603496 -Alberta,COAL,,WECC,0.475944 -Alberta,NUCLEAR,,WECC,0 -Alberta,GEOTHERMAL,,WECC,0.022504382 -Alberta,SOLAR,,WECC,1.18E-05 -Alberta,WIND,,WECC,0.056722888 -Alberta,HYDRO,,WECC,0.028213389 -Saskatchewan,GAS,,MRO,0.250935862 -Saskatchewan,COAL,,MRO,0.524041261 -Saskatchewan,NUCLEAR,,MRO,0 -Saskatchewan,GEOTHERMAL,,MRO,0.006280675 -Saskatchewan,SOLAR,,MRO,4.16E-05 -Saskatchewan,WIND,,MRO,0.030529906 -Saskatchewan,HYDRO,,MRO,0.188170701 -Manitoba,GAS,,MRO,0.001771549 -Manitoba,COAL,,MRO,0.00153358 -Manitoba,NUCLEAR,,MRO,0 -Manitoba,GEOTHERMAL,,MRO,0.001401375 -Manitoba,SOLAR,,MRO,2.64E-05 -Manitoba,WIND,,MRO,0.022157589 -Manitoba,HYDRO,,MRO,0.973109466 -Ontario,GAS,,NPCC,0.070797025 -Ontario,COAL,,NPCC,0 -Ontario,NUCLEAR,,NPCC,0.55173294 -Ontario,GEOTHERMAL,,NPCC,0.036202035 -Ontario,SOLAR,,NPCC,0.029588202 -Ontario,WIND,,NPCC,0.057992876 -Ontario,HYDRO,,NPCC,0.253686922 -Quebec,GAS,,NPCC,0.005132507 -Quebec,COAL,,NPCC,0 -Quebec,NUCLEAR,,NPCC,0 -Quebec,GEOTHERMAL,,NPCC,0.005777032 -Quebec,SOLAR,,NPCC,0 -Quebec,WIND,,NPCC,0.041349143 -Quebec,HYDRO,,NPCC,0.947741318 -New Brunswick,GAS,,NPCC,0.193446177 -New Brunswick,COAL,,NPCC,0.116984908 -New Brunswick,NUCLEAR,,NPCC,0.329775702 -New Brunswick,GEOTHERMAL,,NPCC,0.050529476 -New Brunswick,SOLAR,,NPCC,0 -New Brunswick,WIND,,NPCC,0.064537647 -New Brunswick,HYDRO,,NPCC,0.24472609 -Mexico,WIND,,WECC,1 \ No newline at end of file +Subregion,FuelCategory,Electricity,Generation_Ratio,Year +British Columbia,GAS,,0.02357189,2016 +British Columbia,COAL,,0,2016 +British Columbia,NUCLEAR,,0,2016 +British Columbia,GEOTHERMAL,,0.057344566,2016 +British Columbia,SOLAR,,2.94E-05,2016 +British Columbia,WIND,,0.009877884,2016 +British Columbia,HYDRO,,0.909176305,2016 +Alberta,GAS,,0.416603496,2016 +Alberta,COAL,,0.475944,2016 +Alberta,NUCLEAR,,0,2016 +Alberta,GEOTHERMAL,,0.022504382,2016 +Alberta,SOLAR,,1.18E-05,2016 +Alberta,WIND,,0.056722888,2016 +Alberta,HYDRO,,0.028213389,2016 +Saskatchewan,GAS,,0.250935862,2016 +Saskatchewan,COAL,,0.524041261,2016 +Saskatchewan,NUCLEAR,,0,2016 +Saskatchewan,GEOTHERMAL,,0.006280675,2016 +Saskatchewan,SOLAR,,4.16E-05,2016 +Saskatchewan,WIND,,0.030529906,2016 +Saskatchewan,HYDRO,,0.188170701,2016 +Manitoba,GAS,,0.001771549,2016 +Manitoba,COAL,,0.00153358,2016 +Manitoba,NUCLEAR,,0,2016 +Manitoba,GEOTHERMAL,,0.001401375,2016 +Manitoba,SOLAR,,2.64E-05,2016 +Manitoba,WIND,,0.022157589,2016 +Manitoba,HYDRO,,0.973109466,2016 +Ontario,GAS,,0.070797025,2016 +Ontario,COAL,,0,2016 +Ontario,NUCLEAR,,0.55173294,2016 +Ontario,GEOTHERMAL,,0.036202035,2016 +Ontario,SOLAR,,0.029588202,2016 +Ontario,WIND,,0.057992876,2016 +Ontario,HYDRO,,0.253686922,2016 +Quebec,GAS,,0.005132507,2016 +Quebec,COAL,,0,2016 +Quebec,NUCLEAR,,0,2016 +Quebec,GEOTHERMAL,,0.005777032,2016 +Quebec,SOLAR,,0,2016 +Quebec,WIND,,0.041349143,2016 +Quebec,HYDRO,,0.947741318,2016 +New Brunswick,GAS,,0.193446177,2016 +New Brunswick,COAL,,0.116984908,2016 +New Brunswick,NUCLEAR,,0.329775702,2016 +New Brunswick,GEOTHERMAL,,0.050529476,2016 +New Brunswick,SOLAR,,0,2016 +New Brunswick,WIND,,0.064537647,2016 +New Brunswick,HYDRO,,0.24472609,2016 +Mexico,WIND,,1,2016 \ No newline at end of file From 6ec6fa499cc89c823db734aee89c41b2581c251a Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Mon, 17 Aug 2020 22:31:57 -0600 Subject: [PATCH 12/14] Small changes to make code cleaner for excluded regions Co-Authored-By: hottleta <29923016+hottleta@users.noreply.github.com> --- electricitylci/generation_mix.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index e3d48363..c84a30ec 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -365,10 +365,12 @@ def olcaschema_usaverage(database, gen_dict, subregion=None): if subregion is None: subregion = model_specs.regional_aggregation generation_mix_dict = {} - + # croppping the database according to the current fuel being considered + #Not choosing the Hawaiian and Alaskan regions. us_database = create_generation_mix_process_df_from_egrid_ref_data(subregion='US') #Not choosing the Hawaiian and Alaskan regions. - us_database = us_database[(us_database['Subregion'] != 'HIMS') & (us_database['Subregion'] != 'HIOA') & (us_database['Subregion'] != 'AKGD') & (us_database['Subregion'] != 'AKMS')] + excluded_regions = ['HIMS','HIOA','AKGD','AKMS'] + us_database=us_database.loc[~us_database["Subregion"].isin(excluded_regions),:] df2 = us_database.groupby(['FuelCategory'])['Electricity'].agg('sum').reset_index() df2['Electricity_fuel_total'] = df2['Electricity'] del df2['Electricity'] @@ -391,7 +393,7 @@ def olcaschema_usaverage(database, gen_dict, subregion=None): # fuelname = row['Fuelname'] # croppping the database according to the current fuel being considered #Not choosing the Hawaiian and Alaskan regions. - if reg == 'HIMS' or reg == 'HIOA' or reg == 'AKGD' or reg == 'AKMS': + if reg in excluded_regions: continue else: database_f1 = database_reg[ From 5e7403b62e28b8a85945d5656c49d1cbb49162db Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Wed, 19 Aug 2020 19:56:39 -0600 Subject: [PATCH 13/14] Updated generation_mix.py with spaces problems for 3 lines from 349 to 351 --- electricitylci/generation_mix.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index c84a30ec..7f7d2f7d 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -347,9 +347,9 @@ def olcaschema_genmix(database, gen_dict, subregion=None): ) ra["quantitativeReference"] = False ra["provider"] = { - "name": matching_dict["name"], - "@id": matching_dict["uuid"], - "category": matching_dict["category"].split("/"), + "name": matching_dict["name"], + "@id": matching_dict["uuid"], + "category": matching_dict["category"].split("/"), } #if matching_dict is None: exchange(ra, exchanges_list) From cb55d62015de76b35050f423ee5a370250a1dc0d Mon Sep 17 00:00:00 2001 From: "Ghosh, Tapajyoti" Date: Wed, 19 Aug 2020 20:03:19 -0600 Subject: [PATCH 14/14] moving excluded regions to a parameter variable --- electricitylci/generation_mix.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/electricitylci/generation_mix.py b/electricitylci/generation_mix.py index 7f7d2f7d..43841115 100644 --- a/electricitylci/generation_mix.py +++ b/electricitylci/generation_mix.py @@ -361,15 +361,14 @@ def olcaschema_genmix(database, gen_dict, subregion=None): return generation_mix_dict -def olcaschema_usaverage(database, gen_dict, subregion=None): +def olcaschema_usaverage(database, gen_dict, subregion=None, excluded_regions = ['HIMS','HIOA','AKGD','AKMS']): if subregion is None: subregion = model_specs.regional_aggregation generation_mix_dict = {} # croppping the database according to the current fuel being considered #Not choosing the Hawaiian and Alaskan regions. us_database = create_generation_mix_process_df_from_egrid_ref_data(subregion='US') - #Not choosing the Hawaiian and Alaskan regions. - excluded_regions = ['HIMS','HIOA','AKGD','AKMS'] + #Not choosing the Hawaiian and Alaskan regions. us_database=us_database.loc[~us_database["Subregion"].isin(excluded_regions),:] df2 = us_database.groupby(['FuelCategory'])['Electricity'].agg('sum').reset_index() df2['Electricity_fuel_total'] = df2['Electricity']