Message posté par : Ludovic Granjon
----------------------------------------
Bonjour à tous,
J'essaie de gérer le style d'un raster en python
Cela fonctionne comme je le souhaite pour le raster, néanmoins plusieurs soucis demeurent
:
Sur la capture jointe, voila le résultat obtenu après le traitement python
Ma première question : comment faire que la légende du panneau layers (à gauche) soit mise
à jour et corresponde à ce que j'ai dans le panneau style (à droite)
A noter qu'il suffit que j'aille dans ce panneau style, que je valide par Apply
pour que ça soit répercuté dans le panneau layers ... évidement je cherche à le faire en
Python
Ma deuxième question :
Sauriez vous comment faire en python pour obtenir le meme comportement que lorsqu'on
va dans le panneau style / legend setting et qu'on décoche use continuous legend ->
ce qui permet d'avoir les différents items de la rampe de couleur affiché avec leur
label ?
Mon code actuel :
-----------------
Code :
rlayer = QgsProject.instance().mapLayersByName('ma_couche')[0]
extent = rlayer.extent()
provider = rlayer.dataProvider()
colDic={'1':'#fff5eb','2':'#7f2704'}
fcn = QgsColorRampShader()
fcn.setColorRampType(QgsColorRampShader.Interpolated)
stats = provider.bandStatistics(1, QgsRasterBandStats.All, extent, 0)
min = stats.minimumValue
max = stats.maximumValue
lst2 = [ QgsColorRampShader.ColorRampItem(min, QColor(colDic['1']), str(min)),
QgsColorRampShader.ColorRampItem(max, QColor(colDic['2']),
str(round(max)))]
fcn.setColorRampItemList(lst2)
shader = QgsRasterShader()
shader.setRasterShaderFunction(fcn)
renderer = QgsSingleBandPseudoColorRenderer(rlayer.dataProvider(), 1, shader)
rlayer.setRenderer(renderer)
rlayer.triggerRepaint()
iface.layerTreeView().refreshLayerSymbology(rlayer.id())
-----------------
Merci à tous
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=343809#p343809
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net