gpt4 book ai didi

python - 光明之路2 : how to retrieve a specific activity by name

转载 作者:行者123 更新时间:2023-11-30 22:08:21 25 4
gpt4 key购买 nike

我对这一切都很陌生,所以请耐心等待。

我已经初始化了新的 BW2 安装并添加了 Ecoinvent 数据库(为了清晰起见,对一些输出进行了修剪):

>>> from brightway2 import bw2setup, Database, SingleOutputEcospold2Importer
>>> bw2setup()
>>> ei = SingleOutputEcospold2Importer('/path/to/datasets', 'ei3.4 cutoff')
>>> ei.apply_strategies()
>>> ei.statistics()
14889 datasets
520205 exchanges
0 unlinked exchanges
>>> ei.write_database()

到目前为止,一切顺利(特别注意加载的数据集数量)。但现在——我该如何使用它?具体来说,我想检索标题为 market for Transport, Freight, lorry, unspecified 的流程,其空间范围为 GLO。但我不知道此事件的关键,令人惊讶的是,它没有出现在搜索中

>>> Database('ei3.4 cutoff').search('market for transport, freight, lorry, unspecified')
[]
>>> Database('ei3.4 cutoff').search('market for transport')
[]

!!很奇怪,没有运输市场?通过检查,我可以看到 Ecoinvent 3.4 截止中有 139 个以短语 market for Transport 开头的事件。

事实上,虽然 EI 3.4 截止中有 3,966 个“市场”进程,但我的 Brightway 安装只知道大约两打:

>>> Database('ei3.4 cutoff').search('market')
['market for paris market carrot' (kilogram, GLO, None),
'paris market carrot production' (kilogram, GLO, None),
'market for acetonitrile' (kilogram, GLO, None),
'market for sulfur' (kilogram, GLO, None),
'market for whey' (kilogram, GLO, None),
'market for heptane' (kilogram, GLO, None),
'market for straw' (kilogram, GLO, None),
'market for clay' (kilogram, CH, None),
'market for pitch' (kilogram, CH, None),
'market for brass' (kilogram, CH, None),
'market for platinum' (kilogram, GLO, None),
'market for polycarbonate' (kilogram, GLO, None),
'market for pitch' (kilogram, RoW, None),
'market for tetrafluoroethylene' (kilogram, GLO, None),
'market for dimethenamide' (kilogram, GLO, None),
'market for glyphosate' (kilogram, GLO, None),
'market for styrene' (kilogram, GLO, None),
'market for ferrite' (kilogram, GLO, None),
'market for folpet' (kilogram, GLO, None),
'market for magnetite' (kilogram, GLO, None),
'market for metamitron' (kilogram, GLO, None),
'market for nylon 6-6' (kilogram, GLO, None),
'market for atrazine' (kilogram, GLO, None),
'market for magnesium' (kilogram, GLO, None),
'market for metaldehyde' (kilogram, GLO, None)]

如何找到搜索中未显示的数据集?毫无帮助的是,该文档似乎严格使用random()来检索事件(例如此处:http://nbviewer.jupyter.org/urls/bitbucket.org/cmutel/brightway2/raw/default/notebooks/Databases.ipynb),这无助于我回答这个问题。

所以-两个问题-

  1. 如何找到感兴趣的事件、运输、 cargo 、卡车、未指定 [GLO] 市场

  2. 根据搜索结果,为什么我的数据库缺少大约 3,940 个市场?

提前致谢。

最佳答案

  1. 您可以使用列表推导式来实现搜索。效率应该很高。

db_bd = bw.Database('ei3.4截止')

market_brandon_want = [act for act in db_bd 
if 'market for transport, freight, lorry, unspecified' in act['name']
and 'GLO' in act['location']
][0]
  • 那么如果您这样做:
  • len([act for act in db_bd if 'market' in act['name'] ])

    您应该得到 4183,这似乎是一个更准确的数字。我相信您可以改进过滤器以更接近您的号码。

    您可以按照 Brightway2 seminar 中的教材进行操作2017 年在苏黎世举行。这对我的情况非常有帮助。

    关于python - 光明之路2 : how to retrieve a specific activity by name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194357/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com