Fehler mit Brightway2 + Prämisse. „ValueError: Für ENTSO-E konnte kein Äquivalent gefunden werden“ auf NewDatabase.updatPython

Python-Programme
Anonymous
 Fehler mit Brightway2 + Prämisse. „ValueError: Für ENTSO-E konnte kein Äquivalent gefunden werden“ auf NewDatabase.updat

Post by Anonymous »

Ich versuche, Code auszuführen, der in diesem Dokument verwendet wurde, um eine Ökobilanz und szenariobasierte Vorhersagen für die Umweltauswirkungen des Konsums digitaler Inhalte zu erstellen. Der Code verwendet die Pakete Brightway2 und Premise sowie die Datenbanken Ecoinvent und Biosphere sowie einige bereitgestellte Excel-Daten.
Der Fehler tritt auf, wenn Premise zum Erstellen zukünftiger Szenarien mit seiner Funktion „NewDatabase.update_all()“ verwendet wird. Es beginnt mit der Funktion „ecoinvent_to_iam_location()“ und dem Fehler, der scheinbar jedes Mal zufällig eine andere Initiale auswählt (dieser unten zitierte Fehler hat die Meldung „Für ENTSO-E konnte kein Äquivalent gefunden werden“, aber ich habe viele verschiedene Initialen gesehen, die in diesem Fehler verwendet wurden).
Ich habe erwartet, dass dieser Schritt einfach ist, weil wir hier nur die Datenbank einrichten und in diesem Schritt einfach Szenarien auf die angegebene Datenbank anwenden, die bereits korrekt sein sollten Format. Es scheint mir, als gäbe es einen Fehler in der Formatierung oder beim Lesen der Datenbanken, der dazu führt, dass die Prämisse hier ausflippt.
Link zu dem Projekt, das ich verwende, ich musste einige Versionen der Pakete ändern, um Abhängigkeitskonflikte zu lösen:

Der Code, den wir ausführen, befindet sich in notebooks/00_Project_setup.ipynb

Hier ist der Fehler Nachricht/Traceback:

Code: Select all

ei_future.update_all()

`update_all()` will skip the following steps:
update_two_wheelers(), update_cars(), and update_buses()
If you want to update these steps, please run them separately afterwards.

////////////////// MEDIUM AND HEAVY DUTY TRUCKS ////////////////////

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[7], line 1
----> 1 ei_future.update_all()

File ~/miniconda3/envs/ef_internet/lib/python3.10/site-packages/premise/ecoinvent_modification.py:987, in NewDatabase.update_all(self)
981 print(
982     "If you want to update these steps, please run them separately afterwards."
983 )
985 # self.update_two_wheelers()
986 # self.update_cars()
--> 987 self.update_trucks()
988 # self.update_buses()
989 self.update_electricity()

File ~/miniconda3/envs/ef_internet/lib/python3.10/site-packages/premise/ecoinvent_modification.py:890, in NewDatabase.update_trucks(self)
887 for scenario in self.scenarios:
888     if "exclude" not in scenario or "update_trucks" not in scenario["exclude"]:
--> 890         trspt = Transport(
891             database=scenario["database"],
892             year=scenario["year"],
893             model=scenario["model"],
894             pathway=scenario["pathway"],
895             iam_data=scenario["iam data"],
896             version=self.version,
897             vehicle_type="truck",
898             relink=False,
899             has_fleet=True,
900         )
902         trspt.create_vehicle_markets()
903         scenario["database"] = trspt.database

File ~/miniconda3/envs/ef_internet/lib/python3.10/site-packages/premise/transport.py:436, in Transport.__init__(self, database, iam_data, model, pathway, year, version, relink, vehicle_type, has_fleet)
424 def __init__(
425     self,
426     database: List[dict],
(...)
434     has_fleet: bool,
435 ):
--> 436     super().__init__(database, iam_data, model, pathway, year)
437     self.version = version
438     self.relink = relink

File ~/miniconda3/envs/ef_internet/lib/python3.10/site-packages/premise/transformation.py:178, in BaseTransformation.__init__(self, database, iam_data, model, pathway, year, cache)
174 self.material_map: Dict[str, Set] = mapping.generate_material_map()
175 self.list_datasets: List[Tuple[str, str, str]] = get_tuples_from_database(
176     self.database
177 )
--> 178 self.ecoinvent_to_iam_loc: Dict[str, str] = {
179     loc: self.geo.ecoinvent_to_iam_location(loc)
180     for loc in self.get_ecoinvent_locs()
181 }
182 self.cache: dict = cache or {}

File ~/miniconda3/envs/ef_internet/lib/python3.10/site-packages/premise/transformation.py:179, in (.0)
174 self.material_map: Dict[str, Set] = mapping.generate_material_map()
175 self.list_datasets: List[Tuple[str, str, str]] = get_tuples_from_database(
176     self.database
177 )
178 self.ecoinvent_to_iam_loc: Dict[str, str] = {
--> 179     loc: self.geo.ecoinvent_to_iam_location(loc)
180     for loc in self.get_ecoinvent_locs()
181 }
182 self.cache: dict = cache or {}

File ~/miniconda3/envs/ef_internet/lib/python3.10/site-packages/premise/geomap.py:141, in Geomap.ecoinvent_to_iam_location(self, location)
138         return self.additional_mappings[location][self.model]
140     # likely a case of missing "EUR" region
-->  141     raise ValueError(f"Could not find equivalent for {location}.")
143 # If not, then we look for IAM regions that contain it
144 iam_location = [
145     r[1]
146     for r in self.geo.within(location)
147     if r[0] == self.model.upper() and r[1] != "World"
148 ]

ValueError: Could not find equivalent for ENTSO-E.
Hier ist der Code, der das NewDatabase-Objekt erstellt:

Code: Select all

ei_future = NewDatabase(
scenarios=[{"model": "image", "pathway":"SSP2-Base", "year":2030},
{"model": "image", "pathway":"SSP2-Base", "year":2040},
{"model": "image", "pathway":"SSP2-Base", "year":2050},

{"model": "image", "pathway":"SSP2-RCP26", "year":2030},
{"model": "image", "pathway":"SSP2-RCP26", "year":2040},
{"model": "image", "pathway":"SSP2-RCP26", "year":2050},

{"model": "image", "pathway":"SSP2-RCP19", "year":2030},
{"model": "image", "pathway":"SSP2-RCP19", "year":2040},
{"model": "image", "pathway":"SSP2-RCP19", "year":2050},
],
source_db="ecoinvent 3.8 cutoff",
source_version="3.8",
key=DECRYPTION_KEY)

Und das Ergebnis der Erstellung dieser Datenbank:

Code: Select all

premise v.(1, 3, 9)
+------------------------------------------------------------------+
| Warning                                                          |
+------------------------------------------------------------------+
| Because some of the scenarios can yield LCI databases            |
| containing net negative emission technologies (NET),             |
| it is advised to account for biogenic CO2 flows when calculating |
| Global Warming potential indicators.                             |
| `premise_gwp` provides characterization factors for such flows.  |
| It also provides factors for hydrogen emissions to air.          |
|                                                                  |
| Within your bw2 project:                                         |
| from premise_gwp import add_premise_gwp                          |
| add_premise_gwp()                                                |
+------------------------------------------------------------------+
+--------------------------------+----------------------------------+
| Utils functions                | Description                      |
+--------------------------------+----------------------------------+
| clear_cache()                  | Clears the cache folder. Useful  |
|                                | when updating `premise`or        |
|                                | encountering issues with         |
|                                | inventories.                     |
+--------------------------------+----------------------------------+
| get_regions_definition(model)  | Retrieves the list of countries  |
|                                | for each region of the model.    |
+--------------------------------+----------------------------------+
| ndb.NewDatabase(...)           | Generates a summary of the most  |
| ndb.generate_scenario_report() | important scenarios' variables.  |
+--------------------------------+----------------------------------+
Keep uncertainty data?
NewDatabase(..., keep_uncertainty_data=True)

Hide these messages?
NewDatabase(..., quiet=True)

//////////////////// EXTRACTING SOURCE DATABASE ////////////////////
Cannot find cached database.  Will create one now for next time...
Getting activity data

100%|█████████████████████████████████| 19565/19565 [00:00

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post