本文整理汇总了Python中safe.impact_functions.registry.Registry.filter_by_keyword_string方法的典型用法代码示例。如果您正苦于以下问题:Python Registry.filter_by_keyword_string方法的具体用法?Python Registry.filter_by_keyword_string怎么用?Python Registry.filter_by_keyword_string使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类safe.impact_functions.registry.Registry
的用法示例。
在下文中一共展示了Registry.filter_by_keyword_string方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_filter_by_keywords_dev
# 需要导入模块: from safe.impact_functions.registry import Registry [as 别名]
# 或者: from safe.impact_functions.registry.Registry import filter_by_keyword_string [as 别名]
def test_filter_by_keywords_dev(self):
"""TestRegistry: Test filtering IF using hazard n exposure keywords.
Note (IS): I use this test to check the result of IF filtering only.
"""
registry = Registry()
# Using keywords string
hazard_keywords = {
'continuous_hazard_unit': 'metres',
'hazard': 'flood',
'hazard_category': 'single_event',
'layer_mode': 'continuous',
'layer_purpose': 'hazard',
'title': 'Jakarta flood like 2007 with structural improvements'
}
exposure_keywords = {
'exposure': 'population',
'exposure_unit': 'count',
'layer_geometry': 'raster',
'layer_mode': 'continuous',
'layer_purpose': 'exposure',
'title': 'Population'
}
impact_functions = registry.filter_by_keyword_string(
hazard_keywords, exposure_keywords)
print len(impact_functions)
for i in impact_functions:
print i.__name__
示例2: test_filter_by_keywords
# 需要导入模块: from safe.impact_functions.registry import Registry [as 别名]
# 或者: from safe.impact_functions.registry.Registry import filter_by_keyword_string [as 别名]
def test_filter_by_keywords(self):
"""TestRegistry: Test filtering IF using hazard n exposure keywords."""
# Using keywords string
hazard_keywords = {
'subcategory': 'flood',
'units': 'wetdry',
'layer_type': 'vector',
'data_type': 'polygon'
}
exposure_keywords = {
'subcategory': 'structure',
'units': 'building_type',
'layer_type': 'vector',
'data_type': 'polygon'
}
registry = Registry()
impact_functions = registry.filter_by_keyword_string(
hazard_keywords, exposure_keywords)
message = 'Registry should returns matched impact functions. ' \
'Nothing returned instead. Please check registered IF.'
self.assertTrue(len(impact_functions) > 0, message)
for impact_function in impact_functions:
result = impact_function.metadata().as_dict()[
'categories']['hazard']['subcategories']
result_list = [subcat.get('id') for subcat in result]
expected = 'flood'
message = 'Expecting flood hazard impact functions. Got %s ' \
'instead' % result_list[0]
self.assertTrue(expected in result_list, message)
result = impact_function.metadata().as_dict()[
'categories']['exposure']['subcategories']
result_list = [subcat.get('id') for subcat in result]
expected = 'structure'
message = 'Expecting structure exposure impact functions. ' \
'Got %s instead' % result_list[0]
self.assertTrue(expected in result_list, message)
示例3: ImpactFunctionManager
# 需要导入模块: from safe.impact_functions.registry import Registry [as 别名]
# 或者: from safe.impact_functions.registry.Registry import filter_by_keyword_string [as 别名]
#.........这里部分代码省略.........
:type exposure_metadata: dict
"""
return self.registry.filter(hazard_metadata, exposure_metadata)
def filter_by_keywords(self, hazard_keywords=None, exposure_keywords=None):
"""Get available impact functions from hazard and exposure keywords.
Disabled impact function will not be loaded.
.. example::
if_manager = ImpactFunctionManager()
hazard_keywords = {
'subcategory': 'flood',
'units': 'wetdry',
'layer_type': 'vector',
'data_type': 'polygon'
}
exposure_keywords = {
'subcategory': 'structure',
'units': 'building_type',
'layer_type': 'vector',
'data_type': 'polygon'
}
ifs = if_manager.filter_by_keywords(hazard_keywords,
exposure_keywords)
:param hazard_keywords: The keywords of the hazard.
:type hazard_keywords: dict
:param exposure_keywords: The keywords of the exposure.
:type exposure_keywords: dict
"""
return self.registry.filter_by_keyword_string(hazard_keywords, exposure_keywords)
def filter_by_metadata(self, metadata_key, metadata_value):
"""Return IF classes given its metadata key and value.
.. example::
if_manager = ImpactFunctionManager()
metadata_key = 'author'
metadata_value = 'Akbar Gumbira'
ifs = if_manager.filter_by_metadata(metadata_key,
metadata_value)
:param metadata_key: The key of the metadata e.g 'id', 'name'
:type metadata_key: str
:param metadata_value: The value of the metadata, e.g for the key
'id' the value is 'FloodNativePolygonExperimentalFunction'
:type metadata_value: str, dict
:return: Impact Function classes match the arguments
:rtype: list
"""
return self.registry.filter_by_metadata(metadata_key, metadata_value)
@staticmethod
def get_function_id(impact_function):
"""Get the ID of the impact function.
:param impact_function: Class of an impact function
:type impact_function: safe.impact_functions.base.ImpactFunction
:returns: The ID of the impact function specified in its metadata.
示例4: ImpactFunctionManager
# 需要导入模块: from safe.impact_functions.registry import Registry [as 别名]
# 或者: from safe.impact_functions.registry.Registry import filter_by_keyword_string [as 别名]
#.........这里部分代码省略.........
"""
return self.registry.filter(hazard_metadata, exposure_metadata)
def filter_by_keywords(
self, hazard_keywords=None, exposure_keywords=None):
"""Get available impact functions from hazard and exposure keywords.
Disabled impact function will not be loaded.
.. example::
if_manager = ImpactFunctionManager()
hazard_keywords = {
'subcategory': 'flood',
'units': 'wetdry',
'layer_type': 'vector',
'data_type': 'polygon'
}
exposure_keywords = {
'subcategory': 'structure',
'units': 'building_type',
'layer_type': 'vector',
'data_type': 'polygon'
}
ifs = if_manager.filter_by_keywords(hazard_keywords,
exposure_keywords)
:param hazard_keywords: The keywords of the hazard.
:type hazard_keywords: dict
:param exposure_keywords: The keywords of the exposure.
:type exposure_keywords: dict
"""
return self.registry.filter_by_keyword_string(
hazard_keywords, exposure_keywords)
def filter_by_metadata(self, metadata_key, metadata_value):
"""Return IF classes given its metadata key and value.
.. example::
if_manager = ImpactFunctionManager()
metadata_key = 'author'
metadata_value = 'Akbar Gumbira'
ifs = if_manager.filter_by_metadata(metadata_key,
metadata_value)
:param metadata_key: The key of the metadata e.g 'id', 'name'
:type metadata_key: str
:param metadata_value: The value of the metadata, e.g for the key
'id' the value is 'FloodNativePolygonExperimentalFunction'
:type metadata_value: str, dict
:return: Impact Function classes match the arguments
:rtype: list
"""
return self.registry.filter_by_metadata(metadata_key, metadata_value)
@staticmethod
def get_function_id(impact_function):
"""Get the ID of the impact function.
:param impact_function: Class of an impact function
:type impact_function: safe.impact_functions.base.ImpactFunction