Skip to content

Commit 1c3453c

Browse files
authored
Add files via upload
1 parent e1bdf44 commit 1c3453c

4 files changed

+147
-0
lines changed

Diff for: ColorClassificationMap.py

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from PyQt5.QtCore import *
2+
from PyQt5.QtGui import *
3+
4+
layer = iface.activeLayer()
5+
6+
renderer = layer.renderer()
7+
provider = layer.dataProvider()
8+
extent = layer.extent()
9+
10+
ver = provider.hasStatistics(1, QgsRasterBandStats.All)
11+
12+
stats = provider.bandStatistics(1, QgsRasterBandStats.All,extent, 0)
13+
14+
if ver is not False:
15+
print("minimumValue = ", stats.minimumValue)
16+
17+
print("maximumValue = ", stats.maximumValue)
18+
19+
if (stats.minimumValue < 0):
20+
min = 0
21+
22+
else:
23+
min= stats.minimumValue
24+
25+
max = stats.maximumValue
26+
range = max - min
27+
add = range//2
28+
interval = min + add
29+
30+
colDic = {'red':'#ff0000', 'yellow':'#ffff00','blue':'#0000ff'}
31+
32+
valueList =[min, interval, max]
33+
34+
lst = [ QgsColorRampShader.ColorRampItem(valueList[0], QColor(colDic['red'])),
35+
QgsColorRampShader.ColorRampItem(valueList[1], QColor(colDic['yellow'])),
36+
QgsColorRampShader.ColorRampItem(valueList[2], QColor(colDic['blue']))]
37+
38+
myRasterShader = QgsRasterShader()
39+
myColorRamp = QgsColorRampShader()
40+
41+
myColorRamp.setColorRampItemList(lst)
42+
myColorRamp.setClassificationMode(1) # this line doesn't work
43+
myRasterShader.setRasterShaderFunction(myColorRamp)
44+
45+
myPseudoRenderer = QgsSingleBandPseudoColorRenderer(layer.dataProvider(),
46+
layer.type(),
47+
myRasterShader)
48+
49+
layer.setRenderer(myPseudoRenderer)
50+
51+
layer.triggerRepaint()

Diff for: QGISContrastFilter.py

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# get the raster layer
2+
layer = iface.activeLayer()
3+
4+
# define the filter
5+
contrastFilter = QgsBrightnessContrastFilter()
6+
contrastFilter.setContrast(50)
7+
8+
# assign filter to raster pipe
9+
layer.pipe().set(contrastFilter)
10+
11+
# apply changes
12+
layer.triggerRepaint()
13+
14+
# to set contrast back, change properties of assigned filter.
15+
# DO NOT ASSIGN THIS OR ANOTHER QgsBrightnessContrastFilter AGAIN, QGIS WILL CRASH
16+
contrastFilter.setContrast(0)
17+
layer.triggerRepaint()

Diff for: RGBContrastEnhancement.py

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
layer = iface.activeLayer()
2+
renderer = layer.renderer()
3+
provider = layer.dataProvider()
4+
5+
bands = renderer.usesBands()
6+
7+
min = [provider.bandStatistics(band, QgsRasterBandStats.All).minimumValue
8+
for band in bands]
9+
10+
max = [provider.bandStatistics(band, QgsRasterBandStats.All).maximumValue
11+
for band in bands]
12+
13+
print(min)
14+
print(max)
15+
16+
ContrastEnhancement = QgsContrastEnhancement.StretchToMinimumMaximum
17+
18+
myRedBand = layer.renderer().redBand()
19+
myRedType = layer.renderer().dataType(myRedBand)
20+
myRedEnhancement = QgsContrastEnhancement(myRedType)
21+
myRedEnhancement.setContrastEnhancementAlgorithm(ContrastEnhancement,True)
22+
myRedEnhancement.setMinimumValue(70)
23+
myRedEnhancement.setMaximumValue(255)
24+
layer.renderer().setRedContrastEnhancement(myRedEnhancement)
25+
26+
myGreenBand = layer.renderer().greenBand()
27+
myGreenType = layer.renderer().dataType(myGreenBand)
28+
myGreenEnhancement = QgsContrastEnhancement(myGreenType)
29+
myGreenEnhancement.setContrastEnhancementAlgorithm(ContrastEnhancement,True)
30+
myGreenEnhancement.setMinimumValue(89)
31+
myGreenEnhancement.setMaximumValue(255)
32+
layer.renderer().setGreenContrastEnhancement(myGreenEnhancement)
33+
34+
myBlueBand = layer.renderer().blueBand()
35+
myBlueType = layer.renderer().dataType(myBlueBand)
36+
myBlueEnhancement = QgsContrastEnhancement(myBlueType)
37+
myBlueEnhancement.setContrastEnhancementAlgorithm(ContrastEnhancement,True)
38+
myBlueEnhancement.setMinimumValue(90)
39+
myBlueEnhancement.setMaximumValue(255)
40+
layer.renderer().setBlueContrastEnhancement(myBlueEnhancement)
41+
42+
layer.triggerRepaint()

Diff for: evaluate mean and standard deviation constants.py

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from qgis.analysis import QgsRasterCalculator, QgsRasterCalculatorEntry
2+
3+
layer = iface.activeLayer()
4+
entries = []
5+
6+
# Define band1
7+
band1 = QgsRasterCalculatorEntry()
8+
band1.ref = 'band@1'
9+
band1.raster = layer
10+
band1.bandNumber = 1
11+
entries.append( band1 )
12+
13+
renderer = layer.renderer()
14+
provider = layer.dataProvider()
15+
extent = layer.extent()
16+
17+
stats = provider.bandStatistics(1, QgsRasterBandStats.All,extent, 0)
18+
19+
myMean = stats.mean
20+
myStdDev = stats.stdDev
21+
22+
myFormula = '(band@1 -' + str(myMean) +')/' + str(myStdDev)
23+
24+
print("mean = ", myMean)
25+
26+
print("stdev = ", myStdDev)
27+
28+
# Process calculation with input extent and resolution
29+
calc = QgsRasterCalculator( myFormula,
30+
'/home/zeito/pyqgis_data/outputfile.tif',
31+
'GTiff',
32+
layer.extent(),
33+
layer.width(),
34+
layer.height(),
35+
entries )
36+
37+
calc.processCalculation()

0 commit comments

Comments
 (0)