{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Time-explicit LCA of an electric vehicle\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook contains the code for the exemplary case study of out paper on time-explicit LCA. Here, we do a time-explicit LCA of the life cycle of an electric vehicle (EV) and compare the results to the results from static and dynamic LCAs.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import bw2data as bd\n", "\n", "bd.projects.set_current(\"timex\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Case study setup\n", "\n", "### Database setup\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we set up the databases we need, starting with a new empty foreground database:\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "if \"foreground\" in bd.databases:\n", " del bd.databases[\"foreground\"] # to make sure we create the foreground from scratch\n", "foreground = bd.Database(\"foreground\")\n", "foreground.register()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we load our prospective background databases. In this study, we use data from [ecoinvent v3.10](https://ecoinvent.org/), and create a set of prospective databases with [`premise`](https://github.com/polca/premise). We applied projections for the future electricity sectors using the SSP2-RCP19 pathway from the IAM IMAGE.\n", "In the [premise documentation](https://premise.readthedocs.io/en/latest/) you can find instructions for the creation of prospective background databases.\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "db_2020 = bd.Database(\"ei310_IMAGE_SSP2_RCP19_2020_electricity\")\n", "db_2030 = bd.Database(\"ei310_IMAGE_SSP2_RCP19_2030_electricity\")\n", "db_2040 = bd.Database(\"ei310_IMAGE_SSP2_RCP19_2040_electricity\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Modeling the production system\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this study, we consider the following production system for the EV. Purple boxes are foreground, cyan boxes are background (i.e., ecoinvent/premise).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{mermaid}\n", "flowchart LR\n", " glider_production(glider production):::ei-->ev_production\n", " powertrain_production(powertrain production):::ei-->ev_production\n", " battery_production(battery production):::ei-->ev_production\n", " ev_production(ev production):::fg-->driving\n", " electricity_generation(electricity generation):::ei-->driving\n", " driving(driving):::fg-->used_ev\n", " used_ev(used ev):::fg-->glider_eol(glider eol):::ei\n", " used_ev-->powertrain_eol(powertrain eol):::ei\n", " used_ev-->battery_eol(battery eol):::ei\n", "\n", " classDef ei color:#222832, fill:#3fb1c5, stroke:none;\n", " classDef fg color:#222832, fill:#9c5ffd, stroke:none;\n", "```\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For our EV model, we make the following assumptions:\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "LIFETIME = 16 # years\n", "MILEAGE = 150_000 # km\n", "ELECTRICITY_CONSUMPTION = 0.2 # kWh/km\n", "\n", "# Overall mass: 1200 kg\n", "MASS_GLIDER = 840 # kg\n", "MASS_POWERTRAIN = 80 # kg\n", "MASS_BATTERY = 280 # kg" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we create the foreground processes:\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "ev_production = foreground.new_node(\n", " \"ev_production\", name=\"production of an electric vehicle\", unit=\"unit\"\n", ")\n", "ev_production[\"reference product\"] = \"electric vehicle\"\n", "ev_production.save()\n", "\n", "driving = foreground.new_node(\n", " \"driving\", name=\"driving an electric vehicle\", unit=\"transport over an ev lifetime\"\n", ")\n", "driving[\"reference product\"] = \"transport\"\n", "driving.save()\n", "\n", "used_ev = foreground.new_node(\"used_ev\", name=\"used electric vehicle\", unit=\"unit\")\n", "used_ev[\"reference product\"] = \"used electric vehicle\"\n", "used_ev.save()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We take the actual process data from ecoinvent. However, the ecoinvent processes for the EV part production contain intermediate flows for the end of life treatment in the production processes already, which we want to separate. We fix this first by creating new processes without the EOL:\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "for db in [db_2020, db_2030, db_2040]:\n", " for code in [\n", " \"glider_production_without_eol\",\n", " \"powertrain_production_without_eol\",\n", " \"battery_production_without_eol\",\n", " ]:\n", " try:\n", " act = db.get(code=code)\n", " act.delete()\n", " except:\n", " pass\n", "\n", " glider_production = db.get(name=\"glider production, passenger car\")\n", " glider_production_without_eol = glider_production.copy(\n", " code=\"glider_production_without_eol\", database=db.name\n", " )\n", " glider_production_without_eol[\"name\"] = (\n", " \"glider production, passenger car, without EOL\"\n", " )\n", " glider_production_without_eol.save()\n", " for exc in glider_production_without_eol.exchanges():\n", " if exc.input[\"name\"] == \"market for used glider, passenger car\":\n", " exc.delete()\n", "\n", " powertrain_production = db.get(\n", " name=\"powertrain production, for electric passenger car\"\n", " )\n", " powertrain_production_without_eol = powertrain_production.copy(\n", " code=\"powertrain_production_without_eol\", database=db.name\n", " )\n", " powertrain_production_without_eol[\"name\"] = (\n", " \"powertrain production, for electric passenger car, without EOL\"\n", " )\n", " powertrain_production_without_eol.save()\n", " for exc in powertrain_production_without_eol.exchanges():\n", " if (\n", " exc.input[\"name\"]\n", " == \"market for used powertrain from electric passenger car, manual dismantling\"\n", " ):\n", " exc.delete()\n", "\n", " battery_production = db.get(\n", " name=\"battery production, Li-ion, LiMn2O4, rechargeable, prismatic\"\n", " )\n", " battery_production_without_eol = battery_production.copy(\n", " code=\"battery_production_without_eol\", database=db.name\n", " )\n", " battery_production_without_eol[\"name\"] = (\n", " \"battery production, Li-ion, LiMn2O4, rechargeable, prismatic, without EOL\"\n", " )\n", " battery_production_without_eol.save()\n", " # For the battery, some waste treatment is buried in the process \"battery cell production, Li-ion,\n", " # LiMn2O4\" - but not for the whole mass of the battery(?). For simplicity, we just leave it in there." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we add the intermediate flows, starting with the EV production:\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "glider_production = db_2020.get(code=\"glider_production_without_eol\")\n", "powertrain_production = db_2020.get(code=\"powertrain_production_without_eol\")\n", "battery_production = db_2020.get(code=\"battery_production_without_eol\")\n", "\n", "ev_production.new_edge(input=ev_production, amount=1, type=\"production\").save()\n", "\n", "glider_to_ev = ev_production.new_edge(\n", " input=glider_production, amount=MASS_GLIDER, type=\"technosphere\"\n", ")\n", "powertrain_to_ev = ev_production.new_edge(\n", " input=powertrain_production, amount=MASS_POWERTRAIN, type=\"technosphere\"\n", ")\n", "battery_to_ev = ev_production.new_edge(\n", " input=battery_production, amount=MASS_BATTERY, type=\"technosphere\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "... the EOL:\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "glider_eol = db_2020.get(name=\"treatment of used glider, passenger car, shredding\")\n", "powertrain_eol = db_2020.get(\n", " name=\"treatment of used powertrain for electric passenger car, manual dismantling\"\n", ")\n", "battery_eol = db_2020.get(name=\"market for used Li-ion battery\")\n", "\n", "used_ev.new_edge(\n", " input=used_ev, amount=-1, type=\"production\"\n", ").save() # -1 as this gets rid of a used car\n", "\n", "used_ev_to_glider_eol = used_ev.new_edge(\n", " input=glider_eol,\n", " amount=-MASS_GLIDER,\n", " type=\"technosphere\",\n", ")\n", "used_ev_to_powertrain_eol = used_ev.new_edge(\n", " input=powertrain_eol,\n", " amount=-MASS_POWERTRAIN,\n", " type=\"technosphere\",\n", ")\n", "used_ev_to_battery_eol = used_ev.new_edge(\n", " input=battery_eol,\n", " amount=-MASS_BATTERY,\n", " type=\"technosphere\",\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...and, finally, driving:\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "electricity_production = db_2020.get(\n", " name=\"market group for electricity, low voltage\", location=\"WEU\"\n", ")\n", "\n", "driving.new_edge(input=driving, amount=1, type=\"production\").save()\n", "\n", "driving_to_used_ev = driving.new_edge(input=used_ev, amount=-1, type=\"technosphere\")\n", "ev_to_driving = driving.new_edge(input=ev_production, amount=1, type=\"technosphere\")\n", "electricity_to_driving = driving.new_edge(\n", " input=electricity_production,\n", " amount=ELECTRICITY_CONSUMPTION * MILEAGE,\n", " type=\"technosphere\",\n", ")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "glider_to_ev.save()\n", "powertrain_to_ev.save()\n", "battery_to_ev.save()\n", "ev_to_driving.save()\n", "electricity_to_driving.save()\n", "driving_to_used_ev.save()\n", "used_ev_to_glider_eol.save()\n", "used_ev_to_powertrain_eol.save()\n", "used_ev_to_battery_eol.save()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To allow a comparison with a static LCA later, we calculate the radiative forcing results at this point, before temporalization:\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/timodiepers/anaconda3/envs/timex/lib/python3.11/site-packages/scikits/umfpack/umfpack.py:736: UmfpackWarning: (almost) singular matrix! (estimated cond. number: 3.13e+13)\n", " warnings.warn(msg, UmfpackWarning)\n", "\u001b[32m2025-02-07 10:18:19.799\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timex_lca\u001b[0m:\u001b[36mbuild_timeline\u001b[0m:\u001b[36m216\u001b[0m - \u001b[1mNo edge filter function provided. Skipping all edges in background databases.\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Starting graph traversal\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m2025-02-07 10:18:23.932\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.934\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.934\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.934\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.934\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.934\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n", "\u001b[32m2025-02-07 10:18:23.935\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mbw_timex.timeline_builder\u001b[0m:\u001b[36mget_weights_for_interpolation_between_nearest_years\u001b[0m:\u001b[36m522\u001b[0m - \u001b[1mReference date 2024-01-01 00:00:00 is higher than all provided dates. Data will be taken from the closest lower year.\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Calculation count: 9\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/timodiepers/anaconda3/envs/timex/lib/python3.11/site-packages/bw2calc/lca_base.py:127: SparseEfficiencyWarning: splu converted its input to CSC format\n", " self.solver = factorized(self.technosphere_matrix)\n", "/Users/timodiepers/anaconda3/envs/timex/lib/python3.11/site-packages/scikits/umfpack/umfpack.py:736: UmfpackWarning: (almost) singular matrix! (estimated cond. number: 1.86e+12)\n", " warnings.warn(msg, UmfpackWarning)\n", "/Users/timodiepers/anaconda3/envs/timex/lib/python3.11/site-packages/scikits/umfpack/umfpack.py:736: UmfpackWarning: (almost) singular matrix! (estimated cond. number: 1.86e+12)\n", " warnings.warn(msg, UmfpackWarning)\n", "/Users/timodiepers/anaconda3/envs/timex/lib/python3.11/site-packages/dynamic_characterization/dynamic_characterization.py:81: UserWarning: No custom dynamic characterization functions provided. Using default dynamic characterization functions. The flows that are characterized are based on the selection of the initially chosen impact category. You can look up the mapping in the bw_timex.dynamic_characterizer.characterization_functions.\n", " warnings.warn(\n" ] }, { "data": { "text/html": [ "
| \n", " | date | \n", "amount | \n", "flow | \n", "activity | \n", "
|---|---|---|---|---|
| 0 | \n", "2024-12-31 05:49:12 | \n", "-4.771888e-17 | \n", "3269 | \n", "109673 | \n", "
| 1 | \n", "2024-12-31 05:49:12 | \n", "-1.887051e-17 | \n", "3269 | \n", "109674 | \n", "
| 2 | \n", "2024-12-31 05:49:12 | \n", "-6.949656e-18 | \n", "3211 | \n", "109669 | \n", "
| 3 | \n", "2024-12-31 05:49:12 | \n", "-4.256251e-18 | \n", "3269 | \n", "109675 | \n", "
| 4 | \n", "2024-12-31 05:49:12 | \n", "-4.007917e-18 | \n", "3211 | \n", "109673 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 37204 | \n", "2123-01-01 00:10:48 | \n", "5.735388e-13 | \n", "107 | \n", "109669 | \n", "
| 37205 | \n", "2123-01-01 00:10:48 | \n", "9.472615e-13 | \n", "1034 | \n", "109673 | \n", "
| 37206 | \n", "2123-01-01 00:10:48 | \n", "1.051160e-12 | \n", "1031 | \n", "109675 | \n", "
| 37207 | \n", "2123-01-01 00:10:48 | \n", "1.773673e-12 | \n", "1031 | \n", "109673 | \n", "
| 37208 | \n", "2123-01-01 00:10:48 | \n", "6.377169e-12 | \n", "1031 | \n", "109669 | \n", "
37209 rows × 4 columns
\n", "| \n", " | date | \n", "amount | \n", "flow | \n", "activity | \n", "
|---|---|---|---|---|
| 0 | \n", "2023-01-01 05:49:12 | \n", "-2.672257e-17 | \n", "3269 | \n", "109667 | \n", "
| 1 | \n", "2023-01-01 05:49:12 | \n", "-6.680643e-18 | \n", "3269 | \n", "109666 | \n", "
| 2 | \n", "2023-01-01 05:49:12 | \n", "-2.244433e-18 | \n", "3211 | \n", "109667 | \n", "
| 3 | \n", "2023-01-01 05:49:12 | \n", "-5.611083e-19 | \n", "3211 | \n", "109666 | \n", "
| 4 | \n", "2023-01-01 05:49:12 | \n", "2.799755e-41 | \n", "1152 | \n", "109666 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 154149 | \n", "2139-01-01 00:10:48 | \n", "1.727540e-14 | \n", "1034 | \n", "109696 | \n", "
| 154150 | \n", "2139-01-01 00:10:48 | \n", "2.581032e-14 | \n", "107 | \n", "109696 | \n", "
| 154151 | \n", "2139-01-01 00:10:48 | \n", "4.551497e-14 | \n", "1031 | \n", "109698 | \n", "
| 154152 | \n", "2139-01-01 00:10:48 | \n", "1.596721e-13 | \n", "1031 | \n", "109696 | \n", "
| 154153 | \n", "2139-01-01 00:10:48 | \n", "2.789117e-13 | \n", "107 | \n", "109698 | \n", "
154154 rows × 4 columns
\n", "| \n", " | date_producer | \n", "producer_name | \n", "date_consumer | \n", "consumer_name | \n", "amount | \n", "temporal_market_shares | \n", "
|---|---|---|---|---|---|---|
| 0 | \n", "2021-10-01 | \n", "glider production, passenger car, without EOL | \n", "2023-10-01 | \n", "production of an electric vehicle | \n", "588.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 1 | \n", "2021-11-01 | \n", "glider production, passenger car, without EOL | \n", "2023-11-01 | \n", "production of an electric vehicle | \n", "588.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 2 | \n", "2022-10-01 | \n", "glider production, passenger car, without EOL | \n", "2023-10-01 | \n", "production of an electric vehicle | \n", "84.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 3 | \n", "2022-10-01 | \n", "powertrain production, for electric passenger ... | \n", "2023-10-01 | \n", "production of an electric vehicle | \n", "80.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 4 | \n", "2022-10-01 | \n", "battery production, Li-ion, LiMn2O4, rechargea... | \n", "2023-10-01 | \n", "production of an electric vehicle | \n", "280.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 5 | \n", "2022-11-01 | \n", "glider production, passenger car, without EOL | \n", "2023-11-01 | \n", "production of an electric vehicle | \n", "84.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 6 | \n", "2022-11-01 | \n", "powertrain production, for electric passenger ... | \n", "2023-11-01 | \n", "production of an electric vehicle | \n", "80.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 7 | \n", "2022-11-01 | \n", "battery production, Li-ion, LiMn2O4, rechargea... | \n", "2023-11-01 | \n", "production of an electric vehicle | \n", "280.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 8 | \n", "2023-10-01 | \n", "glider production, passenger car, without EOL | \n", "2023-10-01 | \n", "production of an electric vehicle | \n", "168.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 9 | \n", "2023-10-01 | \n", "production of an electric vehicle | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "0.2 | \n", "None | \n", "
| 10 | \n", "2023-11-01 | \n", "glider production, passenger car, without EOL | \n", "2023-11-01 | \n", "production of an electric vehicle | \n", "168.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 11 | \n", "2023-11-01 | \n", "production of an electric vehicle | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "0.8 | \n", "None | \n", "
| 12 | \n", "2024-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 13 | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "2024-01-01 | \n", "-1 | \n", "1.0 | \n", "None | \n", "
| 14 | \n", "2025-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 15 | \n", "2026-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 16 | \n", "2027-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 17 | \n", "2028-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 18 | \n", "2029-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2020_electricity': 0.... | \n", "
| 19 | \n", "2030-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 1} | \n", "
| 20 | \n", "2031-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 21 | \n", "2032-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 22 | \n", "2033-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 23 | \n", "2034-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 24 | \n", "2035-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 25 | \n", "2036-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 26 | \n", "2037-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 27 | \n", "2038-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 28 | \n", "2039-01-01 | \n", "market group for electricity, low voltage | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "1875.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2030_electricity': 0.... | \n", "
| 29 | \n", "2040-01-01 | \n", "used electric vehicle | \n", "2024-01-01 | \n", "driving an electric vehicle | \n", "-1.0 | \n", "None | \n", "
| 30 | \n", "2040-04-01 | \n", "market for used Li-ion battery | \n", "2040-01-01 | \n", "used electric vehicle | \n", "-280.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2040_electricity': 1} | \n", "
| 31 | \n", "2040-04-01 | \n", "treatment of used powertrain for electric pass... | \n", "2040-01-01 | \n", "used electric vehicle | \n", "-80.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2040_electricity': 1} | \n", "
| 32 | \n", "2040-04-01 | \n", "treatment of used glider, passenger car, shred... | \n", "2040-01-01 | \n", "used electric vehicle | \n", "-840.0 | \n", "{'ei310_IMAGE_SSP2_RCP19_2040_electricity': 1} | \n", "
| \n", " | date | \n", "amount | \n", "flow | \n", "activity | \n", "
|---|---|---|---|---|
| 0 | \n", "2022-01-01 | \n", "-1.621040e-02 | \n", "3269 | \n", "109667 | \n", "
| 1 | \n", "2022-01-01 | \n", "-4.052738e-03 | \n", "3269 | \n", "109666 | \n", "
| 2 | \n", "2022-01-01 | \n", "-1.374486e-03 | \n", "3211 | \n", "109667 | \n", "
| 3 | \n", "2022-01-01 | \n", "-3.434914e-04 | \n", "3211 | \n", "109666 | \n", "
| 4 | \n", "2022-01-01 | \n", "1.394444e-26 | \n", "1152 | \n", "109666 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2286 | \n", "2040-01-01 | \n", "1.465837e+01 | \n", "1390 | \n", "109698 | \n", "
| 2287 | \n", "2040-01-01 | \n", "2.631662e+01 | \n", "107 | \n", "109696 | \n", "
| 2288 | \n", "2040-01-01 | \n", "3.588365e+01 | \n", "1031 | \n", "109698 | \n", "
| 2289 | \n", "2040-01-01 | \n", "5.361418e+01 | \n", "1031 | \n", "109696 | \n", "
| 2290 | \n", "2040-01-01 | \n", "3.962367e+02 | \n", "107 | \n", "109698 | \n", "
2291 rows × 4 columns
\n", "| \n", " | date | \n", "amount | \n", "flow | \n", "activity | \n", "
|---|---|---|---|---|
| 0 | \n", "2023-01-01 05:49:12 | \n", "-2.670181e-17 | \n", "3269 | \n", "109667 | \n", "
| 1 | \n", "2023-01-01 05:49:12 | \n", "-6.675680e-18 | \n", "3269 | \n", "109666 | \n", "
| 2 | \n", "2023-01-01 05:49:12 | \n", "-2.264057e-18 | \n", "3211 | \n", "109667 | \n", "
| 3 | \n", "2023-01-01 05:49:12 | \n", "-5.657999e-19 | \n", "3211 | \n", "109666 | \n", "
| 4 | \n", "2023-01-01 05:49:12 | \n", "2.799797e-41 | \n", "1152 | \n", "109666 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 154146 | \n", "2139-01-01 00:10:48 | \n", "4.878320e-15 | \n", "1034 | \n", "109696 | \n", "
| 154147 | \n", "2139-01-01 00:10:48 | \n", "1.843442e-14 | \n", "107 | \n", "109696 | \n", "
| 154148 | \n", "2139-01-01 00:10:48 | \n", "2.513599e-14 | \n", "1031 | \n", "109698 | \n", "
| 154149 | \n", "2139-01-01 00:10:48 | \n", "3.755597e-14 | \n", "1031 | \n", "109696 | \n", "
| 154150 | \n", "2139-01-01 00:10:48 | \n", "2.775582e-13 | \n", "107 | \n", "109698 | \n", "
154151 rows × 4 columns
\n", "