Я пытаюсь запустить код, который использовался в этой статье для создания LCA и прогнозов на основе сценариев воздействия потребления цифрового контента на окружающую среду. В коде используются пакеты Brightway2 и Premise, а также базы данных Ecoinvent и Biography, а также некоторые предоставленные данные Excel.
Ошибка возникает, когда Premise используется для создания будущих сценариев с помощью функции NewDatabase.update_all(). Он начинается с функции «ecoinvent_to_iam_location()» и ошибки, которая, кажется, каждый раз случайным образом выбирает разные инициалы (эта ошибка, указанная ниже, имеет сообщение «Не удалось найти эквивалент для ENTSO-E», но я видел много разных инициалов, используемых в этой ошибке.
Я ожидал, что этот шаг будет простым, потому что здесь мы просто настраиваем базу данных и на этом этапе просто применяем сценарии к данной базе данных, которые уже должны быть в правильном состоянии. Мне кажется, что есть какая-то ошибка в форматировании или чтении баз данных, из-за чего здесь происходит сбой.
Ссылка на проект, который я использую, мне пришлось изменить некоторые версии пакетов для разрешения конфликтов зависимостей:
Код, который мы запускаем, находится в блокнотах/00_Project_setup.ipynb
Вот ошибка. сообщение/обратная трассировка:
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.
Вот код, который создает объект NewDatabase:
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)
И результат создания этой базы данных:
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
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-for-ents
Ошибка с Brightway2 + Premise. «ValueError: не удалось найти эквивалент для ENTSO-E» в NewDatabase.update_all() ⇐ Python
Программы на Python
1764847261
Anonymous
Я пытаюсь запустить код, который использовался в этой статье для создания LCA и прогнозов на основе сценариев воздействия потребления цифрового контента на окружающую среду. В коде используются пакеты Brightway2 и Premise, а также базы данных Ecoinvent и Biography, а также некоторые предоставленные данные Excel.
Ошибка возникает, когда Premise используется для создания будущих сценариев с помощью функции NewDatabase.update_all(). Он начинается с функции «ecoinvent_to_iam_location()» и ошибки, которая, кажется, каждый раз случайным образом выбирает разные инициалы (эта ошибка, указанная ниже, имеет сообщение «Не удалось найти эквивалент для ENTSO-E», но я видел много разных инициалов, используемых в этой ошибке.
Я ожидал, что этот шаг будет простым, потому что здесь мы просто настраиваем базу данных и на этом этапе просто применяем сценарии к данной базе данных, которые уже должны быть в правильном состоянии. Мне кажется, что есть какая-то ошибка в форматировании или чтении баз данных, из-за чего здесь происходит сбой.
Ссылка на проект, который я использую, мне пришлось изменить некоторые версии пакетов для разрешения конфликтов зависимостей:
Код, который мы запускаем, находится в блокнотах/00_Project_setup.ipynb
Вот ошибка. сообщение/обратная трассировка:
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.
Вот код, который создает объект NewDatabase:
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)
И результат создания этой базы данных:
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79837855/error-with-brightway2-premise-valueerror-could-not-find-equivalent-for-ents[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия