当前位置: 首页>>代码示例>>Python>>正文


Python QgsRasterLayer.triggerRepaint方法代码示例

本文整理汇总了Python中qgis.core.QgsRasterLayer.triggerRepaint方法的典型用法代码示例。如果您正苦于以下问题:Python QgsRasterLayer.triggerRepaint方法的具体用法?Python QgsRasterLayer.triggerRepaint怎么用?Python QgsRasterLayer.triggerRepaint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qgis.core.QgsRasterLayer的用法示例。


在下文中一共展示了QgsRasterLayer.triggerRepaint方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: raster_subtract

# 需要导入模块: from qgis.core import QgsRasterLayer [as 别名]
# 或者: from qgis.core.QgsRasterLayer import triggerRepaint [as 别名]
    def raster_subtract(self):
        # if the layer does not exist it has to be created
        rlayer1 = QgsMapLayerRegistry.instance().mapLayersByName( self.cb_input1.currentText() )[0]
        rlayer2 = QgsMapLayerRegistry.instance().mapLayersByName( self.cb_input2.currentText() )[0]
        fileName = self.lineEdit.text()
        
        entries = []
        # Define band1
        boh1 = QgsRasterCalculatorEntry()
        boh1.ref = '[email protected]'
        boh1.raster = rlayer1
        boh1.bandNumber = 1
        entries.append( boh1 )
        
        # Define band2
        boh2 = QgsRasterCalculatorEntry()
        boh2.ref = '[email protected]'
        boh2.raster = rlayer2
        boh2.bandNumber = 1
        entries.append( boh2 )
        
        # Process calculation with input extent and resolution
        calc = QgsRasterCalculator( '[email protected] - [email protected]', fileName, \
                                    'GTiff', rlayer1.extent(), \
                                    rlayer1.width(), rlayer1.height(), entries )
        calc.processCalculation()
        
        # Load the file into the map
        fileInfo = QFileInfo(fileName)
        baseName = fileInfo.baseName()

        root = QgsProject.instance().layerTreeRoot()
        node_group1 = root.insertGroup(0, "Group 1")
        node_subgroup1 = node_group1.addGroup("Sub-group 1")

        # Check out signals from nodes section
        # http://www.lutraconsulting.co.uk/blog/2014/07/25/qgis-layer-tree-api-part-2/

        # if the layer does not exist it has to be created
        if not QgsMapLayerRegistry.instance().mapLayersByName(baseName):
            rOutput = QgsRasterLayer(fileName, baseName)
            QgsMapLayerRegistry.instance().addMapLayer(rOutput, False)
            setRamp(rOutput, self.iface)
            node_layer1 = node_subgroup1.addLayer(rOutput)

        # if the layer already exists trigger a refresh
        else:
            rOutput = QgsMapLayerRegistry.instance().mapLayersByName(baseName)[0]
            rOutput.triggerRepaint()
开发者ID:NorthArrowResearch,项目名称:qgis-experiments,代码行数:51,代码来源:subtract.py

示例2: loadLabelImage

# 需要导入模块: from qgis.core import QgsRasterLayer [as 别名]
# 或者: from qgis.core.QgsRasterLayer import triggerRepaint [as 别名]
    def loadLabelImage(imagepath, labeldescriptor = None):
        """
        Load a labeled single band raster in the canvas

        Keyword arguments:
        imagepath -- the path to the image
        labeldescriptor -- a dictionnary for label (int) to tuple (QColor, QString) conversion
        """
        if imagepath is None:
            return

        name = os.path.splitext( os.path.basename(imagepath) )[0]
        qgslayer = QgsRasterLayer(imagepath, name)
        if not qgslayer.isValid():
            QtGui.QMessageBox.critical(None,
                                       u"Erreur",
                                       u"Impossible de charger la couche %s" % unicode(imagepath))

        QgsMapLayerRegistry.instance().addMapLayer(qgslayer)

        qgslayer.setDrawingStyle('SingleBandPseudoColor')

        colorlist = []
        max_label = 0
        for label in sorted(labeldescriptor.keys()):
            color = labeldescriptor[label][0]
            labeltxt = labeldescriptor[label][1]
            colorlist.append(QgsColorRampShader.ColorRampItem(label, color, labeltxt))
            if labeltxt > max_label:
                max_label = labeltxt

        s = QgsRasterShader()
        c = QgsColorRampShader()
        c.setColorRampType(QgsColorRampShader.INTERPOLATED)
        c.setColorRampItemList(colorlist)
        s.setRasterShaderFunction(c)
        ps = QgsSingleBandPseudoColorRenderer(qgslayer.dataProvider(), 1, s)
        qgslayer.setRenderer(ps)

        for bandNo in range(1,qgslayer.dataProvider().bandCount()+1):
            qgslayer.dataProvider().setUseSrcNoDataValue( bandNo, False )

        QGisLayers.iface.legendInterface().refreshLayerSymbology(qgslayer)
        if hasattr(qgslayer, "setCacheImage"):
            qgslayer.setCacheImage(None)
        qgslayer.triggerRepaint()
开发者ID:CS-SI,项目名称:TerreImage,代码行数:48,代码来源:QGisLayers.py

示例3: run

# 需要导入模块: from qgis.core import QgsRasterLayer [as 别名]
# 或者: from qgis.core.QgsRasterLayer import triggerRepaint [as 别名]
    def run(self):
        """Run method that performs all the real work"""

        # Update combos
        allLayers = self.iface.legendInterface().layers()
        rasterLayers = [lyr for lyr in allLayers if lyr.type() == 1]
        rasterNames = [lyr.name() for lyr in rasterLayers]
        vectorLayers = [lyr for lyr in allLayers if lyr.type() == 0]
        tableLayers = [lyr for lyr in vectorLayers if lyr.geometryType() == 4]
        tableNames = [lyr.name() for lyr in tableLayers]

        self.dlg.updateCombo(self.dlg.rasterCombo, rasterNames)
        self.dlg.updateCombo(self.dlg.tableCombo, tableNames)

        # show the dialog
        self.dlg.show()
        # Run the dialog event loop
        result = self.dlg.exec_()


        # See if OK was pressed
        if result:

            d = self.dlg
            table = self.getLayerbyName(d.getTable())
            fields = [unicode(d.getValue()), d.getDescription()]
            colorMode = d.colorMode
            
            if colorMode != "rnd":
                fields = fields + d.getColors()

            fieldData = readFieldData(table, fields)

            grid = self.getLayerbyName(d.getRaster())

            # If random colors, create a color for each category
            if colorMode == "rnd":
                cat = list(set([x[1] for x in fieldData]))
                colors = rndColorRamp(len(cat))
                fieldData = [x + colors[cat.index(x[1])] for x in fieldData]
                
            # Paint raster
            shader = createRasterShader(fieldData, colorMode, d.getScale)
            render = renderer(grid.dataProvider(), 1, shader)
            grid.setRenderer(render)
            grid.triggerRepaint()
                
            if d.getNewRaster():
                dstFile = d.getNewRasterFile()
                # Reclassify and create a new raster
                newclass, cat = intClass(fieldData)
                newraster = reclassRaster(grid, newclass, dstFile)

                # Add new raster to TOC and display
                baseName = os.path.basename(dstFile)
                newLayer = QgsRasterLayer(dstFile, baseName)
                QgsMapLayerRegistry.instance().addMapLayer(newLayer)
                
                # Re-paint the new raster
                shader = createRasterShader(cat, colorMode, d.getScale)
                render = renderer(newLayer.dataProvider(), 1, shader)
                newLayer.setRenderer(render)
                newLayer.triggerRepaint()
开发者ID:ptarroso,项目名称:table2style,代码行数:65,代码来源:table2style.py


注:本文中的qgis.core.QgsRasterLayer.triggerRepaint方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。