I interpolate and crop the temperature data with PyQGIS (QGIS 3.18). There is no problem so far, but I can not set style file. What can I do set style file correctly?
OS: Win10
import os, sys
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = r'C:\OSGeo4W64\apps\Qt5\plugins'
os.environ['PATH'] += r';C:\OSGeo4W64\apps\qgis\bin;C:\OSGeo4W64\apps\Qt5\bin;C:\OSGeo4W64\apps\qgis\python'
print (os.environ['PATH'])
from qgis.core import *
from qgis.core import QgsProcessing
from qgis.core import QgsApplication
from qgis.core import QgsProcessingAlgorithm
from qgis.core import QgsProcessingMultiStepFeedback
from qgis.core import QgsProcessingFeedback
from qgis.core import QgsProcessingParameterRasterLayer
from qgis.core import QgsProcessingParameterFeatureSink
from qgis.utils import *
from qgis.gui import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
Initialize QGIS Application
QgsApplication.setPrefixPath("C:\OSGeo4W64\apps\qgis", True)
qgs = QgsApplication([], False)
qgs.initQgis()
for alg in QgsApplication.processingRegistry().algorithms():
print(alg.id(), "->", alg.displayName())
#print("{}:{} --> {}".format(alg.provider().name(), alg.name(),alg.id(), alg.displayName()))
Append QGIS Python library to python search path
sys.path.append(r'C:\OSGeo4W64\apps\Python37')
sys.path.append(r'C:\OSGeo4W64\apps\qgis\plugins')
sys.path.append(r'C:\OSGeo4W64\apps\qgis\python\plugins')
sys.path.append(r'C:\OSGeo4W64\apps\qgis\python\plugins\processing')
Append location of DLLs to current system PATH envrionment variable
import processing
from qgis.analysis import QgsNativeAlgorithms
from processing.core.Processing import Processing
Processing.initialize()
QgsApplication.processingRegistry().addProvider(QgsNativeAlgorithms())
#running---
processing.run("qgis:idwinterpolation", {'INTERPOLATION_DATA':'E:\GIS\country.shp|subset="temperature" >= 0::~::0::~::6::~::0','DISTANCE_COEFFICIENT':2,'EXTENT':'24.945366085,45.353916836,35.218981812,43.628804562 [EPSG:4326]','PIXEL_SIZE':0.1,'OUTPUT':'E:\GIS\idw_temperature.tif'})
#running---
processing.run("gdal:cliprasterbymasklayer", {'INPUT':'E:\GIS\idw_temperature.tif','MASK':'E:\GIS\country_border.shp','SOURCE_CRS':None,'TARGET_CRS':None,'NODATA':None,'ALPHA_BAND':False,'CROP_TO_CUTLINE':True,'KEEP_RESOLUTION':False,'SET_RESOLUTION':False,'X_RESOLUTION':None,'Y_RESOLUTION':None,'MULTITHREADING':False,'OPTIONS':'','DATA_TYPE':0,'EXTRA':'','OUTPUT':'E:\GIS\idw_temperature_crop.tif'})
fileName = "E:\GIS\idw_temperature_crop.tif"
QML_file = "E:\temperaturestyle1.qml"
fileInfo = QFileInfo(fileName)
baseName = fileInfo.baseName()
rlayer = QgsRasterLayer(fileName, baseName)
if rlayer.isValid():
print ("Layer loaded!")
QgsProject.instance().addMapLayer(rlayer)
processing.run("native:setlayerstyle", {'INPUT': fileName, 'STYLE': QML_file}) ##returns nothing........
extent = rlayer.extent()
rlayer.triggerRepaint()
qgs.exitQgis()