本文整理汇总了Python中safe.test.utilities.test_data_path函数的典型用法代码示例。如果您正苦于以下问题:Python test_data_path函数的具体用法?Python test_data_path怎么用?Python test_data_path使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了test_data_path函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_run
def test_run(self):
function = FloodEvacuationRasterHazardFunction.instance()
hazard_path = test_data_path('hazard', 'continuous_flood_20_20.asc')
exposure_path = test_data_path(
'exposure', 'pop_binary_raster_20_20.asc')
hazard_layer = read_layer(hazard_path)
exposure_layer = read_layer(exposure_path)
function.hazard = hazard_layer
function.exposure = exposure_layer
function.run()
impact = function.impact
# Count of flooded objects is calculated "by the hands"
# print "keywords", keywords
keywords = impact.get_keywords()
evacuated = float(keywords['evacuated'])
total_needs_full = keywords['total_needs']
total_needs_weekly = OrderedDict([
[x['table name'], x['amount']] for x in
total_needs_full['weekly']
])
total_needs_single = OrderedDict([
[x['table name'], x['amount']] for x in
total_needs_full['single']
])
expected_evacuated = 100
self.assertEqual(evacuated, expected_evacuated)
self.assertEqual(total_needs_weekly['Rice [kg]'], 280)
self.assertEqual(total_needs_weekly['Family Kits'], 20)
self.assertEqual(total_needs_weekly['Drinking Water [l]'], 1750)
self.assertEqual(total_needs_weekly['Clean Water [l]'], 6700)
self.assertEqual(total_needs_single['Toilets'], 5)
示例2: test_run
def test_run(self):
"""TestVolcanoPointPopulationFunction: Test running the IF."""
merapi_point_path = test_data_path('hazard', 'volcano_point.shp')
population_path = test_data_path(
'exposure', 'pop_binary_raster_20_20.asc')
merapi_point_layer = read_layer(merapi_point_path)
population_layer = read_layer(population_path)
impact_function = VolcanoPointPopulationFunction.instance()
# Run merapi point
impact_function.hazard = merapi_point_layer
impact_function.exposure = population_layer
impact_function.run()
impact_layer = impact_function.impact
# Check the question
expected_question = (
'In the event of a volcano point how many '
'people might be impacted')
message = 'The question should be %s, but it returns %s' % (
expected_question, impact_function.question)
self.assertEqual(expected_question, impact_function.question, message)
# Count by hand
expected_affected_population = 200
result = numpy.nansum(impact_layer.get_data())
message = 'Expecting %s, but it returns %s' % (
expected_affected_population, result)
self.assertEqual(expected_affected_population, result, message)
示例3: test_run
def test_run(self):
impact_function = TsunamiRasterBuildingFunction.instance()
hazard_path = test_data_path("hazard", "continuous_flood_20_20.asc")
exposure_path = test_data_path("exposure", "buildings.shp")
hazard_layer = read_layer(hazard_path)
exposure_layer = read_layer(exposure_path)
impact_function.hazard = SafeLayer(hazard_layer)
impact_function.exposure = SafeLayer(exposure_layer)
impact_function.run()
impact_layer = impact_function.impact
# Extract calculated result
impact_data = impact_layer.get_data()
self.assertEqual(len(impact_data), 181)
# 1 = inundated, 2 = wet, 3 = dry
expected_result = {0: 1, 1: 116, 2: 64, 3: 0, 4: 0}
result = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0}
for feature in impact_data:
inundated_status = feature[impact_function.target_field]
result[inundated_status] += 1
message = "Expecting %s, but it returns %s" % (expected_result, result)
self.assertEqual(expected_result, result, message)
示例4: test_is_polygonal_layer
def test_is_polygonal_layer(self):
"""Test we can get the correct attributes back"""
# Polygon layer
layer = clone_shp_layer(
name='district_osm_jakarta',
include_keywords=True,
source_directory=test_data_path('boundaries'))
message = 'isPolygonLayer, %s layer should be polygonal' % layer
self.assertTrue(is_polygon_layer(layer), message)
# Point layer
layer = clone_shp_layer(
name='volcano_point',
include_keywords=True,
source_directory=test_data_path('hazard'))
message = '%s layer should be polygonal' % layer
self.assertFalse(is_polygon_layer(layer), message)
layer = clone_raster_layer(
name='padang_tsunami_mw8',
extension='.tif',
include_keywords=True,
source_directory=test_data_path('hazard')
)
message = ('%s raster layer should not be polygonal' % layer)
self.assertFalse(is_polygon_layer(layer), message)
示例5: test_run
def test_run(self):
function = ContinuousHazardPopulationFunction.instance()
hazard_path = test_data_path(
'hazard', 'continuous_flood_20_20.asc')
exposure_path = test_data_path(
'exposure', 'pop_binary_raster_20_20.asc')
hazard_layer = read_layer(hazard_path)
exposure_layer = read_layer(exposure_path)
function.hazard = SafeLayer(hazard_layer)
function.exposure = SafeLayer(exposure_layer)
function.run()
impact = function.impact
# print "keywords", keywords
keywords = impact.get_keywords()
total_needs_full = keywords['total_needs']
total_needs_weekly = OrderedDict([
[x['table name'], x['amount']] for x in
total_needs_full['weekly']
])
total_needs_single = OrderedDict([
[x['table name'], x['amount']] for x in
total_needs_full['single']
])
self.assertEqual(total_needs_weekly['Rice [kg]'], 336)
self.assertEqual(total_needs_weekly['Drinking Water [l]'], 2100)
self.assertEqual(total_needs_weekly['Clean Water [l]'], 8040)
self.assertEqual(total_needs_weekly['Family Kits'], 24)
self.assertEqual(total_needs_single['Toilets'], 6)
示例6: test_get_keyword_from_file
def test_get_keyword_from_file(self):
"""Get keyword from a filesystem file's .keyword file."""
raster_shake_path = test_data_path("hazard", "jakarta_flood_design.tif")
vector_path = test_data_path("exposure", "buildings_osm_4326.shp")
raster_tsunami_path = test_data_path("hazard", "tsunami_wgs84.tif")
keyword = read_file_keywords(raster_shake_path, "layer_purpose")
expected_keyword = "hazard"
message = ('The keyword "layer_purpose" for %s is %s. Expected keyword is: ' "%s") % (
raster_shake_path,
keyword,
expected_keyword,
)
self.assertEqual(keyword, expected_keyword, message)
# Test we get an exception if keyword is not found
self.assertRaises(KeywordNotFoundError, read_file_keywords, raster_shake_path, "boguskeyword")
# Test if all the keywords are all ready correctly
keywords = read_file_keywords(raster_shake_path)
expected_keywords = {
"hazard_category": "single_event",
"hazard": "flood",
"continuous_hazard_unit": "metres",
"layer_purpose": "hazard",
"layer_mode": "continuous",
"title": "Jakarta flood like 2007 with structural improvements",
"keyword_version": inasafe_keyword_version,
}
message = "Expected:\n%s\nGot:\n%s\n" % (expected_keywords, keywords)
self.assertDictEqual(keywords, expected_keywords, message)
# Test reading keywords from vector layer
keywords = read_file_keywords(vector_path)
expected_keywords = {
"keyword_version": inasafe_keyword_version,
"structure_class_field": "FLOODED",
"title": "buildings_osm_4326",
"layer_geometry": "polygon",
"layer_purpose": "exposure",
"layer_mode": "classified",
"exposure": "structure",
}
message = "Expected:\n%s\nGot:\n%s\n" % (expected_keywords, keywords)
self.assertDictEqual(keywords, expected_keywords, message)
# tsunami example
keywords = read_file_keywords(raster_tsunami_path)
expected_keywords = {
"hazard_category": "single_event",
"title": "Tsunami",
"hazard": "tsunami",
"continuous_hazard_unit": "metres",
"layer_geometry": "raster",
"layer_purpose": "hazard",
"layer_mode": "continuous",
"keyword_version": inasafe_keyword_version,
}
message = "Expected:\n%s\nGot:\n%s\n" % (expected_keywords, keywords)
self.assertEqual(keywords, expected_keywords, message)
示例7: test_run
def test_run(self):
function = FloodPolygonBuildingFunction.instance()
hazard_path = test_data_path('hazard', 'flood_multipart_polygons.shp')
exposure_path = test_data_path('exposure', 'buildings.shp')
# noinspection PyCallingNonCallable
hazard_layer = QgsVectorLayer(hazard_path, 'Flood', 'ogr')
# noinspection PyCallingNonCallable
exposure_layer = QgsVectorLayer(exposure_path, 'Buildings', 'ogr')
# Let's set the extent to the hazard extent
extent = hazard_layer.extent()
rect_extent = [
extent.xMinimum(), extent.yMaximum(),
extent.xMaximum(), extent.yMinimum()]
function.hazard = QgisWrapper(hazard_layer)
function.exposure = QgisWrapper(exposure_layer)
function.requested_extent = rect_extent
function.parameters['building_type_field'] = 'TYPE'
function.parameters['affected_field'] = 'FLOODPRONE'
function.parameters['affected_value'] = 'YES'
function.run()
impact = function.impact
# Count of flooded objects is calculated "by the hands"
# total flooded = 27, total buildings = 129
count = sum(impact.get_data(attribute='INUNDATED'))
self.assertEquals(count, 33)
count = len(impact.get_data())
self.assertEquals(count, 176)
示例8: test_run
def test_run(self):
function = ClassifiedRasterHazardBuildingFunction.instance()
hazard_path = test_data_path('hazard', 'classified_flood_20_20.asc')
exposure_path = test_data_path('exposure', 'buildings.shp')
hazard_layer = read_layer(hazard_path)
exposure_layer = read_layer(exposure_path)
function.hazard = hazard_layer
function.exposure = exposure_layer
function.run()
impact_layer = function.impact
impact_data = impact_layer.get_data()
# Count
expected_impact = {
1.0: 67,
2.0: 49,
3.0: 64
}
result_impact = {
1.0: 0,
2.0: 0,
3.0: 0
}
for impact_feature in impact_data:
level = impact_feature['level']
if not math.isnan(level):
result_impact[level] += 1
message = 'Expecting %s, but it returns %s' % (
expected_impact, result_impact)
self.assertEqual(expected_impact, result_impact, message)
示例9: test_polygon_roads_impact
def test_polygon_roads_impact(self):
"""Test FloodVectorRoadsExperimentalFunction work."""
hazard_name = test_data_path(
'hazard', 'multipart_polygons_osm_4326.shp')
qgis_hazard = QgsVectorLayer(hazard_name, 'HAZARD', 'ogr')
exposure_name = test_data_path('exposure', 'roads_osm_4326.shp')
qgis_exposure = QgsVectorLayer(exposure_name, 'EXPOSURE', 'ogr')
plugin_name = "FloodVectorRoadsExperimentalFunction"
params = OrderedDict([
('target_field', 'flooded'),
('road_type_field', 'TYPE'),
('affected_field', 'FLOODPRONE'),
('affected_value', 'YES')
])
impact = self._get_impact_function(
qgis_hazard, qgis_exposure, plugin_name, params)
keywords = impact.get_keywords()
self.assertEquals(params['target_field'], keywords['target_field'])
# Count of flooded objects is calculated "by hand"
# the count = 63
count = sum(impact.get_data(attribute=keywords['target_field']))
self.assertEquals(count, 63)
示例10: test_run
def test_run(self):
"""TestClassifiedPolygonPopulationFunction: Test running the IF."""
generic_polygon_path = test_data_path(
'hazard', 'classified_generic_polygon.shp')
population_path = test_data_path(
'exposure', 'pop_binary_raster_20_20.asc')
generic_polygon_layer = read_layer(generic_polygon_path)
population_layer = read_layer(population_path)
impact_function = ClassifiedPolygonHazardPopulationFunction.instance()
impact_function.hazard = SafeLayer(generic_polygon_layer)
impact_function.exposure = SafeLayer(population_layer)
impact_function.run()
impact_layer = impact_function.impact
# Check the question
expected_question = ('In each of the hazard zones how many people '
'might be impacted.')
message = 'The question should be %s, but it returns %s' % (
expected_question, impact_function.question)
self.assertEqual(expected_question, impact_function.question, message)
# Count by hand
expected_affected_population = 181
result = numpy.nansum(impact_layer.get_data())
self.assertEqual(expected_affected_population, result, message)
示例11: test_run
def test_run(self):
"""TestVolcanoPointBuildingFunction: Test running the IF."""
volcano_path = test_data_path('hazard', 'volcano_point.shp')
building_path = test_data_path('exposure', 'buildings.shp')
hazard_layer = read_layer(volcano_path)
exposure_layer = read_layer(building_path)
impact_function = VolcanoPointBuildingFunction.instance()
impact_function.hazard = SafeLayer(hazard_layer)
impact_function.exposure = SafeLayer(exposure_layer)
impact_function.run()
impact_layer = impact_function.impact
# Check the question
expected_question = (
'In the event of volcano point how many buildings might be '
'affected')
message = 'The question should be %s, but it returns %s' % (
expected_question, impact_function.question)
self.assertEqual(expected_question, impact_function.question, message)
# The buildings should all be categorised into 3000 zone
zone_sum = sum(impact_layer.get_data(
attribute=impact_function.target_field))
expected_sum = 3000 * 181
message = 'Expecting %s, but it returns %s' % (expected_sum, zone_sum)
self.assertEqual(zone_sum, expected_sum, message)
示例12: test_state
def test_state(self):
"""Check if the save/restore state methods work. See also
https://github.com/AIFDR/inasafe/issues/58
"""
# default selected layer is the third layer exposure
# so, decrease the index by one to change it
DOCK.cboExposure.setCurrentIndex(DOCK.cboExposure.currentIndex() - 1)
DOCK.save_state()
expected_dict = get_ui_state(DOCK)
# myState = DOCK.state
# Now reset and restore and check that it gets the old state
# Html is not considered in restore test since the ready
# message overwrites it in dock implementation
DOCK.cboExposure.setCurrentIndex(DOCK.cboExposure.currentIndex() - 1)
DOCK.restore_state()
result_dict = get_ui_state(DOCK)
message = 'Got unexpected state: %s\nExpected: %s\n%s' % (
result_dict, expected_dict, combos_to_string(DOCK))
self.assertTrue(expected_dict == result_dict, message)
# Corner case test when two layers can have the
# same functions - when switching layers the selected function should
# remain unchanged
self.tearDown()
file_list = [
test_data_path('hazard', 'jakarta_flood_design.tif'),
test_data_path('hazard', 'continuous_flood_20_20.asc'),
test_data_path('exposure', 'pop_binary_raster_20_20.asc')
]
hazard_layer_count, exposure_layer_count = load_layers(file_list)
self.assertTrue(hazard_layer_count == 2)
self.assertTrue(exposure_layer_count == 1)
# we will have 2 impact function available right now:
# - ContinuousHazardPopulationFunction, titled: 'Be impacted'
# - FloodEvacuationRasterHazardFunction, titled: 'Need evacuation'
# set it to the second for testing purposes
DOCK.cboFunction.setCurrentIndex(1)
DOCK.cboHazard.setCurrentIndex(0)
DOCK.cboExposure.setCurrentIndex(0)
expected_function = str(DOCK.cboFunction.currentText())
# Now move down one hazard in the combo then verify
# the function remains unchanged
DOCK.cboHazard.setCurrentIndex(1)
current_function = str(DOCK.cboFunction.currentText())
message = (
'Expected selected impact function to remain unchanged when '
'choosing a different hazard of the same category:'
' %s\nExpected: %s\n%s' % (
expected_function, current_function, combos_to_string(DOCK)))
self.assertTrue(expected_function == current_function, message)
DOCK.cboHazard.setCurrentIndex(0)
# Selected function should remain the same
# RM: modified it, because there is generic one right now as the first.
# the selected one should be FloodEvacuationRasterHazardFunction
DOCK.cboFunction.setCurrentIndex(1)
expected = 'Need evacuation'
function = DOCK.cboFunction.currentText()
message = 'Expected: %s, Got: %s' % (expected, function)
self.assertTrue(function == expected, message)
示例13: test_run
def test_run(self):
"""TestVolcanoPolygonPopulationFunction: Test running the IF."""
merapi_krb_path = test_data_path('hazard', 'volcano_krb.shp')
population_path = test_data_path(
'exposure', 'pop_binary_raster_20_20.asc')
merapi_krb_layer = read_layer(merapi_krb_path)
population_layer = read_layer(population_path)
impact_function = VolcanoPolygonPopulationFunction.instance()
# 2. Run merapi krb
impact_function.hazard = SafeLayer(merapi_krb_layer)
impact_function.exposure = SafeLayer(population_layer)
impact_function.run()
impact_layer = impact_function.impact
# Check the question
expected_question = ('In the event of volcano krb how many population '
'might need evacuation')
message = 'The question should be %s, but it returns %s' % (
expected_question, impact_function.question)
self.assertEqual(expected_question, impact_function.question, message)
# Count by hand
expected_affected_population = 181
result = numpy.nansum(impact_layer.get_data())
self.assertEqual(expected_affected_population, result, message)
示例14: test_run
def test_run(self):
function = FloodRasterRoadsFunction.instance()
hazard_path = test_data_path('hazard', 'continuous_flood_20_20.asc')
exposure_path = test_data_path('exposure', 'roads.shp')
# noinspection PyCallingNonCallable
hazard_layer = QgsRasterLayer(hazard_path, 'Flood')
# noinspection PyCallingNonCallable
exposure_layer = QgsVectorLayer(exposure_path, 'Roads', 'ogr')
# Let's set the extent to the hazard extent
extent = hazard_layer.extent()
rect_extent = [
extent.xMinimum(), extent.yMaximum(),
extent.xMaximum(), extent.yMinimum()]
function.hazard = SafeLayer(hazard_layer)
function.exposure = SafeLayer(exposure_layer)
function.requested_extent = rect_extent
function.run()
impact = function.impact
keywords = impact.get_keywords()
self.assertEquals(function.target_field, keywords['target_field'])
expected_inundated_feature = 182
count = sum(impact.get_data(attribute=function.target_field))
self.assertEquals(count, expected_inundated_feature)
示例15: test_get_keyword_from_file
def test_get_keyword_from_file(self):
"""Get keyword from a filesystem file's .keyword file."""
raster_layer = clone_raster_layer(
'jakarta_flood_design', '.tif', False, test_data_path('hazard'))
raster_layer_path = raster_layer.source()
keyword_file = test_data_path('other', 'jakarta_flood_design.keywords')
raster_keyword_path = (
os.path.splitext(raster_layer_path)[0] + '.keywords')
shutil.copy2(keyword_file, raster_keyword_path)
keyword = read_file_keywords(raster_layer_path, 'layer_purpose')
expected_keyword = 'hazard'
self.assertEqual(keyword, expected_keyword)
# Test we get an exception if keyword is not found
self.assertRaises(
KeywordNotFoundError,
read_file_keywords, raster_layer_path, 'boguskeyword')
# Test if all the keywords are all ready correctly
keywords = read_file_keywords(raster_layer_path)
expected_keywords = {
'hazard_category': 'single_event',
'hazard': 'flood',
'continuous_hazard_unit': 'metres',
'layer_purpose': 'hazard',
'layer_mode': 'continuous',
'title': 'Jakarta flood like 2007 with structural improvements',
'keyword_version': '3.2'
}
self.assertDictEqual(keywords, expected_keywords)