本文整理汇总了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()
示例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()
示例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()