'location' 过滤 database.search 过滤一切
'location' filter on database.search filtering everything
我已将 ecoinvent 数据库导入为 ei
搜索功能运行良好:
In[0] eidb.search("glass",
filter = {'name':'green',
'product':'packaging'
}
)
Excluding 296 filtered results
Out[0]:
['packaging glass production, green' (kilogram, RER w/o CH+DE, None),
'packaging glass production, green' (kilogram, DE, None),
'packaging glass production, green' (kilogram, RoW, None),
'packaging glass production, green' (kilogram, CH, None),
'packaging glass production, green, without cullet' (kilogram, GLO, None),
'market for packaging glass, green' (kilogram, GLO, None)]
这正是人们所希望的。
但是,'location'
上的过滤效果不佳:
In[1] eidb.search("glass",
filter = {'location':'DE',
}
)
Excluding 304 filtered results
Out[1]: []
根据上面的结果,我至少应该有两个结果。
'location'
绝对是一个可接受的过滤器,DE 绝对是其中一个位置(例如 eidb.get('d2db85e14baf9e47bdbb824797420f08').get('location')
returns DE)。
我观察到这个位置随时用作过滤器,例如eidb.search('*', filter = {'location':'CA-QC'})
returns 一个空列表。
为什么?
我不知道为什么会发生这种情况,但是您可以通过将 location
代码设为小写来获得您正在寻找的行为:
In [1]: db.search("glass", filter={"location": "de"})
Excluding 103 filtered results
Out[1]:
['glass tube plant' (unit, DE, ['glass', 'construction']),
'glass tube, borosilicate, at plant' (kilogram, DE, ['glass', 'construction']),
'packaging glass, white, at plant' (kilogram, DE, ['glass', 'packaging']),
'packaging glass, brown, at plant' (kilogram, DE, ['glass', 'packaging']),
'packaging glass, green, at plant' (kilogram, DE, ['glass', 'packaging']),
'solar collector glass tube, with silver mirror, at plant' (kilogram, DE, ['glass', 'construction']),
'photovoltaic laminate, CdTe, at plant' (square meter, DE, ['photovoltaic', 'production of components'])]
请将此作为 bw2data
的错误归档。
可能您已经注意到,但是对于魁北克的情况,只使用最后一部分就可以了(例如 eidb.search('*', filter = {'location':'qc'})
)。我已经检查过,在 ecoinvent 中没有区域代码为 QC
,因此不存在包含来自其他区域的活动的风险。
问题似乎不仅仅在于大写和 punctuation characters
ei.search('photovoltaic laminate, CdTe',
filter={"location": "US"}
)
Excluding 7 filtered results
[]
P.S:很奇怪,但在这种情况下 filter={"location": "DE"}
找到正确的数据集也是大写
我已将 ecoinvent 数据库导入为 ei
搜索功能运行良好:
In[0] eidb.search("glass",
filter = {'name':'green',
'product':'packaging'
}
)
Excluding 296 filtered results
Out[0]:
['packaging glass production, green' (kilogram, RER w/o CH+DE, None),
'packaging glass production, green' (kilogram, DE, None),
'packaging glass production, green' (kilogram, RoW, None),
'packaging glass production, green' (kilogram, CH, None),
'packaging glass production, green, without cullet' (kilogram, GLO, None),
'market for packaging glass, green' (kilogram, GLO, None)]
这正是人们所希望的。
但是,'location'
上的过滤效果不佳:
In[1] eidb.search("glass",
filter = {'location':'DE',
}
)
Excluding 304 filtered results
Out[1]: []
根据上面的结果,我至少应该有两个结果。
'location'
绝对是一个可接受的过滤器,DE 绝对是其中一个位置(例如 eidb.get('d2db85e14baf9e47bdbb824797420f08').get('location')
returns DE)。
我观察到这个位置随时用作过滤器,例如eidb.search('*', filter = {'location':'CA-QC'})
returns 一个空列表。
为什么?
我不知道为什么会发生这种情况,但是您可以通过将 location
代码设为小写来获得您正在寻找的行为:
In [1]: db.search("glass", filter={"location": "de"})
Excluding 103 filtered results
Out[1]:
['glass tube plant' (unit, DE, ['glass', 'construction']),
'glass tube, borosilicate, at plant' (kilogram, DE, ['glass', 'construction']),
'packaging glass, white, at plant' (kilogram, DE, ['glass', 'packaging']),
'packaging glass, brown, at plant' (kilogram, DE, ['glass', 'packaging']),
'packaging glass, green, at plant' (kilogram, DE, ['glass', 'packaging']),
'solar collector glass tube, with silver mirror, at plant' (kilogram, DE, ['glass', 'construction']),
'photovoltaic laminate, CdTe, at plant' (square meter, DE, ['photovoltaic', 'production of components'])]
请将此作为 bw2data
的错误归档。
可能您已经注意到,但是对于魁北克的情况,只使用最后一部分就可以了(例如 eidb.search('*', filter = {'location':'qc'})
)。我已经检查过,在 ecoinvent 中没有区域代码为 QC
,因此不存在包含来自其他区域的活动的风险。
问题似乎不仅仅在于大写和 punctuation characters
ei.search('photovoltaic laminate, CdTe',
filter={"location": "US"}
)
Excluding 7 filtered results
[]
P.S:很奇怪,但在这种情况下 filter={"location": "DE"}
找到正确的数据集也是大写