-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSymbology.py
40 lines (33 loc) · 1.04 KB
/
Symbology.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
rlayer = iface.activeLayer()
stats = rlayer.dataProvider().bandStatistics(1, QgsRasterBandStats.All)
min = stats.minimumValue
max = stats.maximumValue
symbol = QgsColorRampShader()
symbol.setColorRampType(QgsColorRampShader.Discrete)
breaks = []
labels = []
lst = []
colors = [QColor(77,80,87),QColor(78,110,93),QColor(77,161,103),QColor(59,193,74),QColor(207, 207, 207)]
gap = max - min
jump = int(round(gap/5,0))
i = 1
val = min
breaks.append(val)
while i < 5:
i= i + 1
val = val + jump
breaks.append(val)
for i in breaks:
if i+jump < max:
labels.append(str(i)+" to "+ str(i + jump))
else:
labels.append(str(i)+" to "+ str(max))
for i,j,k in (zip(breaks,colors,labels)):
lst.append(QgsColorRampShader.ColorRampItem(i,j,k))
symbol.setColorRampItemList(lst)
shader = QgsRasterShader()
shader.setRasterShaderFunction(symbol)
renderer = QgsSingleBandPseudoColorRenderer(rlayer.dataProvider(), 1, shader)
rlayer.setRenderer(renderer)
rlayer.triggerRepaint()
iface.layerTreeView().refreshLayerSymbology(rlayer.id())