2525from PyQt5 .QtGui import QIcon
2626# noinspection PyUnresolvedReferences
2727from qgis .core import (
28- QgsProcessingParameterFolderDestination ,
29- QgsProcessingParameterNumber , QgsProcessingParameterString , QgsRasterLayer ,
28+ QgsProcessingParameterFileDestination ,
29+ QgsProcessingParameterNumber , QgsProcessingParameterField , QgsRasterLayer ,
3030 QgsProject , QgsProcessingParameterRasterLayer ,
3131 QgsProcessingParameterVectorLayer
3232)
@@ -75,10 +75,11 @@ def initAlgorithm(self, config=None):
7575 )
7676 )
7777 self .addParameter (
78- QgsProcessingParameterString (
78+ QgsProcessingParameterField (
7979 name = self .TEXT ,
8080 description = self .translate ('Vector field' ),
81- defaultValue = '' , multiLine = False , optional = True
81+ defaultValue = 'class_id' ,
82+ parentLayerParameterName = self .INPUT_VECTOR , optional = True
8283 )
8384 )
8485 self .addParameter (
@@ -89,9 +90,10 @@ def initAlgorithm(self, config=None):
8990 )
9091 )
9192 self .addParameter (
92- QgsProcessingParameterFolderDestination (
93+ QgsProcessingParameterFileDestination (
9394 name = self .OUTPUT ,
94- description = self .translate ('Calculation output' )
95+ description = self .translate ('Calculation output' ),
96+ fileFilter = 'tif file (*.tif)'
9597 )
9698 )
9799
@@ -120,14 +122,13 @@ def processAlgorithm(self, parameters, context, feedback):
120122 reference = self .parameterAsFile (
121123 parameters , self .INPUT_RASTER_2 , context
122124 )
123- if reference is None :
125+ if reference is '' :
124126 reference = self .parameterAsFile (
125127 parameters , self .INPUT_VECTOR , context
126128 )
127- else :
128- if rs .files_directories .is_file (reference ) is False :
129- layer_x = root .findLayer (reference )
130- reference = layer_x .layer ().source ().split ("|layername=" )[0 ]
129+ if rs .files_directories .is_file (reference ) is False :
130+ layer_x = root .findLayer (reference )
131+ reference = layer_x .layer ().source ().split ("|layername=" )[0 ]
131132 field = self .parameterAsString (parameters , self .TEXT , context )
132133 if len (field ) == 0 :
133134 field = None
@@ -140,11 +141,6 @@ def processAlgorithm(self, parameters, context, feedback):
140141 output_path = self .parameterAsString (
141142 parameters , self .OUTPUT , context
142143 )
143- try :
144- if rs .files_directories .is_directory (output_path ) is False :
145- rs .files_directories .create_directory (output_path )
146- except Exception as err :
147- str (err )
148144 output = rs .cross_classification (
149145 classification_path = classification , reference_path = reference ,
150146 output_path = output_path , vector_field = field , nodata_value = nodata ,
0 commit comments