Skip to content

Commit

Permalink
EODC
Browse files Browse the repository at this point in the history
  • Loading branch information
romainsacchi committed Dec 7, 2023
1 parent b9f0956 commit e649a1d
Show file tree
Hide file tree
Showing 16 changed files with 371 additions and 36 deletions.
24 changes: 15 additions & 9 deletions premise/data_collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import xarray as xr
import yaml
from cryptography.fernet import Fernet
from prettytable import PrettyTable

from .filesystem_constants import DATA_DIR, IAM_OUTPUT_DIR, VARIABLES_DIR
from .marginal_mixes import consequential_method
Expand All @@ -41,6 +42,17 @@
COAL_POWER_PLANTS_DATA = DATA_DIR / "electricity" / "coal_power_emissions_2012_v1.csv"


def print_missing_variables(missing_vars):
if missing_vars:
print(
f"The following variables are missing from the IAM file:"
)
table = PrettyTable(["Variable", ])
for v in missing_vars:
table.add_row([v])
print(table)


def get_delimiter(data=None, filepath=None):
sniffer = csv.Sniffer()
if filepath:
Expand Down Expand Up @@ -773,9 +785,7 @@ def __fetch_market_data(
missing_vars = set(input_vars.values()) - set(data.variables.values)

if missing_vars:
print(
f"The following variables are missing from the IAM file: {list(missing_vars)}"
)
print_missing_variables(missing_vars)

available_vars = list(set(input_vars.values()) - missing_vars)

Expand Down Expand Up @@ -844,9 +854,7 @@ def get_iam_efficiencies(
if efficiency_labels:
missing_vars = set(efficiency_labels.values()) - set(data.variables.values)
if missing_vars:
print(
f"The following variables are missing from the IAM file: {list(missing_vars)}"
)
print_missing_variables(missing_vars)

available_vars = list(set(efficiency_labels.values()) - missing_vars)
rev_eff_labels = {v: k for k, v in efficiency_labels.items()}
Expand Down Expand Up @@ -1082,9 +1090,7 @@ def __get_iam_production_volumes(
missing_vars = set(input_vars.values()) - set(data.variables.values)

if missing_vars:
print(
f"The following variables are missing from the IAM file: {list(missing_vars)}"
)
print_missing_variables(missing_vars)

available_vars = list(set(input_vars.values()) - missing_vars)

Expand Down
10 changes: 7 additions & 3 deletions premise/ecoinvent_modification.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,9 +367,13 @@ def check_scenarios(scenario: dict, key: bytes) -> dict:
# Note: A directory path, not a file path
scenario["filepath"] = IAM_OUTPUT_DIR
if key is None:
raise ValueError(
"You need to provide the encryption key to decrypt the IAM output files provided by `premise`."
)
print("Reading unencrypted IAM output files.")
else:
# make sure that the key is 44 bytes long
if len(key) != 44:
raise ValueError(
f"The key must be 44 bytes long, not {len(key)} bytes."
)

scenario["model"] = check_model_name(scenario["model"])
scenario["pathway"] = check_pathway_name(
Expand Down
2 changes: 1 addition & 1 deletion premise/fuels.py
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,7 @@ def generate_hydrogen_activities(self) -> None:
for exc in dataset["exchanges"]
if exc["unit"] == hydrogen_feedstock_unit
and hydrogen_feedstock_name in exc["name"]
and exc["type"] == "technosphere"
and exc["type"] != "production"
)

# add it to "log parameters"
Expand Down
2 changes: 2 additions & 0 deletions premise/iam_variables_mapping/biomass_variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ biomass crops - purpose grown:
message: Primary Energy|Biomass|Energy Crops
remind: SE|Electricity|Biomass|Energy Crops
tiam: Primary Energy|Biomass|Energy Crops
gcam: Production|Energy|Biomass|Energy Crops
ecoinvent_aliases:
fltr:
name: market for wood chips
Expand All @@ -25,6 +26,7 @@ biomass - residual:
image: Primary Energy|Biomass|Residues
remind: SE|Electricity|Biomass|Residues
tiam: Primary Energy|Biomass|Residues
gcam: Production|Energy|Biomass|Residues
ecoinvent_aliases:
fltr:
name: supply of forest residue
Expand Down
19 changes: 19 additions & 0 deletions premise/iam_variables_mapping/carbon_capture_variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ cement - co2:
- Carbon Sequestration|CCS|Industrial Processes
- Emissions|CO2|Industrial Processes|Non-Metallic Minerals|Cement
- Emissions|CO2|Energy|Demand|Industry|Non-Metallic Minerals|Cement
gcam:
- Emissions|CO2|Industry|Cement|Gross|Cement
cement - cco2:
iam_aliases:
remind:
Expand All @@ -22,14 +24,31 @@ cement - cco2:
image: Emissions|CO2|Industry|Cement|Sequestered
message:
- CCS|Industry|Industrial Processes|Non-Metallic Minerals
gcam:
- Emissions|CO2|Industry|Cement|Sequestered|Cement CCS
steel - co2:
iam_aliases:
remind:
- Emi|CO2|Energy|Demand|Industry|++|Steel
- Carbon Management|Carbon Capture|Industry Energy|Steel
image: Emissions|CO2|Industry|Steel|Gross
gcam:
- Emissions|CO2|Industry|Steel|Gross|BLASTFUR
- Emissions|CO2|Industry|Steel|Gross|BLASTFUR CCS
- Emissions|CO2|Industry|Steel|Gross|BLASTFUR CCS with hydrogen
- Emissions|CO2|Industry|Steel|Gross|BLASTFUR with hydrogen
- Emissions|CO2|Industry|Steel|Gross|Biomass-based
- Emissions|CO2|Industry|Steel|Gross|EAF with DRI
- Emissions|CO2|Industry|Steel|Gross|EAF with DRI CCS
- Emissions|CO2|Industry|Steel|Gross|EAF with scrap
- Emissions|CO2|Industry|Steel|Gross|EAF with scrap CCS
steel - cco2:
iam_aliases:
remind:
- Carbon Management|Carbon Capture|Industry Energy|Steel
image: Emissions|CO2|Industry|Steel|Sequestered
gcam:
- Emissions|CO2|Industry|Steel|Sequestered|BLASTFUR CCS
- Emissions|CO2|Industry|Steel|Sequestered|BLASTFUR CCS with hydrogen
- Emissions|CO2|Industry|Steel|Sequestered|EAF with DRI CCS
- Emissions|CO2|Industry|Steel|Sequestered|EAF with scrap CCS
7 changes: 7 additions & 0 deletions premise/iam_variables_mapping/cement_variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ cement, dry feed rotary kiln:
remind: Production|Industry|Cement
image: Production|Industry|Cement|Dry feed rotary kiln
message: Production|Non-Metallic Minerals|Cement
gcam: Production|Industry|Cement
energy_use_aliases:
remind: FE|Industry|+++|Cement
image:
Expand All @@ -28,6 +29,12 @@ cement, dry feed rotary kiln:
- Final Energy|Industry|Non-Metallic Minerals|Cement|Solar
- Final Energy|Industry|Non-Metallic Minerals|Cement|Solids|Biomass
- Final Energy|Industry|Non-Metallic Minerals|Cement|Solids|Coal
gcam:
- Final Energy|Industry|Cement|Electricity
- Final Energy|Industry|Cement|Coal
- Final Energy|Industry|Cement|Gas
- Final Energy|Industry|Cement|Biomass
- Final Energy|Industry|Cement|Refined Liquids

eff_aliases:
remind: FE|Industry|Specific Energy Consumption|Cement
Expand Down
37 changes: 37 additions & 0 deletions premise/iam_variables_mapping/constants.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ SUPPORTED_MODELS:
- image
- message
- tiam
- gcam

SUPPORTED_PATHWAYS:
- SSP2-Base
Expand Down Expand Up @@ -127,6 +128,42 @@ LIST_TIAM_REGIONS:
- WEU
- World

LIST_GCAM_REGIONS:
- Africa_Eastern
- Africa_Northern
- Africa_Southern
- Africa_Western
- Argentina
- Australia_NZ
- Brazil
- Canada
- Central America and Caribbean
- Central Asia
- China
- Colombia
- EU-12
- EU-15
- Europe_Eastern
- European Free Trade Association
- Europe_Non_EU
- India
- Indonesia
- Japan
- Mexico
- Middle East
- Pakistan
- Russia
- South Africa
- South America_Northern
- South America_Southern
- South Asia
- Southeast Asia
- South Korea
- Taiwan
- USA
- World


PREFERRED_IAM_ORDER:
- NEU
- JPN
Expand Down
27 changes: 26 additions & 1 deletion premise/iam_variables_mapping/crops_variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,15 @@ sugar:
message:
temperate: sugarbeet
tropical: sugarcane
gcam:
temperate: sugarbeet
tropical: sugarcane
land_use:
image: Land Use|Marginal|Biomass|Sugar
gcam: Land Use|Average|Biomass|Sugar
land_use_change:
image: Emission Factor|CO2|Energy|Supply|Biomass|Marginal|Sugar
gcam: Emission Factor|CO2|Land Use Change|Average|Biomass|Sugar
oil:
crop_type:
image:
Expand All @@ -28,10 +33,15 @@ oil:
message:
temperate: rapeseed
tropical: palm oil
gcam:
temperate: rapeseed
tropical: palm oil
land_use:
image: Land Use|Marginal|Biomass|OilCrop
gcam: Land Use|Average|Biomass|Oilcrops
land_use_change:
image: Emission Factor|CO2|Energy|Supply|Biomass|Marginal|Oilcrops
gcam: Emission Factor|CO2|Land Use Change|Average|Biomass|Oilcrops
wood:
crop_type:
image:
Expand All @@ -43,10 +53,15 @@ wood:
message:
temperate: poplar
tropical: eucalyptus
gcam:
temperate: poplar
tropical: eucalyptus
land_use:
image: Land Use|Marginal|Biomass|Woody
gcam: Land Use|Average|Biomass|Wood
land_use_change:
image: Emission Factor|CO2|Energy|Supply|Biomass|Marginal|Woody
gcam: Emission Factor|CO2|Land Use Change|Average|Biomass|Wood
grass:
crop_type:
image:
Expand All @@ -58,10 +73,15 @@ grass:
message:
temperate: switchgrass
tropical: miscanthus
gcam:
temperate: switchgrass
tropical: miscanthus
land_use:
image: Land Use|Marginal|Biomass|Grassy
gcam: Land Use|Average|Biomass|Grass
land_use_change:
image: Emission Factor|CO2|Energy|Supply|Biomass|Marginal|Grassy
gcam: Emission Factor|CO2|Land Use Change|Average|Biomass|Grass
grain:
crop_type:
image:
Expand All @@ -73,7 +93,12 @@ grain:
message:
temperate: corn
tropical: corn
gcam:
temperate: corn
tropical: corn
land_use:
image: Land Use|Marginal|Biomass|Maize
gcam: Land Use|Average|Biomass|Maize
land_use_change:
image: Emission Factor|CO2|Energy|Supply|Biomass|Marginal|Maize
image: Emission Factor|CO2|Energy|Supply|Biomass|Marginal|Maize
gcam: Emission Factor|CO2|Land Use Change|Average|Biomass|Maize
Loading

0 comments on commit e649a1d

Please sign in to comment.