本文整理汇总了Python中safe.test.utilities.set_canvas_crs函数的典型用法代码示例。如果您正苦于以下问题:Python set_canvas_crs函数的具体用法?Python set_canvas_crs怎么用?Python set_canvas_crs使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了set_canvas_crs函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_issue47
def test_issue47(self):
"""Issue47: Hazard & exposure data are in different proj to viewport.
See https://github.com/AIFDR/inasafe/issues/47"""
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GOOGLECRS, True)
set_jakarta_google_extent(self.dock)
# Press RUN
self.dock.accept()
result = self.dock.wvResults.page_to_text()
message = 'Result not as expected: %s' % result
# searching for values 6700 clean water [l] in result
self.assertTrue(format_int(6700) in result, message)
开发者ID:lucernae,项目名称:inasafe,代码行数:25,代码来源:test_dock.py
示例2: test_issue1191
def test_issue1191(self):
"""Test setting a layer's title in the kw directly from qgis api"""
DOCK.set_layer_from_title_flag = True
set_canvas_crs(GEOCRS, True)
set_yogya_extent(DOCK)
result, message = setup_scenario(
DOCK,
hazard='An earthquake in Yogyakarta like in 2006',
exposure='OSM Building Polygons',
function='Be affected',
function_id='Earthquake Building Impact Function')
self.assertTrue(result, message)
layer = DOCK.get_hazard_layer()
keyword_io = KeywordIO()
original_title = 'An earthquake in Yogyakarta like in 2006'
title = keyword_io.read_keywords(layer, 'title')
self.assertEqual(title, original_title)
# change layer name as if done in the legend
expected_title = 'TEST'
layer.setLayerName(expected_title)
title = keyword_io.read_keywords(layer, 'title')
self.assertEqual(title, expected_title)
# reset KW file to original state
layer.setLayerName(original_title)
title = keyword_io.read_keywords(layer, 'title')
self.assertEqual(title, original_title)
DOCK.set_layer_from_title_flag = False
开发者ID:severinmenard,项目名称:inasafe,代码行数:32,代码来源:test_dock.py
示例3: test_user_defined_extent
def test_user_defined_extent(self):
"""Test that analysis honours user defined extents.
Note that when testing on a desktop system this will overwrite your
user defined analysis extent.
"""
settings = QtCore.QSettings()
extents = '106.772279, -6.237576, 106.885165, -6.165415'
settings.setValue('inasafe/analysis_extent', extents)
settings.setValue('inasafe/analysis_extent_crs', 'EPSG:4326')
DOCK.read_settings()
setup_scenario(
DOCK,
hazard='A flood in Jakarta like in 2007',
exposure='People',
function='Need evacuation',
function_id='Flood Evacuation Function',
aggregation_layer='kabupaten jakarta singlepart',
aggregation_enabled_flag=True)
DOCK.extent.show_rubber_bands = True
expected_vertex_count = 5
# 4326 with disabled on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
# User extent should override this
set_small_jakarta_extent(DOCK)
DOCK.extent.show_user_analysis_extent()
user_band = DOCK.extent.user_analysis_rubberband
self.assertEqual(expected_vertex_count, user_band.numberOfVertices())
开发者ID:severinmenard,项目名称:inasafe,代码行数:33,代码来源:test_dock.py
示例4: test_issue306
def test_issue306(self):
"""Issue306: CANVAS doesnt add generated layers in tests.
See https://github.com/AIFDR/inasafe/issues/306"""
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
self.assertTrue(result, message)
LOGGER.info("Canvas list before:\n%s" % canvas_list())
# Enable on-the-fly reprojection
set_canvas_crs(GOOGLECRS, True)
set_jakarta_google_extent(self.dock)
before_count = len(CANVAS.layers())
# print 'Before count %s' % before_count
# Press RUN
self.dock.accept()
# test issue #306
after_count = len(CANVAS.layers())
LOGGER.info("Canvas list after:\n%s" % canvas_list())
message = ('Layer was not added to canvas (%s before, %s after)' % (
before_count, after_count))
# print 'After count %s' % after_count
self.assertTrue(before_count == after_count - 1, message)
开发者ID:lucernae,项目名称:inasafe,代码行数:29,代码来源:test_dock.py
示例5: test_issue581
def test_issue581(self):
"""Test issue #581 in github - Humanize can produce IndexError : list
index out of range
"""
# See https://github.com/AIFDR/inasafe/issues/581
result, message = setup_scenario(
DOCK,
hazard='A flood in Jakarta like in 2007',
exposure='People',
function='Need evacuation',
function_id='Flood Evacuation Function')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_small_jakarta_extent(DOCK)
# Press RUN
DOCK.accept()
result = DOCK.wvResults.page().currentFrame().toPlainText()
message = 'Result not as expected: %s' % result
self.assertTrue('IndexError' not in result, message)
self.assertTrue(
'It appears that no People are affected by A flood in '
'Jakarta like in 2007. You may want to consider:' in result)
开发者ID:severinmenard,项目名称:inasafe,代码行数:26,代码来源:test_dock.py
示例6: xtest_print_map
def xtest_print_map(self):
"""Test print map, especially on Windows."""
result, message = setup_scenario(
self.dock,
hazard='Flood in Jakarta',
exposure='Essential buildings',
function='Be affected',
function_id='Categorised Hazard Building Impact Function')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
# Press RUN
button = self.dock.pbnRunStop
# noinspection PyCallByClass,PyTypeChecker
button.click()
print_button = self.dock.pbnPrint
try:
# noinspection PyCallByClass,PyTypeChecker
print_button.click()
except OSError:
LOGGER.debug('OSError')
# pass
except Exception, e:
raise Exception('Exception is not expected, %s' % e)
开发者ID:lucernae,项目名称:inasafe,代码行数:29,代码来源:test_dock.py
示例7: test_result_styling
def test_result_styling(self):
"""Test that colours and opacity from a model are correctly styled."""
# Push OK with the left mouse button
print '--------------------'
print combos_to_string(self.dock)
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
self.dock.accept()
# self.dock.analysis.get_impact_layer()
safe_layer = self.dock.analysis.impact_layer
qgis_layer = read_impact_layer(safe_layer)
style = safe_layer.get_style_info()
setRasterStyle(qgis_layer, style)
# simple test for now - we could test explicity for style state
# later if needed.
message = (
'Raster layer was not assigned a Singleband pseudocolor'
' renderer as expected.')
self.assertTrue(
qgis_layer.renderer().type() == 'singlebandpseudocolor', message)
开发者ID:lucernae,项目名称:inasafe,代码行数:33,代码来源:test_dock.py
示例8: test_issue1191
def test_issue1191(self):
"""Test setting a layer's title in the kw directly from qgis api"""
settings = QtCore.QSettings()
settings.setValue(
'inasafe/analysis_extents_mode', 'HazardExposure')
self.dock.set_layer_from_title_flag = True
set_canvas_crs(GEOCRS, True)
set_yogya_extent(self.dock)
result, message = setup_scenario(
self.dock,
hazard='Earthquake',
exposure='Buildings',
function='Be affected',
function_id='EarthquakeBuildingFunction')
self.assertTrue(result, message)
layer = self.dock.get_hazard_layer()
keyword_io = KeywordIO()
original_title = 'Earthquake'
title = keyword_io.read_keywords(layer, 'title')
self.assertEqual(title, original_title)
# change layer name as if done in the legend
expected_title = 'TEST'
layer.setLayerName(expected_title)
title = keyword_io.read_keywords(layer, 'title')
self.assertEqual(title, expected_title)
# reset KW file to original state
layer.setLayerName(original_title)
title = keyword_io.read_keywords(layer, 'title')
self.assertEqual(title, original_title)
self.dock.set_layer_from_title_flag = False
开发者ID:lucernae,项目名称:inasafe,代码行数:35,代码来源:test_dock.py
示例9: test_insufficient_overlap
def test_insufficient_overlap(self):
"""Test Insufficient overlap errors are caught.
..note:: See https://github.com/AIFDR/inasafe/issues/372
"""
# Push OK with the left mouse button
button = self.dock.pbnRunStop
message = 'Run button was not enabled'
self.assertTrue(button.isEnabled(), message)
set_jakarta_extent(self.dock)
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
# Zoom to an area where there is no overlap with layers
rectangle = QgsRectangle(106.849, -6.153, 106.866, -6.134)
CANVAS.setExtent(rectangle)
crs = QgsCoordinateReferenceSystem('EPSG:4326')
self.dock.define_user_analysis_extent(rectangle, crs)
self.dock.show_next_analysis_extent()
# Check that run button is disabled because extents do not overlap
message = 'Run button was not disabled'
self.assertFalse(button.isEnabled(), message)
开发者ID:lucernae,项目名称:inasafe,代码行数:30,代码来源:test_dock.py
示例10: test_user_defined_extent
def test_user_defined_extent(self):
"""Test that analysis honours user defined extents.
Note that when testing on a desktop system this will overwrite your
user defined analysis extent.
"""
settings = QtCore.QSettings()
extents = '106.772279, -6.237576, 106.885165, -6.165415'
settings.setValue('inasafe/analysis_extent', extents)
settings.setValue('inasafe/analysis_extent_crs', 'EPSG:4326')
self.dock.read_settings()
setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction',
aggregation_layer=u'D\xedstr\xedct\'s of Jakarta',
aggregation_enabled_flag=True)
self.dock.extent.show_rubber_bands = True
expected_vertex_count = 2
# 4326 with disabled on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
# User extent should override this
set_small_jakarta_extent(self.dock)
self.dock.extent.show_user_analysis_extent()
user_band = self.dock.extent.user_analysis_rubberband
self.assertEqual(expected_vertex_count, user_band.numberOfVertices())
开发者ID:lucernae,项目名称:inasafe,代码行数:33,代码来源:test_dock.py
示例11: test_result_styling
def test_result_styling(self):
"""Test that colours and opacity from a model are correctly styled."""
settings = QtCore.QSettings()
settings.setValue('inasafe/analysis_extents_mode', 'HazardExposure')
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
self.dock.accept()
safe_layer = self.dock.impact_function.impact
qgis_layer = read_impact_layer(safe_layer)
style = safe_layer.get_style_info()
setRasterStyle(qgis_layer, style)
# simple test for now - we could test explicitly for style state
# later if needed.
message = (
'Raster layer was not assigned a Singleband pseudocolor '
'renderer as expected.')
self.assertEquals(
qgis_layer.renderer().type(), 'singlebandpseudocolor', message)
开发者ID:easmetz,项目名称:inasafe,代码行数:30,代码来源:test_dock.py
示例12: xtest_print_map
def xtest_print_map(self):
"""Test print map, especially on Windows."""
settings = QtCore.QSettings()
settings.setValue('inasafe/analysis_extents_mode', 'HazardExposure')
result, message = setup_scenario(
self.dock,
hazard='Classified Flood',
exposure='Buildings',
function='Be impacted in each hazard class',
function_id='ClassifiedRasterHazardBuildingFunction')
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
self.assertTrue(result, message)
# Press RUN
button = self.dock.pbnRunStop
# noinspection PyCallByClass,PyTypeChecker
button.click()
print_button = self.dock.pbnPrint
try:
# noinspection PyCallByClass,PyTypeChecker
print_button.click()
except OSError:
LOGGER.debug('OSError')
# pass
except Exception, e:
raise Exception('Exception is not expected, %s' % e)
开发者ID:easmetz,项目名称:inasafe,代码行数:31,代码来源:test_dock.py
示例13: test_issue581
def test_issue581(self):
"""Test issue #581 in github - Humanize can produce IndexError : list
index out of range
"""
# See https://github.com/AIFDR/inasafe/issues/581
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_small_jakarta_extent(self.dock)
# Press RUN
self.dock.accept()
result = self.dock.wvResults.page().currentFrame().toPlainText()
message = 'Result not as expected: %s' % result
self.assertTrue('IndexError' not in result, message)
self.assertTrue(
'It appears that no Population are affected by Continuous Flood.'
in result, message)
开发者ID:lucernae,项目名称:inasafe,代码行数:26,代码来源:test_dock.py
示例14: test_issue160
def test_issue160(self):
"""Test that multipart features can be used in a scenario - issue #160
"""
exposure = test_data_path('exposure', 'buildings.shp')
hazard = test_data_path('hazard', 'flood_multipart_polygons.shp')
# See https://github.com/AIFDR/inasafe/issues/71
# Push OK with the left mouse button
# print 'Using QGIS: %s' % qgis_version()
self.tearDown()
button = DOCK.pbnRunStop
# First part of scenario should have enabled run
file_list = [hazard, exposure]
hazard_layer_count, exposure_layer_count = load_layers(file_list)
message = (
'Incorrect number of Hazard layers: expected 1 got %s'
% hazard_layer_count)
self.assertTrue(hazard_layer_count == 1, message)
message = (
'Incorrect number of Exposure layers: expected 1 got %s'
% exposure_layer_count)
self.assertTrue(exposure_layer_count == 1, message)
message = 'Run button was not enabled'
self.assertTrue(button.isEnabled(), message)
# Second part of scenario - run disabled when adding invalid layer
# and select it - run should be disabled
path = os.path.join(TESTDATA, 'issue71.tif')
file_list = [path] # This layer has incorrect keywords
clear_flag = False
_, _ = load_layers(file_list, clear_flag)
result, message = setup_scenario(
DOCK,
hazard='Flood Polygon',
exposure='Buildings',
function='Be flooded',
function_id='FloodPolygonBuildingFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
expected_extent = QgsRectangle(
106.80801, -6.19531, 106.83456946836641, -6.167526)
CANVAS.setExtent(expected_extent)
crs = QgsCoordinateReferenceSystem('EPSG:4326')
DOCK.define_user_analysis_extent(expected_extent, crs)
# Press RUN
# noinspection PyCallByClass,PyCallByClass,PyTypeChecker
DOCK.accept()
result = DOCK.wvResults.page_to_text()
message = 'Result not as expected: %s' % result
self.assertTrue(format_int(33) in result, message)
开发者ID:Charlotte-Morgan,项目名称:inasafe,代码行数:59,代码来源:test_dock.py
示例15: test_save_scenario
def test_save_scenario(self):
"""Test saving Current scenario."""
result, message = setup_scenario(
DOCK,
hazard='Classified Flood',
exposure='Population',
function='Be affected by each hazard class',
function_id='ClassifiedRasterHazardPopulationFunction')
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(dock=DOCK)
# create unique file
scenario_file = unique_filename(
prefix='scenarioTest', suffix='.txt', dir=temp_dir('test'))
self.save_scenario_dialog.save_scenario(
scenario_file_path=scenario_file)
with open(scenario_file) as f:
data = f.readlines()
title = data[0][:-1]
exposure = data[1][:-1]
hazard = data[2][:-1]
function = data[3][:-1]
extent = data[4][:-1]
self.assertTrue(
os.path.exists(scenario_file),
'File %s does not exist' % scenario_file)
self.assertTrue(
title == '[Classified Flood]',
'Title is not the same')
self.assertTrue(
exposure.startswith('exposure =') and exposure.endswith(
'pop_binary_raster_20_20.asc'),
'Exposure is not the same')
self.assertTrue(
hazard.startswith('hazard =') and hazard.endswith(
'classified_flood_20_20.asc'),
'Hazard is not the same')
self.assertTrue(
function == (
'function = ClassifiedRasterHazardPopulationFunction'),
'Impact function is not same')
# TODO: figure out why this changed between releases
if qgis_version() < 20400:
# For QGIS 2.0
expected_extent = (
'extent = 106.313333, -6.380000, 107.346667, -6.070000')
self.assertEqual(expected_extent, extent)
else:
# for QGIS 2.4
expected_extent = (
'extent = 106.287500, -6.380000, 107.372500, -6.070000')
self.assertEqual(expected_extent, expected_extent)
开发者ID:Samweli,项目名称:inasafe,代码行数:57,代码来源:test_save_scenario.py
示例16: test_full_run_qgszstats
def test_full_run_qgszstats(self):
"""Aggregation results are correct using native QGIS zonal stats.
.. note:: We know this is going to fail (hence the decorator) as
QGIS1.8 zonal stats are broken. We expect this to pass when we
have ported to the QGIS 2.0 api at which time we can remove the
decorator. TS July 2013
"""
# TODO check that the values are similar enough to the python stats
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Population',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction',
aggregation_layer=u'D\xedstr\xedct\'s of Jakarta',
aggregation_enabled_flag=True)
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
# Press RUN
# noinspection PyCallByClass,PyTypeChecker
# use QGIS zonal stats only in the test
qgis_zonal_flag = bool(QtCore.QSettings().value(
'inasafe/use_native_zonal_stats', False, type=bool))
QtCore.QSettings().setValue('inasafe/use_native_zonal_stats', True)
self.dock.accept()
QtCore.QSettings().setValue('inasafe/use_native_zonal_stats',
qgis_zonal_flag)
result = self.dock.wvResults.page_to_text()
control_file_path = test_data_path(
'control',
'files',
'test-full-run-results-qgis.txt')
expected_result = codecs.open(
control_file_path,
mode='r',
encoding='utf-8').readlines()
result = result.replace(
'</td> <td>', ' ').replace('</td><td>', ' ')
result = result.replace(
'<th class="text-right">', ' ').replace('</th>', ' ')
result = result.replace(
'</td><td class="text-right">', ' ')
for line in expected_result:
line = line.replace('\n', '')
self.assertIn(line, result)
开发者ID:lucernae,项目名称:inasafe,代码行数:55,代码来源:test_dock.py
示例17: test_issue317
def test_issue317(self):
"""Points near the edge of a raster hazard layer are interpolated OK"""
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(DOCK)
result, message = setup_scenario(
DOCK,
hazard='A flood in Jakarta like in 2007',
exposure='OSM Building Polygons',
function='Be flooded',
function_id='Flood Raster Building Impact Function')
DOCK.get_functions()
self.assertTrue(result, message)
开发者ID:severinmenard,项目名称:inasafe,代码行数:13,代码来源:test_dock.py
示例18: test_issue317
def test_issue317(self):
"""Points near the edge of a raster hazard layer are interpolated OK"""
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
result, message = setup_scenario(
self.dock,
hazard='Continuous Flood',
exposure='Buildings',
function='Be flooded',
function_id='FloodRasterBuildingFunction')
self.dock.get_functions()
self.assertTrue(result, message)
开发者ID:lucernae,项目名称:inasafe,代码行数:13,代码来源:test_dock.py
示例19: test_full_run_qgszstats
def test_full_run_qgszstats(self):
"""Aggregation results are correct using native QGIS zonal stats.
.. note:: We know this is going to fail (hence the decorator) as
QGIS1.8 zonal stats are broken. We expect this to pass when we
have ported to the QGIS 2.0 api at which time we can remove the
decorator. TS July 2013
"""
# TODO check that the values are similar enough to the python stats
path = os.path.join(BOUNDDATA, 'kabupaten_jakarta.shp')
file_list = [path]
load_layers(file_list, clear_flag=False)
result, message = setup_scenario(
DOCK,
hazard='A flood in Jakarta like in 2007',
exposure='People',
function='Need evacuation',
function_id='Flood Evacuation Function',
aggregation_layer='kabupaten jakarta',
aggregation_enabled_flag=True)
self.assertTrue(result, message)
# Enable on-the-fly reprojection
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(DOCK)
# Press RUN
# noinspection PyCallByClass,PyTypeChecker
# use QGIS zonal stats only in the test
qgis_zonal_flag = bool(QtCore.QSettings().value(
'inasafe/use_native_zonal_stats', False, type=bool))
QtCore.QSettings().setValue('inasafe/use_native_zonal_stats', True)
DOCK.accept()
QtCore.QSettings().setValue('inasafe/use_native_zonal_stats',
qgis_zonal_flag)
result = DOCK.wvResults.page_to_text()
control_file_path = test_data_path(
'control',
'files',
'test-full-run-results-qgis.txt')
expected_result = open(control_file_path, 'rb').readlines()
result = result.replace(
'</td> <td>', ' ').replace('</td><td>', ' ')
for line in expected_result:
line = line.replace('\n', '')
self.assertIn(line, result)
开发者ID:severinmenard,项目名称:inasafe,代码行数:51,代码来源:test_dock.py
示例20: xtest_extents_changed
def xtest_extents_changed(self):
"""Memory requirements are calculated correctly when extents change.
"""
set_canvas_crs(GEOCRS, True)
set_jakarta_extent(self.dock)
setup_scenario(
self.dock,
hazard='A flood in Jakarta like in 2007',
exposure='Penduduk Jakarta',
function='Need evacuation',
function_id='FloodEvacuationRasterHazardFunction')
result = self.dock.checkMemoryUsage()
message = 'Expected "3mb" to apear in : %s' % result
self.assertTrue(result is not None, 'Check memory reported None')
self.assertTrue('3mb' in result, message)
开发者ID:lucernae,项目名称:inasafe,代码行数:15,代码来源:test_dock.py
注:本文中的safe.test.utilities.set_canvas_crs函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论