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.
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)
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
Mobile version