Skip to content

Commit

Permalink
EODC
Browse files Browse the repository at this point in the history
  • Loading branch information
romainsacchi authored and romainsacchi committed Jul 16, 2024
1 parent f8b01ed commit 89f1695
Show file tree
Hide file tree
Showing 14 changed files with 1,520 additions and 513 deletions.
630 changes: 567 additions & 63 deletions dev/Untitled1.ipynb

Large diffs are not rendered by default.

30 changes: 17 additions & 13 deletions premise/battery.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from .filesystem_constants import DATA_DIR
from .logger import create_logger
from .transformation import BaseTransformation, IAMDataCollection, List, np, ws
from .utils import rescale_exchanges

logger = create_logger("battery")

Expand Down Expand Up @@ -97,7 +98,7 @@ def adjust_battery_mass(self) -> None:

energy_density = load_cell_energy_density()

filters = [ws.contains("name", x) for x in energy_density]
filters = [ws.contains("name", x) for x in energy_density if "battery capacity" not in x]

for ds in ws.get_many(
self.database,
Expand All @@ -110,6 +111,7 @@ def adjust_battery_mass(self) -> None:
"battery production",
"battery cell production",
"cell module production",
"battery capacity"
]
]
)
Expand Down Expand Up @@ -143,27 +145,29 @@ def adjust_battery_mass(self) -> None:
self.database,
ws.contains("name", "market for battery capacity"),
):

for exc in ws.technosphere(ds, ws.either(*filters)):
name = [x for x in energy_density if x in exc["name"]][0]

scaling_factor = energy_density[name][2020] / np.clip(
if ds["name"] in energy_density:
scaling_factor = energy_density[ds["name"]][2020] / np.clip(
np.interp(
self.year,
list(energy_density[name].keys()),
list(energy_density[name].values()),
list(energy_density[ds["name"]].keys()),
list(energy_density[ds["name"]].values()),
),
0.1,
0,
0.5,
)

if "log parameters" not in ds:
ds["log parameters"] = {}

ds["log parameters"]["battery input"] = exc["name"]
ds["log parameters"]["old battery mass"] = exc["amount"]
exc["amount"] *= scaling_factor
ds["log parameters"]["new battery mass"] = exc["amount"]
ds["log parameters"]["battery input"] = [e["name"] for e in ws.technosphere(ds, ws.contains("name", "market for battery"))][0]
ds["log parameters"]["old battery mass"] = sum(e["amount"] for e in ws.technosphere(ds, ws.contains("name", "market for battery")))

rescale_exchanges(
ds,
scaling_factor
)

ds["log parameters"]["new battery mass"] = sum(e["amount"] for e in ws.technosphere(ds, ws.contains("name", "market for battery")))

self.write_log(ds, status="modified")

Expand Down
Loading

0 comments on commit 89f1695

Please sign in to comment.