def testRenderZRange(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/sunshine-coast/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) renderer = QgsPointCloudClassifiedRenderer() renderer.setAttribute('Classification') layer.setRenderer(renderer) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs(layer.crs()) mapsettings.setExtent(QgsRectangle(498061, 7050991, 498069, 7050999)) mapsettings.setLayers([layer]) mapsettings.setZRange(QgsDoubleRange(74.7, 75)) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_classified_zfilter') result = renderchecker.runTest('expected_classified_zfilter') TestQgsPointCloudClassifiedRenderer.report += renderchecker.report() self.assertTrue(result)
def testRenderZRange(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/sunshine-coast/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) renderer = QgsPointCloudAttributeByRampRenderer() renderer.setAttribute('Intensity') renderer.setMinimum(200) renderer.setMaximum(1000) ramp = QgsStyle.defaultStyle().colorRamp("Viridis") shader = QgsColorRampShader(200, 1000, ramp) shader.classifyColorRamp() renderer.setColorRampShader(shader) layer.setRenderer(renderer) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs(layer.crs()) mapsettings.setExtent(QgsRectangle(498061, 7050991, 498069, 7050999)) mapsettings.setLayers([layer]) mapsettings.setZRange(QgsDoubleRange(74.7, 75)) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_ramp_zfilter') result = renderchecker.runTest('expected_ramp_zfilter') TestQgsPointCloudAttributeByRampRenderer.report += renderchecker.report( ) self.assertTrue(result)
def testRenderCrsTransform(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/sunshine-coast/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) renderer = QgsPointCloudClassifiedRenderer() renderer.setAttribute('Classification') layer.setRenderer(renderer) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs( QgsCoordinateReferenceSystem('EPSG:4326')) mapsettings.setExtent( QgsRectangle(152.980508492, -26.662023491, 152.980586020, -26.662071137)) mapsettings.setLayers([layer]) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName( 'expected_classified_render_crs_transform') result = renderchecker.runTest( 'expected_classified_render_crs_transform') TestQgsPointCloudClassifiedRenderer.report += renderchecker.report() self.assertTrue(result)
def testRenderZRange(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/rgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs(layer.crs()) mapsettings.setExtent( QgsRectangle(497753.5, 7050887.5, 497754.6, 7050888.6)) mapsettings.setLayers([layer]) mapsettings.setZRange(QgsDoubleRange(1.1, 1.2)) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_zfilter') result = renderchecker.runTest('expected_zfilter') TestQgsPointCloudRgbRenderer.report += renderchecker.report() self.assertTrue(result)
def testSetLayer16(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/rgb16/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) # test that a point cloud with RGB attributes is automatically assigned the RGB renderer by default self.assertIsInstance(layer.renderer(), QgsPointCloudRgbRenderer) # for this point cloud, we should default to 0-65024 ranges with contrast enhancement self.assertEqual( layer.renderer().redContrastEnhancement().minimumValue(), 0) self.assertEqual( layer.renderer().redContrastEnhancement().maximumValue(), 65535.0) self.assertEqual( layer.renderer().redContrastEnhancement( ).contrastEnhancementAlgorithm(), QgsContrastEnhancement.StretchToMinimumMaximum) self.assertEqual( layer.renderer().greenContrastEnhancement().minimumValue(), 0) self.assertEqual( layer.renderer().greenContrastEnhancement().maximumValue(), 65535.0) self.assertEqual( layer.renderer().greenContrastEnhancement( ).contrastEnhancementAlgorithm(), QgsContrastEnhancement.StretchToMinimumMaximum) self.assertEqual( layer.renderer().blueContrastEnhancement().minimumValue(), 0) self.assertEqual( layer.renderer().blueContrastEnhancement().maximumValue(), 65535.0) self.assertEqual( layer.renderer().blueContrastEnhancement( ).contrastEnhancementAlgorithm(), QgsContrastEnhancement.StretchToMinimumMaximum)
def testRenderCrsTransform(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/rgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs( QgsCoordinateReferenceSystem('EPSG:4326')) mapsettings.setExtent( QgsRectangle(152.977434544, -26.663017454, 152.977424882, -26.663009624)) mapsettings.setLayers([layer]) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_rgb_render_crs_transform') result = renderchecker.runTest('expected_rgb_render_crs_transform') TestQgsPointCloudRgbRenderer.report += renderchecker.report() self.assertTrue(result)
def testRenderFiltered(self): layer = QgsPointCloudLayer(unitTestDataPath() + '/point_clouds/ept/sunshine-coast/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) categories = QgsPointCloudRendererRegistry.classificationAttributeCategories(layer) renderer = QgsPointCloudClassifiedRenderer('Classification', categories) layer.setRenderer(renderer) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) layer.setSubsetString('NumberOfReturns > 1') mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs(layer.crs()) mapsettings.setExtent(QgsRectangle(498061, 7050991, 498069, 7050999)) mapsettings.setLayers([layer]) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_classified_render_filtered') result = renderchecker.runTest('expected_classified_render_filtered') TestQgsPointCloudClassifiedRenderer.report += renderchecker.report() self.assertTrue(result) layer.setSubsetString('') renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_classified_render_unfiltered') result = renderchecker.runTest('expected_classified_render_unfiltered') TestQgsPointCloudClassifiedRenderer.report += renderchecker.report() self.assertTrue(result)
def testSetLayer(self): layer = QgsPointCloudLayer(unitTestDataPath() + '/point_clouds/ept/norgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) # test that a point cloud with no RGB attributes is automatically assigned the ramp renderer self.assertIsInstance(layer.renderer(), QgsPointCloudAttributeByRampRenderer) # check default range self.assertAlmostEqual(layer.renderer().minimum(), -1.98, 6) self.assertAlmostEqual(layer.renderer().maximum(), -1.92, 6)
def testSetLayer(self): layer = QgsPointCloudLayer(unitTestDataPath() + '/point_clouds/ept/rgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) # test that a point cloud with RGB attributes is automatically assigned the RGB renderer by default self.assertIsInstance(layer.renderer(), QgsPointCloudRgbRenderer) # for this point cloud, we should default to 0-255 ranges (ie. no contrast enhancement) self.assertIsNone(layer.renderer().redContrastEnhancement()) self.assertIsNone(layer.renderer().greenContrastEnhancement()) self.assertIsNone(layer.renderer().blueContrastEnhancement())
def testSetLayer(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/rgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) # test that a point cloud with RGB attributes is automatically assigned the RGB renderer by default self.assertIsInstance(layer.renderer(), QgsPointCloudRgbRenderer)
def testRenderWithContrast(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/rgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) redce = QgsContrastEnhancement() redce.setMinimumValue(100) redce.setMaximumValue(120) redce.setContrastEnhancementAlgorithm( QgsContrastEnhancement.StretchToMinimumMaximum) layer.renderer().setRedContrastEnhancement(redce) greence = QgsContrastEnhancement() greence.setMinimumValue(130) greence.setMaximumValue(150) greence.setContrastEnhancementAlgorithm( QgsContrastEnhancement.StretchToMinimumMaximum) layer.renderer().setGreenContrastEnhancement(greence) bluece = QgsContrastEnhancement() bluece.setMinimumValue(170) bluece.setMaximumValue(190) bluece.setContrastEnhancementAlgorithm( QgsContrastEnhancement.StretchToMinimumMaximum) layer.renderer().setBlueContrastEnhancement(bluece) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs(layer.crs()) mapsettings.setExtent( QgsRectangle(497753.5, 7050887.5, 497754.6, 7050888.6)) mapsettings.setLayers([layer]) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_rgb_contrast') result = renderchecker.runTest('expected_rgb_contrast') TestQgsPointCloudRgbRenderer.report += renderchecker.report() self.assertTrue(result)
def testRenderClipRegion(self): layer = QgsPointCloudLayer( unitTestDataPath() + '/point_clouds/ept/rgb/ept.json', 'test', 'ept') self.assertTrue(layer.isValid()) layer.renderer().setPointSize(2) layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderMillimeters) mapsettings = QgsMapSettings() mapsettings.setOutputSize(QSize(400, 400)) mapsettings.setOutputDpi(96) mapsettings.setDestinationCrs( QgsCoordinateReferenceSystem('EPSG:4326')) mapsettings.setExtent( QgsRectangle(152.977434544, -26.663017454, 152.977424882, -26.663009624)) mapsettings.setLayers([layer]) region = QgsMapClippingRegion( QgsGeometry.fromWkt( 'Polygon ((152.97742833685992991 -26.66301088198133584, 152.97742694456141521 -26.66301085776744983, 152.97742676295726483 -26.66301358182974468, 152.97742895431403554 -26.66301349708113833, 152.97742833685992991 -26.66301088198133584))' )) region.setFeatureClip( QgsMapClippingRegion.FeatureClippingType.ClipPainterOnly) region2 = QgsMapClippingRegion( QgsGeometry.fromWkt( 'Polygon ((152.97743215054714483 -26.66301111201326535, 152.97742715037946937 -26.66301116044103736, 152.97742754990858316 -26.66301436878107367, 152.97743264693181686 -26.66301491359353193, 152.97743215054714483 -26.66301111201326535))' )) region2.setFeatureClip( QgsMapClippingRegion.FeatureClippingType.ClipToIntersection) mapsettings.addClippingRegion(region) mapsettings.addClippingRegion(region2) renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(mapsettings) renderchecker.setControlPathPrefix('pointcloudrenderer') renderchecker.setControlName('expected_clip_region') result = renderchecker.runTest('expected_clip_region') TestQgsPointCloudRgbRenderer.report += renderchecker.report() self.assertTrue(result)