def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND,
                                       self.tr('Band number'),
                                       1,
                                       parentLayerParameterName=self.INPUT))
        self.addParameter(
            QgsProcessingParameterPoint(self.OBSERVER,
                                        self.tr('Observer location')))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.OBSERVER_HEIGHT,
                self.tr('Observer height, DEM units'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=1.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.TARGET_HEIGHT,
                self.tr('Target height, DEM units'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=1.0))
        self.addParameter(
            QgsProcessingParameterDistance(
                self.MAX_DISTANCE,
                self.tr(
                    'Maximum distance from observer to compute visibility'),
                parentParameterName=self.INPUT,
                minValue=0.0,
                defaultValue=100.0))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation options'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        extra_param = QgsProcessingParameterString(
            self.EXTRA,
            self.tr('Additional command-line parameters'),
            defaultValue=None,
            optional=True)
        extra_param.setFlags(extra_param.flags()
                             | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(extra_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Output')))
Beispiel #2
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.MASK, self.tr('Mask layer'),
                [QgsProcessing.TypeVectorPolygon]))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NODATA,
                self.tr('Assign a specified nodata value to output bands'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=None,
                optional=True))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.ALPHA_BAND,
                self.tr('Create an output alpha band'),
                defaultValue=False))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.CROP_TO_CUTLINE,
                self.
                tr('Match the extent of the clipped raster to the extent of the mask layer'
                   ),
                defaultValue=True))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.KEEP_RESOLUTION,
                self.tr('Keep resolution of output raster'),
                defaultValue=False))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation options'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        dataType_param = QgsProcessingParameterEnum(
            self.DATA_TYPE,
            self.tr('Output data type'),
            self.TYPES,
            allowMultiple=False,
            defaultValue=0)
        dataType_param.setFlags(
            dataType_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(dataType_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Clipped (mask)')))
Beispiel #3
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_A,
                                              self.tr('Input layer A'),
                                              optional=False))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_A,
                                       self.tr('Number of raster band for A'),
                                       parentLayerParameterName=self.INPUT_A))
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_B,
                                              self.tr('Input layer B'),
                                              optional=True))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_B,
                                       self.tr('Number of raster band for B'),
                                       parentLayerParameterName=self.INPUT_B,
                                       optional=True))
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_C,
                                              self.tr('Input layer C'),
                                              optional=True))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_C,
                                       self.tr('Number of raster band for C'),
                                       parentLayerParameterName=self.INPUT_C,
                                       optional=True))
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_D,
                                              self.tr('Input layer D'),
                                              optional=True))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_D,
                                       self.tr('Number of raster band for D'),
                                       parentLayerParameterName=self.INPUT_D,
                                       optional=True))
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_E,
                                              self.tr('Input layer E'),
                                              optional=True))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_E,
                                       self.tr('Number of raster band for E'),
                                       parentLayerParameterName=self.INPUT_E,
                                       optional=True))
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_F,
                                              self.tr('Input layer F'),
                                              optional=True))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_F,
                                       self.tr('Number of raster band for F'),
                                       parentLayerParameterName=self.INPUT_F,
                                       optional=True))
        self.addParameter(
            QgsProcessingParameterString(
                self.FORMULA,
                self.
                tr('Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and())'
                   ),
                'A*2',
                optional=False))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NO_DATA,
                self.tr('Set output nodata value'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=None,
                optional=True))
        self.addParameter(
            QgsProcessingParameterEnum(self.RTYPE,
                                       self.tr('Output raster type'),
                                       options=self.TYPE,
                                       defaultValue=5))
        #self.addParameter(ParameterBoolean(
        #    self.DEBUG, self.tr('Print debugging information'), False))
        self.addParameter(
            QgsProcessingParameterString(
                self.EXTRA,
                self.tr('Additional creation parameters'),
                '',
                optional=True))

        # advanced raster params
        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation parameters'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Calculated')))
Beispiel #4
0
    def initAlgorithm(self, config=None):
        self.filters = (
            (self.tr('Morphological dilation'), 'dilate'),
            (self.tr('Morphological erosion'), 'erode'),
            (self.tr('Morpholigical closing'), 'close'),
            (self.tr('Morpholigical opening'), 'open'),
            (self.tr('Smooth NODATA'), 'smoothnodata'),
            (self.tr('Number of valid values'), 'nvalid'),
            (self.tr('Median'), 'median'),
            (self.tr('Variance'), 'var'),
            (self.tr('Minimum'), 'min'),
            (self.tr('Maximum'), 'max'),
            (self.tr('Sum'), 'sum'),
            (self.tr('Mean'), 'mean'),
            (self.tr('Standard deviation'), 'stdev'),
            (self.tr('Savitzky-Golay'), 'savgolay'),
            (self.tr('Percentile'), 'percentile'),
            (self.tr('Proportion'), 'proportion'),
            (self.tr('Discrete wavelet transform'), 'dwt'),
            (self.tr('Discrete inverse wavelet transform'), 'dwti'),
            (self.tr('Discrete wavelet + inverse with cut'), 'dwt_cut'),
            (self.tr('Markov random field'), 'mrf'),
            (self.tr('Is minimum?'), 'ismin'),
            (self.tr('Is maximum?'), 'ismax'),
            (self.tr('Pixel shift'), 'shift'),
            (self.tr('Scramble'), 'scramble'),
            (self.tr('Mode'), 'mode'),
            (self.tr('Horizontal edge detection'), 'sobelx'),
            (self.tr('Vertical edge detection'), 'sobely'),
            (self.tr('Diagonal edge detection (NE-SW)'), 'sobelxy'),
            (self.tr('Diagonal edge detection (NW-SE)'), 'sobelyx'),
            (self.tr('Count digital numbers'), 'countid'),
            (self.tr('Rank pixels in order'), 'order'),
            (self.tr('Density'), 'density'),
            (self.tr('Homogenity'), 'homog'),
            (self.tr('Heterogenity'), 'heterog'),
            (self.tr('Sauvola\'s thresholding'), 'sauvola'),
        )

        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterEnum(self.FILTER,
                                       self.tr('Post-processing filter'),
                                       options=[i[0] for i in self.filters],
                                       defaultValue=0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.KERNEL_X,
                self.tr('Kernel size in X'),
                type=QgsProcessingParameterNumber.Integer,
                minValue=0,
                defaultValue=3))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.KERNEL_Y,
                self.tr('Kernel size in Y'),
                type=QgsProcessingParameterNumber.Integer,
                minValue=0,
                defaultValue=3))

        params = []
        params.append(
            QgsProcessingParameterBoolean(
                self.CIRCULAR,
                self.tr('Use circular disc kernel for dilation and erosion'),
                defaultValue=False))
        params.append(
            QgsProcessingParameterString(self.ARGUMENTS,
                                         self.tr('Additional arguments'),
                                         defaultValue=None,
                                         optional=True))

        options = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Raster creation options'),
            defaultValue=None,
            optional=True)
        options.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        params.append(options)

        for p in params:
            p.setFlags(p.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
            self.addParameter(p)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Output file')))
Beispiel #5
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterMultipleLayers(self.INPUT,
                                                 self.tr('Input layers'),
                                                 QgsProcessing.TypeRaster))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.PCT,
                self.tr('Grab pseudocolor table from first layer'),
                defaultValue=False))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.SEPARATE,
                self.tr('Place each input file into a separate band'),
                defaultValue=False))

        nodata_param = QgsProcessingParameterNumber(
            self.NODATA_INPUT,
            self.tr('Input pixel value to treat as "nodata"'),
            type=QgsProcessingParameterNumber.Integer,
            defaultValue=None,
            optional=True)
        nodata_param.setFlags(nodata_param.flags()
                              | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(nodata_param)

        nodata_out_param = QgsProcessingParameterNumber(
            self.NODATA_OUTPUT,
            self.tr('Assign specified "nodata" value to output'),
            type=QgsProcessingParameterNumber.Integer,
            defaultValue=None,
            optional=True)
        nodata_out_param.setFlags(
            nodata_out_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(nodata_out_param)

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation parameters'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        self.addParameter(
            QgsProcessingParameterEnum(self.DATA_TYPE,
                                       self.tr('Output data type'),
                                       self.TYPES,
                                       allowMultiple=False,
                                       defaultValue=5))

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Merged')))
Beispiel #6
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer'),
                                              optional=False))
        self.addParameter(
            QgsProcessingParameterCrs(self.SOURCE_SRS,
                                      self.tr('Source SRS'),
                                      optional=True))
        self.addParameter(
            QgsProcessingParameterCrs(self.DEST_SRS,
                                      self.tr('Destination SRS'), 'EPSG:4326'))
        self.addParameter(
            QgsProcessingParameterString(
                self.NO_DATA,
                self.
                tr("Nodata value, leave blank to take the nodata value from input"
                   ),
                optional=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.TR,
                self.
                tr('Output file resolution in target georeferenced units (leave 0 for no change)'
                   ),
                minValue=0.0,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterEnum(self.METHOD,
                                       self.tr('Resampling method'),
                                       self.METHOD_OPTIONS))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.USE_RASTER_EXTENT,
                self.tr('Set georeferenced extents of output file'), False))
        self.addParameter(
            QgsProcessingParameterExtent(self.RASTER_EXTENT,
                                         self.tr('Raster extent'),
                                         optional=True))
        self.addParameter(
            QgsProcessingParameterCrs(
                self.EXTENT_CRS,
                self.
                tr('CRS of the raster extent, leave blank for using Destination SRS'
                   ),
                optional=True))
        co = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation options'),
            optional=True)
        co.setMetadata({
            'widget_wrapper':
            'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
        })
        self.addParameter(co)
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.MULTITHREADING,
                self.tr('Use multithreaded warping implementation'), False))
        self.addParameter(
            QgsProcessingParameterEnum(self.RTYPE,
                                       self.tr('Output raster type'),
                                       self.TYPE,
                                       defaultValue=5))

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Reprojected')))
Beispiel #7
0
    def initAlgorithm(self, config=None):
        self.units = [self.tr("Pixels"), self.tr("Georeferenced units")]

        self.addParameter(
            QgsProcessingParameterFeatureSource(self.INPUT,
                                                self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterField(
                self.FIELD,
                self.tr('Field to use for a burn-in value'),
                None,
                self.INPUT,
                QgsProcessingParameterField.Numeric,
                optional=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.BURN,
                self.tr('A fixed value to burn'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=0.0,
                optional=True))
        self.addParameter(
            QgsProcessingParameterEnum(self.UNITS,
                                       self.tr('Output raster size units'),
                                       self.units))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.WIDTH,
                self.tr('Width/Horizontal resolution'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.HEIGHT,
                self.tr('Height/Vertical resolution'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterExtent(self.EXTENT,
                                         self.tr('Output extent')))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NODATA,
                self.tr('Assign a specified nodata value to output bands'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=0.0,
                optional=True))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation parameters'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        dataType_param = QgsProcessingParameterEnum(
            self.DATA_TYPE,
            self.tr('Output data type'),
            self.TYPES,
            allowMultiple=False,
            defaultValue=5)
        dataType_param.setFlags(
            dataType_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(dataType_param)

        init_param = QgsProcessingParameterNumber(
            self.INIT,
            self.tr('Pre-initialize the output image with value'),
            type=QgsProcessingParameterNumber.Double,
            defaultValue=0.0,
            optional=True)
        init_param.setFlags(init_param.flags()
                            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(init_param)

        invert_param = QgsProcessingParameterBoolean(
            self.INVERT, self.tr('Invert rasterization'), defaultValue=False)
        invert_param.setFlags(invert_param.flags()
                              | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(invert_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Rasterized')))
Beispiel #8
0
 def initAlgorithm(self, config=None):
     self.addParameter(QgsProcessingParameterRasterLayer('inputnirband', 'INPUT_NIR_BAND', defaultValue=None))
     self.addParameter(QgsProcessingParameterRasterLayer('inputredband', 'INPUT_RED_BAND', defaultValue=None))
     self.addParameter(QgsProcessingParameterRasterDestination('Output', 'OUTPUT', createByDefault=True, defaultValue=None))
    def initAlgorithm(self, config=None):

        self.TYPES = [
            self.tr('Use Input Layer Data Type'), 'Byte', 'Int16', 'UInt16',
            'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32',
            'CFloat32', 'CFloat64'
        ]

        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterCrs(
                self.TARGET_CRS,
                self.tr('Override the projection for the output file'),
                defaultValue=None,
                optional=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NODATA,
                self.tr('Assign a specified nodata value to output bands'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=None,
                optional=True))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.COPY_SUBDATASETS,
                self.
                tr('Copy all subdatasets of this file to individual output files'
                   ),
                defaultValue=False))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation options'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        extra_param = QgsProcessingParameterString(
            self.EXTRA,
            self.tr('Additional command-line parameters'),
            defaultValue=None,
            optional=True)
        extra_param.setFlags(extra_param.flags()
                             | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(extra_param)

        dataType_param = QgsProcessingParameterEnum(
            self.DATA_TYPE,
            self.tr('Output data type'),
            self.TYPES,
            allowMultiple=False,
            defaultValue=0)
        dataType_param.setFlags(
            dataType_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(dataType_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Converted')))
Beispiel #10
0
 def initAlgorithm(self, config):
     for par in self.param:
         pl = par.split('|')
         if pl[0] == 'ParameterRaster':
             self.addParameter(
                 QgsProcessingParameterRasterLayer(pl[1],
                                                   self.tr(pl[2]), '',
                                                   bool(strtobool(pl[3]))))
         if pl[0] == 'ParameterVector':
             self.addParameter(
                 QgsProcessingParameterVectorLayer(pl[1], self.tr(
                     pl[2]), [QgsProcessing.TypeVector], '',
                                                   bool(strtobool(pl[4]))))
         if pl[0] == 'ParameterNumber':
             try:
                 int(pl[5])
                 if pl[4] != 'None':
                     self.addParameter(
                         QgsProcessingParameterNumber(
                             pl[1], self.tr(pl[2]), 0, int(pl[5]), False,
                             int(pl[3]), int(pl[4])))
                 else:
                     self.addParameter(
                         QgsProcessingParameterNumber(
                             pl[1], self.tr(pl[2]), 0, int(pl[5]), False,
                             int(pl[3])))
             except ValueError:
                 if pl[4] != 'None':
                     self.addParameter(
                         QgsProcessingParameterNumber(
                             pl[1], self.tr(pl[2]), 1, float(pl[5]), False,
                             float(pl[3]), float(pl[4])))
                 else:
                     self.addParameter(
                         QgsProcessingParameterNumber(
                             pl[1], self.tr(pl[2]), 1, float(pl[5]), False,
                             float(pl[3])))
         if pl[0] == 'ParameterBoolean':
             self.addParameter(
                 QgsProcessingParameterBoolean(pl[1], self.tr(pl[2]),
                                               bool(strtobool(pl[3])),
                                               False))
         if pl[0] == 'ParameterEnum':
             self.addParameter(
                 QgsProcessingParameterEnum(pl[1], self.tr(pl[2]),
                                            literal_eval(pl[3]), False,
                                            pl[4], False))
     for out in self.outputline:
         ol = out.split('|')
         if ol[0] == 'OutputRaster':
             self.addParameter(
                 QgsProcessingParameterRasterDestination(
                     ol[1][1:], self.tr(ol[2])))
         if ol[0] == 'OutputVector':
             self.addParameter(
                 QgsProcessingParameterVectorDestination(
                     ol[1][1:], self.tr(ol[2])))
         if ol[0] == 'OutputFile':
             self.addParameter(
                 QgsProcessingParameterFileDestination(
                     ol[1][1:], self.tr(ol[2])))
Beispiel #11
0
    def initAlgorithm(self, config=None):
        self.DIRECTIONS = OrderedDict([
            (self.tr('Forward direction'),
             QgsVectorLayerDirector.DirectionForward),
            (self.tr('Backward direction'),
             QgsVectorLayerDirector.DirectionBackward),
            (self.tr('Both directions'), QgsVectorLayerDirector.DirectionBoth)
        ])

        self.STRATEGIES = [
            self.tr('Shortest distance'),
            self.tr('Fastest time')
        ]

        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.INPUT, self.tr('Vector layer representing network'),
                [QgsProcessing.TypeVectorLine]))
        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.START_POINTS, self.tr('Start Points'),
                [QgsProcessing.TypeVectorPoint]))
        self.addParameter(
            QgsProcessingParameterField(self.ID_FIELD,
                                        self.tr('Unique Point ID Field'),
                                        None,
                                        self.START_POINTS,
                                        optional=False))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.MAX_DIST, self.tr('Maximum cost level of Iso-Area'),
                QgsProcessingParameterNumber.Double, 2500.0, False, 0,
                99999999.99))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.INTERVAL,
                self.tr('Contour Interval (distance or time value)'),
                QgsProcessingParameterNumber.Double, 500.0, False, 0,
                99999999.99))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.CELL_SIZE, self.tr('Cellsize of interpolation raster'),
                QgsProcessingParameterNumber.Integer, 10, False, 1, 99999999))
        self.addParameter(
            QgsProcessingParameterEnum(self.STRATEGY,
                                       self.tr('Path type to calculate'),
                                       self.STRATEGIES,
                                       defaultValue=0))

        params = []
        params.append(
            QgsProcessingParameterField(self.DIRECTION_FIELD,
                                        self.tr('Direction field'),
                                        None,
                                        self.INPUT,
                                        optional=True))
        params.append(
            QgsProcessingParameterString(
                self.VALUE_FORWARD,
                self.tr('Value for forward direction'),
                optional=True))
        params.append(
            QgsProcessingParameterString(
                self.VALUE_BACKWARD,
                self.tr('Value for backward direction'),
                optional=True))
        params.append(
            QgsProcessingParameterString(self.VALUE_BOTH,
                                         self.tr('Value for both directions'),
                                         optional=True))
        params.append(
            QgsProcessingParameterEnum(self.DEFAULT_DIRECTION,
                                       self.tr('Default direction'),
                                       list(self.DIRECTIONS.keys()),
                                       defaultValue=2))
        params.append(
            QgsProcessingParameterField(self.SPEED_FIELD,
                                        self.tr('Speed field (km/h)'),
                                        None,
                                        self.INPUT,
                                        optional=True))
        params.append(
            QgsProcessingParameterNumber(self.DEFAULT_SPEED,
                                         self.tr('Default speed (km/h)'),
                                         QgsProcessingParameterNumber.Double,
                                         5.0, False, 0, 99999999.99))
        params.append(
            QgsProcessingParameterNumber(self.TOLERANCE,
                                         self.tr('Topology tolerance'),
                                         QgsProcessingParameterNumber.Double,
                                         0.00001, False, 0, 99999999.99))

        for p in params:
            p.setFlags(p.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
            self.addParameter(p)

        self.addParameter(
            QgsProcessingParameterRasterDestination(
                self.OUTPUT_INTERPOLATION, self.tr('Output Interpolation')))
        self.addParameter(
            QgsProcessingParameterFeatureSink(self.OUTPUT_POLYGONS,
                                              self.tr('Output Polygon'),
                                              QgsProcessing.TypeVectorPolygon))
Beispiel #12
0
    def initAlgorithm(self, config=None):
        """
        Here we define the inputs and output of the algorithm, along
        with some other properties.
        """

        # INPUTS
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_PAN,
                                              self.tr('Panchromatic layer')))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_PAN, self.tr('Pan Band'), 1,
                                       self.INPUT_PAN))

        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT_XS,
                                              self.tr('Multispectral layer')))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_R, self.tr('Red Band'), 1,
                                       self.INPUT_XS))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_G, self.tr('Green Band'), 2,
                                       self.INPUT_XS))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_B, self.tr('Blue Band'), 3,
                                       self.INPUT_XS))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND_NIR,
                                       self.tr('NIR Band'),
                                       0,
                                       self.INPUT_XS,
                                       optional=True))

        weight_r = QgsProcessingParameterNumber(
            self.WEIGHT_R,
            self.tr('Weight Red Band'),
            type=QgsProcessingParameterNumber.Double,
            defaultValue=0.25,
            minValue=0,
            maxValue=1)
        weight_g = QgsProcessingParameterNumber(
            self.WEIGHT_G,
            self.tr('Weight Green Band'),
            type=QgsProcessingParameterNumber.Double,
            defaultValue=0.25,
            minValue=0,
            maxValue=1)
        weight_b = QgsProcessingParameterNumber(
            self.WEIGHT_B,
            self.tr('Weight Blue Band'),
            type=QgsProcessingParameterNumber.Double,
            defaultValue=0.25,
            minValue=0,
            maxValue=1)
        weight_nir = QgsProcessingParameterNumber(
            self.WEIGHT_NIR,
            self.tr('Weight NIR Band'),
            type=QgsProcessingParameterNumber.Double,
            defaultValue=0.25,
            minValue=0,
            maxValue=1,
            optional=True)

        weight_r.setMetadata({'widget_wrapper': {'decimals': 2}})
        weight_g.setMetadata({'widget_wrapper': {'decimals': 2}})
        weight_b.setMetadata({'widget_wrapper': {'decimals': 2}})
        weight_nir.setMetadata({'widget_wrapper': {'decimals': 2}})

        self.addParameter(weight_r)
        self.addParameter(weight_g)
        self.addParameter(weight_b)
        self.addParameter(weight_nir)

        self.addParameter(
            QgsProcessingParameterExtent(self.OUT_EXTENT,
                                         self.tr('Output extent')))
        self.addParameter(
            QgsProcessingParameterCrs(self.OUT_CRS,
                                      self.tr('Output CRS'),
                                      None,
                                      optional=True))

        # OUTPUT
        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Output layer')))
Beispiel #13
0
 def initAlgorithm(self, config=None):
     """
     Here we define the inputs and output of the algorithm, along
     with some other properties.
     """
     self.addParameter(
         QgsProcessingParameterRasterLayer(
             self.INPUT, self.tr('Input DEM raster layer'),
             [QgsProcessing.TypeRaster]))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="VE_FACTOR",
             description="Vertical exaggeration factor",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=1,
             minValue=-1000,
             maxValue=1000))
     self.addParameter(
         QgsProcessingParameterEnum(name="SKY_MODEL",
                                    description="Sky model",
                                    options=self.sky_model_options,
                                    defaultValue="overcast"))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="NUM_DIRECTIONS",
             description="Number of horizon search directions",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=32,
             minValue=8,
             maxValue=128))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="SHADOW_DIST",
             description="Max shadow modeling distance",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=100,
             minValue=10,
             maxValue=1000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="SHADOW_AZIMUTH",
             description="Shadow azimuth",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=315,
             minValue=0,
             maxValue=360))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="SHADOW_ELEVATION",
             description="Shadow elevation",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=35,
             minValue=0,
             maxValue=90))
     self.addParameter(
         QgsProcessingParameterBoolean(name="SAVE_AS_8BIT",
                                       description="Save as 8bit raster",
                                       defaultValue=False))
     self.addParameter(
         QgsProcessingParameterBoolean(name="FILL_NO_DATA",
                                       description="Fill no-data (holes)",
                                       defaultValue=True))
     self.addParameter(
         QgsProcessingParameterBoolean(name="KEEP_ORIG_NO_DATA",
                                       description="Keep original no-data",
                                       defaultValue=False))
     self.addParameter(
         QgsProcessingParameterRasterDestination(
             self.OUTPUT, self.tr('Output visualization raster layer')))
Beispiel #14
0
    def accept(self):
        description = self.nameTextBox.text()
        if description.strip() == '':
            QMessageBox.warning(self, self.tr('Unable to define parameter'),
                                self.tr('Invalid parameter name'))
            return
        if self.param is None:
            validChars = \
                'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
            safeName = ''.join(c for c in description if c in validChars)
            name = safeName.lower()
            i = 2
            while self.alg.parameterDefinition(name):
                name = safeName.lower() + str(i)
                i += 1
        else:
            name = self.param.name()

        # Destination parameter
        if (isinstance(self.param, QgsProcessingParameterFeatureSink)):
            self.param = QgsProcessingParameterFeatureSink(
                name=name,
                description=self.param.description(),
                type=self.param.dataType(),
                defaultValue=self.defaultWidget.value())
        elif (isinstance(self.param, QgsProcessingParameterFileDestination)):
            self.param = QgsProcessingParameterFileDestination(
                name=name,
                description=self.param.description(),
                fileFilter=self.param.fileFilter(),
                defaultValue=self.defaultWidget.value())
        elif (isinstance(self.param, QgsProcessingParameterFolderDestination)):
            self.param = QgsProcessingParameterFolderDestination(
                name=name,
                description=self.param.description(),
                defaultValue=self.defaultWidget.value())
        elif (isinstance(self.param, QgsProcessingParameterRasterDestination)):
            self.param = QgsProcessingParameterRasterDestination(
                name=name,
                description=self.param.description(),
                defaultValue=self.defaultWidget.value())
        elif (isinstance(self.param, QgsProcessingParameterVectorDestination)):
            self.param = QgsProcessingParameterVectorDestination(
                name=name,
                description=self.param.description(),
                type=self.param.dataType(),
                defaultValue=self.defaultWidget.value())

        else:
            if self.paramType:
                typeId = self.paramType
            else:
                typeId = self.param.type()

            paramTypeDef = QgsApplication.instance().processingRegistry(
            ).parameterType(typeId)
            if not paramTypeDef:
                msg = self.tr(
                    'The parameter `{}` is not registered, are you missing a required plugin?'
                    .format(typeId))
                raise UndefinedParameterException(msg)
            self.param = paramTypeDef.create(name)
            self.param.setDescription(description)
            self.param.setMetadata(paramTypeDef.metadata())

        if not self.requiredCheck.isChecked():
            self.param.setFlags(
                self.param.flags()
                | QgsProcessingParameterDefinition.FlagOptional)
        else:
            self.param.setFlags(
                self.param.flags()
                & ~QgsProcessingParameterDefinition.FlagOptional)

        if self.advancedCheck.isChecked():
            self.param.setFlags(
                self.param.flags()
                | QgsProcessingParameterDefinition.FlagAdvanced)
        else:
            self.param.setFlags(
                self.param.flags()
                & ~QgsProcessingParameterDefinition.FlagAdvanced)

        settings = QgsSettings()
        settings.setValue(
            "/Processing/modelParametersDefinitionDialogGeometry",
            self.saveGeometry())

        QDialog.accept(self)
Beispiel #15
0
    def initAlgorithm(self, config=None):
        self.methods = ((self.tr('Nearest neighbour'),
                         'near'), (self.tr('Bilinear'), 'bilinear'),
                        (self.tr('Cubic'), 'cubic'), (self.tr('Cubic spline'),
                                                      'cubicspline'),
                        (self.tr('Lanczos windowed sinc'),
                         'lanczos'), (self.tr('Average'), 'average'),
                        (self.tr('Mode'), 'mode'), (self.tr('Maximum'), 'max'),
                        (self.tr('Minimum'),
                         'min'), (self.tr('Median'),
                                  'med'), (self.tr('First quartile'), 'q1'),
                        (self.tr('Third quartile'), 'q3'))

        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterCrs(self.SOURCE_CRS,
                                      self.tr('Source CRS'),
                                      optional=True))
        self.addParameter(
            QgsProcessingParameterCrs(self.TARGET_CRS, self.tr('Target CRS'),
                                      'EPSG:4326'))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NODATA,
                self.tr('Nodata value for output bands'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.TARGET_RESOLUTION,
                self.tr(
                    'Output file resolution in target georeferenced units'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=None))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation parameters'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        self.addParameter(
            QgsProcessingParameterEnum(self.RESAMPLING,
                                       self.tr('Resampling method to use'),
                                       options=[i[0] for i in self.methods],
                                       defaultValue=0))
        dataType_param = QgsProcessingParameterEnum(
            self.DATA_TYPE,
            self.tr('Output data type'),
            self.TYPES,
            allowMultiple=False,
            defaultValue=5)
        dataType_param.setFlags(
            dataType_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(dataType_param)

        target_extent_param = QgsProcessingParameterExtent(
            self.TARGET_EXTENT,
            self.tr('Georeferenced extents of output file to be created'),
            optional=True)
        target_extent_param.setFlags(
            target_extent_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(target_extent_param)

        target_extent_crs_param = QgsProcessingParameterCrs(
            self.TARGET_EXTENT_CRS,
            self.tr('CRS of the target raster extent'),
            optional=True)

        multithreading_param = QgsProcessingParameterBoolean(
            self.MULTITHREADING,
            self.tr('Use multithreaded warping implementation'),
            defaultValue=False)
        multithreading_param.setFlags(
            multithreading_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(multithreading_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Reprojected')))
    def initAlgorithm(self, config):
        x_min = -100e3
        x_max = 200e3
        y_min = -150e3
        y_max = 150e3
        dx = 750
        dy = 750
        x0 = -25e3
        y0 = 0.0
        sigma_x = 15e3
        sigma_y = 15e3

        self.addParameter(
            QgsProcessingParameterCrs(self.TARGET_CRS, self.tr('Target CRS'),
                                      'ProjectCrs'))

        self.addParameter(
            QgsProcessingParameterExtent(
                self.EXTENT, self.tr('Extent'),
                "{}, {}, {}, {}".format(x_min, x_max, y_min, y_max)))

        self.addParameter(
            QgsProcessingParameterNumber(self.DX,
                                         self.tr("Grid spacing (dx, meters)"),
                                         QgsProcessingParameterNumber.Double,
                                         defaultValue=dx,
                                         minValue=0.0))
        self.addParameter(
            QgsProcessingParameterNumber(self.DY,
                                         self.tr("Grid spacing (dy, meters)"),
                                         QgsProcessingParameterNumber.Double,
                                         defaultValue=dy,
                                         minValue=0.0))

        self.addParameter(
            QgsProcessingParameterPoint(self.CENTER, self.tr("Center"),
                                        "{}, {}".format(x0, y0)))

        s_x = QgsProcessingParameterNumber(
            self.SIGMA_X,
            self.tr("Spread in the X direction (sigma_x)"),
            QgsProcessingParameterNumber.Double,
            defaultValue=sigma_x,
            minValue=0.0)
        s_x.setFlags(s_x.flags()
                     | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(s_x)

        s_y = QgsProcessingParameterNumber(
            self.SIGMA_Y,
            self.tr("Spread in the Y direction (sigma_y)"),
            QgsProcessingParameterNumber.Double,
            defaultValue=sigma_y,
            minValue=0.0)
        s_y.setFlags(s_y.flags()
                     | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(s_y)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Testing DEM')))
    def initAlgorithm(self, config):
        """
		Here we define the inputs and output of the algorithm, along
		with some other properties.
		"""

        # We add the input vector features source. It can have any kind of
        # geometry.

        self.addParameter(
            QgsProcessingParameterRasterLayer(self.TI,
                                              self.tr('Training raster')))

        self.addParameter(
            QgsProcessingParameterBand(self.BANDS_TI,
                                       self.tr('Selected band(s)'),
                                       None,
                                       self.TI,
                                       allowMultiple=True))

        self.addParameter(
            QgsProcessingParameterRasterLayer(
                self.INPUT, self.tr('Raster on which to simulate')))

        self.addParameter(
            QgsProcessingParameterBand(self.BANDS_INPUT,
                                       self.tr('Selected band(s)'),
                                       None,
                                       self.INPUT,
                                       allowMultiple=True))

        # We add a feature sink in which to store our processed features (this
        # usually takes the form of a newly created vector layer when the
        # algorithm is run in QGIS).
        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('QS simulation')))

        self.addParameter(
            QgsProcessingParameterNumber(
                self.PARAM_K,
                self.tr('Parameter k'),
                QgsProcessingParameterNumber.Double,
                1.2,
                minValue=1,
            ))

        self.addParameter(
            QgsProcessingParameterNumber(
                self.PARAM_N,
                self.tr('Parameter N'),
                QgsProcessingParameterNumber.Integer,
                30,
                minValue=1,
            ))

        self.addParameter(
            QgsProcessingParameterEnum(self.KERNEL_TYPE,
                                       self.tr('Type of kernel'), [
                                           self.tr('Uniform'),
                                           self.tr('Exponential'),
                                           self.tr('Gaussian')
                                       ],
                                       defaultValue=0,
                                       optional=True))

        self.addParameter(
            QgsProcessingParameterNumber(self.KERNEL_ALPHA,
                                         self.tr('Kernel Alpha OR Max radius'),
                                         QgsProcessingParameterNumber.Double,
                                         1,
                                         minValue=0.001,
                                         optional=True))

        paramj = QgsProcessingParameterNumber(
            self.PARAM_J,
            self.
            tr('Parallelization, interger for number of cores, and decimal ]0,1[, for porcentage of total cores'
               ),
            QgsProcessingParameterNumber.Double,
            0.5,
            minValue=0.001,
            optional=True)
        paramj.setFlags(paramj.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)

        paramSA = QgsProcessingParameterString(
            self.PARAM_SA,
            self.tr('DNS name or IP of the G2S server'),
            'localhost',
            optional=True)
        paramSA.setFlags(paramSA.flags()
                         | QgsProcessingParameterDefinition.FlagAdvanced)

        ignoreResolution = QgsProcessingParameterBoolean(
            self.PARAM_IGNORE_RESOLUTION,
            self.tr('ignore resolution check'),
            False,
            optional=True)
        ignoreResolution.setFlags(
            ignoreResolution.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)

        self.addParameter(paramj)
        self.addParameter(paramSA)
        self.addParameter(ignoreResolution)
 def initOutput(self):
     self.addParameter(
         QgsProcessingParameterRasterDestination(
             self.OUTPUT,
             self.tr('Output layer')))
Beispiel #19
0
    def initAlgorithm(self, config=None):
        self.distanceUnits = ((self.tr('Georeferenced coordinates'), 'GEO'),
                              (self.tr('Pixel coordinates'), 'PIXEL'))

        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND,
                                       self.tr('Band number'),
                                       parentLayerParameterName=self.INPUT))
        self.addParameter(
            QgsProcessingParameterString(
                self.VALUES,
                self.
                tr('A list of pixel values in the source image to be considered target pixels'
                   ),
                optional=True))
        self.addParameter(
            QgsProcessingParameterEnum(
                self.UNITS,
                self.tr('Distance units'),
                options=[i[0] for i in self.distanceUnits],
                allowMultiple=False,
                defaultValue=1))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.MAX_DISTANCE,
                self.tr('The maximum distance to be generated'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=0.0,
                optional=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.REPLACE,
                self.
                tr('Value to be applied to all pixels that are within the -maxdist of target pixels'
                   ),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=0.0,
                optional=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NODATA,
                self.
                tr('Nodata value to use for the destination proximity raster'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=0.0,
                optional=True))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation options'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        self.addParameter(
            QgsProcessingParameterEnum(self.DATA_TYPE,
                                       self.tr('Output data type'),
                                       self.TYPES,
                                       allowMultiple=False,
                                       defaultValue=5))

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Proximity map')))
 def initAlgorithm(self, config=None):
     """
     Here we define the inputs and output of the algorithm, along
     with some other properties.
     """
     self.addParameter(
         QgsProcessingParameterRasterLayer(
             self.INPUT,
             self.tr('Input DEM raster layer'),
             [QgsProcessing.TypeRaster]
         )
     )
     self.addParameter(
         QgsProcessingParameterNumber(
             name="VE_FACTOR",
             description="Vertical exaggeration factor",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=1,
             minValue=-1000,
             maxValue=1000
         )
     )
     self.addParameter(
         QgsProcessingParameterNumber(
             name="NUM_DIRECTIONS",
             description="Number of solar azimuth angles (bands).",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=16,
             minValue=2,
             maxValue=64
         )
     )
     self.addParameter(
         QgsProcessingParameterNumber(
             name="SUN_ELEVATION",
             description="Solar vertical angle (above the horizon) in degrees.",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=35,
             minValue=0,
             maxValue=90
         )
     )
     self.addParameter(
         QgsProcessingParameterBoolean(
             name="SAVE_AS_8BIT",
             description="Save as 8bit raster",
             defaultValue=False
         )
     )
     self.addParameter(
         QgsProcessingParameterBoolean(
             name="FILL_NO_DATA",
             description="Fill no-data (holes)",
             defaultValue=True
         )
     )
     self.addParameter(
         QgsProcessingParameterBoolean(
             name="KEEP_ORIG_NO_DATA",
             description="Keep original no-data",
             defaultValue=False
         )
     )
     self.addParameter(
         QgsProcessingParameterRasterDestination(
             self.OUTPUT,
             self.tr('Output visualization raster layer')
         )
     )
Beispiel #21
0
    def initAlgorithm(self, config=None):
        layer_param = QgsProcessingParameterMultipleLayers(
            self.LAYERS,
            self.tr('Input layers'),
            layerType=QgsProcessing.TypeRaster,
            optional=True)
        layer_param.setMetadata({
            'widget_wrapper':
            'processing.algs.qgis.ui.RasterCalculatorWidgets.LayersListWidgetWrapper'
        })
        self.addParameter(layer_param)

        class ParameterRasterCalculatorExpression(QgsProcessingParameterString
                                                  ):
            def __init__(self, name='', description='', multiLine=False):
                super().__init__(name, description, multiLine=multiLine)
                self.setMetadata({
                    'widget_wrapper':
                    'processing.algs.qgis.ui.RasterCalculatorWidgets.ExpressionWidgetWrapper'
                })

            def type(self):
                return 'raster_calc_expression'

            def clone(self):
                return ParameterRasterCalculatorExpression(
                    self.name(), self.description(), self.multiLine())

            def evaluateForModeler(self, value, model):
                for i in list(model.inputs.values()):
                    param = i.param
                    if isinstance(param, QgsProcessingParameterRasterLayer):
                        new = "{}@".format(os.path.basename(param.value))
                        old = "{}@".format(param.name())
                        value = value.replace(old, new)

                    for alg in list(model.algs.values()):
                        for out in alg.algorithm.outputs:
                            if isinstance(out, QgsProcessingOutputRasterLayer):
                                if out.value:
                                    new = "{}@".format(
                                        os.path.basename(out.value))
                                    old = "{}:{}@".format(
                                        alg.modeler_name, out.name)
                                    value = value.replace(old, new)
                return value

        self.addParameter(
            ParameterRasterCalculatorExpression(self.EXPRESSION,
                                                self.tr('Expression'),
                                                multiLine=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.CELLSIZE,
                self.tr('Cell size (use 0 or empty to set it automatically)'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=0.0,
                optional=True))
        self.addParameter(
            QgsProcessingParameterExtent(self.EXTENT,
                                         self.tr('Output extent'),
                                         optional=True))
        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Output')))
Beispiel #22
0
 def initAlgorithm(self, config=None):
     """
     Here we define the inputs and output of the algorithm, along
     with some other properties.
     """
     self.addParameter(
         QgsProcessingParameterRasterLayer(
             self.INPUT, self.tr('Input DEM raster layer'),
             [QgsProcessing.TypeRaster]))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="VE_FACTOR",
             description="Vertical exaggeration factor",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=1,
             minValue=-1000,
             maxValue=1000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="LOCAL_SCALE_MIN",
             description="Local scale minimum radius [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=1,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="LOCAL_SCALE_MAX",
             description="Local scale maximum radius [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=10,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="LOCAL_SCALE_STEP",
             description="Local scale step [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=1,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="MESO_SCALE_MIN",
             description="Meso scale minimum radius [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=10,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="MESO_SCALE_MAX",
             description="Meso scale maximum radius [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=100,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="MESO_SCALE_STEP",
             description="Meso scale step [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=10,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="BROAD_SCALE_MIN",
             description="Broad scale minimum radius [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=100,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="BROAD_SCALE_MAX",
             description="Broad scale maximum radius [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=1000,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="BROAD_SCALE_STEP",
             description="Broad scale step [pixels]",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=100,
             minValue=1,
             maxValue=1000000000))
     self.addParameter(
         QgsProcessingParameterNumber(
             name="LIGHTNESS",
             description="Lightness of image",
             type=QgsProcessingParameterNumber.Double,
             defaultValue=1.2,
             minValue=0.1,
             maxValue=5.0))
     self.addParameter(
         QgsProcessingParameterRasterDestination(
             self.OUTPUT, self.tr('Output visualization raster layer')))
Beispiel #23
0
    def initAlgorithm(self, config=None):
        self.KERNELS = OrderedDict([
            (self.tr('Quartic'), QgsKernelDensityEstimation.KernelQuartic),
            (self.tr('Triangular'),
             QgsKernelDensityEstimation.KernelTriangular),
            (self.tr('Uniform'), QgsKernelDensityEstimation.KernelUniform),
            (self.tr('Triweight'), QgsKernelDensityEstimation.KernelTriweight),
            (self.tr('Epanechnikov'),
             QgsKernelDensityEstimation.KernelEpanechnikov)
        ])

        self.OUTPUT_VALUES = OrderedDict([
            (self.tr('Raw'), QgsKernelDensityEstimation.OutputRaw),
            (self.tr('Scaled'), QgsKernelDensityEstimation.OutputScaled)
        ])

        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.INPUT, self.tr('Point layer'),
                [QgsProcessing.TypeVectorPoint]))

        self.addParameter(
            QgsProcessingParameterNumber(self.RADIUS,
                                         self.tr('Radius (layer units)'),
                                         QgsProcessingParameterNumber.Double,
                                         100.0, False, 0.0, 9999999999.99))

        radius_field_param = QgsProcessingParameterField(
            self.RADIUS_FIELD,
            self.tr('Radius from field'),
            None,
            self.INPUT,
            QgsProcessingParameterField.Numeric,
            optional=True)
        radius_field_param.setFlags(
            radius_field_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(radius_field_param)

        class ParameterHeatmapPixelSize(QgsProcessingParameterNumber):
            def __init__(self,
                         name='',
                         description='',
                         parent_layer=None,
                         radius_param=None,
                         radius_field_param=None,
                         minValue=None,
                         maxValue=None,
                         default=None,
                         optional=False):
                QgsProcessingParameterNumber.__init__(
                    self, name, description,
                    QgsProcessingParameterNumber.Double, default, optional,
                    minValue, maxValue)
                self.parent_layer = parent_layer
                self.radius_param = radius_param
                self.radius_field_param = radius_field_param

        pixel_size_param = ParameterHeatmapPixelSize(
            self.PIXEL_SIZE,
            self.tr('Output raster size'),
            parent_layer=self.INPUT,
            radius_param=self.RADIUS,
            radius_field_param=self.RADIUS_FIELD,
            minValue=0.0,
            maxValue=9999999999,
            default=0.1)
        pixel_size_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.qgis.ui.HeatmapWidgets.HeatmapPixelSizeWidgetWrapper'
            }
        })
        self.addParameter(pixel_size_param)

        weight_field_param = QgsProcessingParameterField(
            self.WEIGHT_FIELD,
            self.tr('Weight from field'),
            None,
            self.INPUT,
            QgsProcessingParameterField.Numeric,
            optional=True)
        weight_field_param.setFlags(
            weight_field_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(weight_field_param)

        keys = list(self.KERNELS.keys())
        kernel_shape_param = QgsProcessingParameterEnum(
            self.KERNEL,
            self.tr('Kernel shape'),
            keys,
            allowMultiple=False,
            defaultValue=0)
        kernel_shape_param.setFlags(
            kernel_shape_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(kernel_shape_param)

        decay_ratio = QgsProcessingParameterNumber(
            self.DECAY, self.tr('Decay ratio (Triangular kernels only)'),
            QgsProcessingParameterNumber.Double, 0.0, True, -100.0, 100.0)
        decay_ratio.setFlags(decay_ratio.flags()
                             | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(decay_ratio)

        keys = list(self.OUTPUT_VALUES.keys())
        output_scaling = QgsProcessingParameterEnum(
            self.OUTPUT_VALUE,
            self.tr('Output value scaling'),
            keys,
            allowMultiple=False,
            defaultValue=0)
        output_scaling.setFlags(
            output_scaling.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(output_scaling)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Heatmap')))
Beispiel #24
0
 def initAlgorithm(self, config=None):
     self.addParameter(
         QgsProcessingParameterRasterLayer(
             self.INPUT,
             "Modèle numérique de terrain",
             defaultValue=None,
         ))
     self.addParameter(
         QgsProcessingParameterNumber(
             self.ITERATION,
             "Nombre d'itération",
             type=QgsProcessingParameterNumber.Integer,
             minValue=1,
             defaultValue=25,
         ))
     self.addParameter(
         QgsProcessingParameterNumber(
             self.BRUITAGE_MIN,
             "Bruitage minimal",
             type=QgsProcessingParameterNumber.Double,
             minValue=0.01,
             defaultValue=0.01,
         ))
     self.addParameter(
         QgsProcessingParameterNumber(
             self.BRUITAGE_MAX,
             "Bruitage maximal",
             type=QgsProcessingParameterNumber.Double,
             minValue=0.01,
             defaultValue=5,
         ))
     self.addParameter(
         QgsProcessingParameterNumber(
             self.SEUIL,
             "Seuil",
             type=QgsProcessingParameterNumber.Integer,
             defaultValue=500,
         ))
     param = QgsProcessingParameterNumber(
         self.MINIMUMSIZEOFEXTERIORWATERSHEDBASIN,
         # TODO : traduire ça
         "Minimum size of exterior watershed basin",
         type=QgsProcessingParameterNumber.Integer,
         defaultValue=500,
     )
     param.setFlags(param.flags()
                    | QgsProcessingParameterDefinition.FlagAdvanced)
     self.addParameter(param)
     param = QgsProcessingParameterBoolean(
         self.SUPPRFICHIERSINTERMED,
         "Suppression des fichiers intermédaires au fur et à mesure des itérations",
         defaultValue=True,
     )
     param.setFlags(param.flags()
                    | QgsProcessingParameterDefinition.FlagAdvanced)
     self.addParameter(param)
     self.addParameter(
         QgsProcessingParameterRasterDestination(
             self.OUTPUT,
             "Couche ExZEco générée",
             createByDefault=True,
             defaultValue=None,
         ))
Beispiel #25
0
    def accept(self):
        description = self.nameTextBox.text()
        if description.strip() == '':
            QMessageBox.warning(self, self.tr('Unable to define parameter'),
                                self.tr('Invalid parameter name'))
            return
        if self.param is None:
            validChars = \
                'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
            safeName = ''.join(c for c in description if c in validChars)
            name = safeName.lower()
            i = 2
            while self.alg.parameterDefinition(name):
                name = safeName.lower() + str(i)
                i += 1
        else:
            name = self.param.name()
        if (self.paramType == parameters.PARAMETER_BOOLEAN
                or isinstance(self.param, QgsProcessingParameterBoolean)):
            self.param = QgsProcessingParameterBoolean(name, description,
                                                       self.state.isChecked())
        elif (self.paramType == parameters.PARAMETER_TABLE_FIELD
              or isinstance(self.param, QgsProcessingParameterField)):
            if self.parentCombo.currentIndex() < 0:
                QMessageBox.warning(
                    self, self.tr('Unable to define parameter'),
                    self.tr('Wrong or missing parameter values'))
                return
            parent = self.parentCombo.currentData()
            datatype = self.datatypeCombo.currentData()
            default = self.defaultTextBox.text()
            if not default:
                default = None
            self.param = QgsProcessingParameterField(
                name,
                description,
                defaultValue=default,
                parentLayerParameterName=parent,
                type=datatype,
                allowMultiple=self.multipleCheck.isChecked())
        elif (self.paramType == parameters.PARAMETER_BAND
              or isinstance(self.param, QgsProcessingParameterBand)):
            if self.parentCombo.currentIndex() < 0:
                QMessageBox.warning(
                    self, self.tr('Unable to define parameter'),
                    self.tr('Wrong or missing parameter values'))
                return
            parent = self.parentCombo.currentData()
            self.param = QgsProcessingParameterBand(name, description, None,
                                                    parent)
        elif (self.paramType == parameters.PARAMETER_MAP_LAYER
              or isinstance(self.param, QgsProcessingParameterMapLayer)):
            self.param = QgsProcessingParameterMapLayer(name, description)
        elif (self.paramType == parameters.PARAMETER_RASTER
              or isinstance(self.param, QgsProcessingParameterRasterLayer)):
            self.param = QgsProcessingParameterRasterLayer(name, description)
        elif (self.paramType == parameters.PARAMETER_TABLE
              or isinstance(self.param, QgsProcessingParameterVectorLayer)):
            self.param = QgsProcessingParameterVectorLayer(
                name, description, [self.shapetypeCombo.currentData()])
        elif (self.paramType == parameters.PARAMETER_VECTOR
              or isinstance(self.param, QgsProcessingParameterFeatureSource)):
            self.param = QgsProcessingParameterFeatureSource(
                name, description, [self.shapetypeCombo.currentData()])
        elif (self.paramType == parameters.PARAMETER_MULTIPLE
              or isinstance(self.param, QgsProcessingParameterMultipleLayers)):
            self.param = QgsProcessingParameterMultipleLayers(
                name, description, self.datatypeCombo.currentData())
        elif (self.paramType == parameters.PARAMETER_NUMBER or isinstance(
                self.param,
            (QgsProcessingParameterNumber, QgsProcessingParameterDistance))):
            try:
                self.param = QgsProcessingParameterNumber(
                    name, description, QgsProcessingParameterNumber.Double,
                    self.defaultTextBox.text())
                vmin = self.minTextBox.text().strip()
                if not vmin == '':
                    self.param.setMinimum(float(vmin))
                vmax = self.maxTextBox.text().strip()
                if not vmax == '':
                    self.param.setMaximum(float(vmax))
            except:
                QMessageBox.warning(
                    self, self.tr('Unable to define parameter'),
                    self.tr('Wrong or missing parameter values'))
                return
        elif (self.paramType == parameters.PARAMETER_EXPRESSION
              or isinstance(self.param, QgsProcessingParameterExpression)):
            parent = self.parentCombo.currentData()
            self.param = QgsProcessingParameterExpression(
                name, description, str(self.defaultEdit.expression()), parent)
        elif (self.paramType == parameters.PARAMETER_STRING
              or isinstance(self.param, QgsProcessingParameterString)):
            self.param = QgsProcessingParameterString(
                name, description, str(self.defaultTextBox.text()))
        elif (self.paramType == parameters.PARAMETER_EXTENT
              or isinstance(self.param, QgsProcessingParameterExtent)):
            self.param = QgsProcessingParameterExtent(name, description)
        elif (self.paramType == parameters.PARAMETER_FILE
              or isinstance(self.param, QgsProcessingParameterFile)):
            isFolder = self.fileFolderCombo.currentIndex() == 1
            self.param = QgsProcessingParameterFile(
                name, description, QgsProcessingParameterFile.Folder
                if isFolder else QgsProcessingParameterFile.File)
        elif (self.paramType == parameters.PARAMETER_POINT
              or isinstance(self.param, QgsProcessingParameterPoint)):
            self.param = QgsProcessingParameterPoint(
                name, description, str(self.defaultTextBox.text()))
        elif (self.paramType == parameters.PARAMETER_CRS
              or isinstance(self.param, QgsProcessingParameterCrs)):
            self.param = QgsProcessingParameterCrs(
                name, description,
                self.selector.crs().authid())
        elif (self.paramType == parameters.PARAMETER_ENUM
              or isinstance(self.param, QgsProcessingParameterEnum)):
            self.param = QgsProcessingParameterEnum(
                name, description, self.widget.options(),
                self.widget.allowMultiple(), self.widget.defaultOptions())
        elif (self.paramType == parameters.PARAMETER_MATRIX
              or isinstance(self.param, QgsProcessingParameterMatrix)):
            self.param = QgsProcessingParameterMatrix(
                name,
                description,
                hasFixedNumberRows=self.widget.fixedRows(),
                headers=self.widget.headers(),
                defaultValue=self.widget.value())

        # Destination parameter
        elif (isinstance(self.param, QgsProcessingParameterFeatureSink)):
            self.param = QgsProcessingParameterFeatureSink(
                name=name,
                description=self.param.description(),
                type=self.param.dataType(),
                defaultValue=self.defaultWidget.getValue())
        elif (isinstance(self.param, QgsProcessingParameterFileDestination)):
            self.param = QgsProcessingParameterFileDestination(
                name=name,
                description=self.param.description(),
                fileFilter=self.param.fileFilter(),
                defaultValue=self.defaultWidget.getValue())
        elif (isinstance(self.param, QgsProcessingParameterFolderDestination)):
            self.param = QgsProcessingParameterFolderDestination(
                name=name,
                description=self.param.description(),
                defaultValue=self.defaultWidget.getValue())
        elif (isinstance(self.param, QgsProcessingParameterRasterDestination)):
            self.param = QgsProcessingParameterRasterDestination(
                name=name,
                description=self.param.description(),
                defaultValue=self.defaultWidget.getValue())
        elif (isinstance(self.param, QgsProcessingParameterVectorDestination)):
            self.param = QgsProcessingParameterVectorDestination(
                name=name,
                description=self.param.description(),
                type=self.param.dataType(),
                defaultValue=self.defaultWidget.getValue())

        else:
            if self.paramType:
                typeId = self.paramType
            else:
                typeId = self.param.type()

            paramTypeDef = QgsApplication.instance().processingRegistry(
            ).parameterType(typeId)
            if not paramTypeDef:
                msg = self.tr(
                    'The parameter `{}` is not registered, are you missing a required plugin?'
                    .format(typeId))
                raise UndefinedParameterException(msg)
            self.param = paramTypeDef.create(name)
            self.param.setDescription(description)
            self.param.setMetadata(paramTypeDef.metadata())

        if not self.requiredCheck.isChecked():
            self.param.setFlags(
                self.param.flags()
                | QgsProcessingParameterDefinition.FlagOptional)
        else:
            self.param.setFlags(
                self.param.flags()
                & ~QgsProcessingParameterDefinition.FlagOptional)

        settings = QgsSettings()
        settings.setValue(
            "/Processing/modelParametersDefinitionDialogGeometry",
            self.saveGeometry())

        QDialog.accept(self)
Beispiel #26
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterRasterLayer(self.INPUT,
                                              self.tr('Input layer')))
        self.addParameter(
            QgsProcessingParameterBand(self.BAND,
                                       self.tr('Band number'),
                                       parentLayerParameterName=self.INPUT))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.Z_FACTOR,
                self.tr('Z factor (vertical exaggeration)'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=1.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.SCALE,
                self.tr('Scale (ratio of vertical units to horizontal)'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=1.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.AZIMUTH,
                self.tr('Azimuth of the light'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                maxValue=360,
                defaultValue=315.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.ALTITUDE,
                self.tr('Altitude of the light'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=45.0))
        self.addParameter(
            QgsProcessingParameterBoolean(self.COMPUTE_EDGES,
                                          self.tr('Compute edges'),
                                          defaultValue=False))
        self.addParameter(
            QgsProcessingParameterBoolean(
                self.ZEVENBERGEN,
                self.
                tr("Use Zevenbergen&Thorne formula instead of the Horn's one"),
                defaultValue=False))
        self.addParameter(
            QgsProcessingParameterBoolean(self.COMBINED,
                                          self.tr("Combined shading"),
                                          defaultValue=False))
        self.addParameter(
            QgsProcessingParameterBoolean(self.MULTIDIRECTIONAL,
                                          self.tr("Multidirectional shading"),
                                          defaultValue=False))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation parameters'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                    self.tr('Hillshade')))
Beispiel #27
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.INPUT, self.tr('Point layer'),
                [QgsProcessing.TypeVectorPoint]))

        z_field_param = QgsProcessingParameterField(
            self.Z_FIELD,
            self.tr('Z value from field'),
            None,
            self.INPUT,
            QgsProcessingParameterField.Numeric,
            optional=True)
        z_field_param.setFlags(z_field_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(z_field_param)

        self.addParameter(
            QgsProcessingParameterNumber(
                self.RADIUS_1,
                self.tr('The first radius of search ellipse'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.RADIUS_2,
                self.tr('The second radius of search ellipse'),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.ANGLE,
                self.
                tr('Angle of search ellipse rotation in degrees (counter clockwise)'
                   ),
                type=QgsProcessingParameterNumber.Double,
                minValue=0.0,
                maxValue=360.0,
                defaultValue=0.0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.MIN_POINTS,
                self.tr('Minimum number of data points to use'),
                type=QgsProcessingParameterNumber.Integer,
                minValue=0,
                defaultValue=0))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.NODATA,
                self.tr('NODATA marker to fill empty points'),
                type=QgsProcessingParameterNumber.Double,
                defaultValue=0.0))

        options_param = QgsProcessingParameterString(
            self.OPTIONS,
            self.tr('Additional creation options'),
            defaultValue='',
            optional=True)
        options_param.setFlags(options_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class':
                'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
            }
        })
        self.addParameter(options_param)

        dataType_param = QgsProcessingParameterEnum(
            self.DATA_TYPE,
            self.tr('Output data type'),
            self.TYPES,
            allowMultiple=False,
            defaultValue=5)
        dataType_param.setFlags(
            dataType_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(dataType_param)

        self.addParameter(
            QgsProcessingParameterRasterDestination(
                self.OUTPUT, self.tr('Interpolated (moving average)')))
Beispiel #28
0
    def initAlgorithm(self, config=None):
        self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer')))

        self.addParameter(QgsProcessingParameterRasterDestination(self.R, self.tr('Output R band layer')))
        self.addParameter(QgsProcessingParameterRasterDestination(self.G, self.tr('Output G band layer')))
        self.addParameter(QgsProcessingParameterRasterDestination(self.B, self.tr('Output B band layer')))
    def initAlgorithm(self, config=None):
        self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
                                                              self.tr('Point layer'),
                                                              [QgsProcessing.TypeVectorPoint]))

        z_field_param = QgsProcessingParameterField(self.Z_FIELD,
                                                    self.tr('Z value from field'),
                                                    None,
                                                    self.INPUT,
                                                    QgsProcessingParameterField.Numeric,
                                                    optional=True)
        z_field_param.setFlags(z_field_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(z_field_param)

        self.addParameter(QgsProcessingParameterNumber(self.POWER,
                                                       self.tr('Weighting power'),
                                                       type=QgsProcessingParameterNumber.Double,
                                                       minValue=0.0,
                                                       maxValue=100.0,
                                                       defaultValue=2.0))
        self.addParameter(QgsProcessingParameterNumber(self.SMOOTHING,
                                                       self.tr('Smoothing'),
                                                       type=QgsProcessingParameterNumber.Double,
                                                       minValue=0.0,
                                                       defaultValue=0.0))
        self.addParameter(QgsProcessingParameterNumber(self.RADIUS,
                                                       self.tr('The radius of the search circle'),
                                                       type=QgsProcessingParameterNumber.Double,
                                                       minValue=0.0,
                                                       defaultValue=1.0))
        self.addParameter(QgsProcessingParameterNumber(self.MAX_POINTS,
                                                       self.tr('Maximum number of data points to use'),
                                                       type=QgsProcessingParameterNumber.Integer,
                                                       minValue=0,
                                                       defaultValue=12))
        self.addParameter(QgsProcessingParameterNumber(self.MIN_POINTS,
                                                       self.tr('Minimum number of data points to use'),
                                                       type=QgsProcessingParameterNumber.Integer,
                                                       minValue=0,
                                                       defaultValue=0))
        self.addParameter(QgsProcessingParameterNumber(self.NODATA,
                                                       self.tr('NODATA marker to fill empty points'),
                                                       type=QgsProcessingParameterNumber.Double,
                                                       defaultValue=0.0))

        options_param = QgsProcessingParameterString(self.OPTIONS,
                                                     self.tr('Additional creation options'),
                                                     defaultValue='',
                                                     optional=True)
        options_param.setFlags(options_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        options_param.setMetadata({
            'widget_wrapper': {
                'class': 'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'}})
        self.addParameter(options_param)

        dataType_param = QgsProcessingParameterEnum(self.DATA_TYPE,
                                                    self.tr('Output data type'),
                                                    self.TYPES,
                                                    allowMultiple=False,
                                                    defaultValue=5)
        dataType_param.setFlags(dataType_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(dataType_param)

        self.addParameter(QgsProcessingParameterRasterDestination(self.OUTPUT,
                                                                  self.tr('Interpolated (IDW with NN search)')))
    def initAlgorithm(self, config=None):
        # Call function to look for precalculated values in layer "Bounding Geometry"
        self.look_for_precalculated_values()

        self.addParameter(
            QgsProcessingParameterVectorLayer(
                'sites',
                'LEC',
                types=[QgsProcessing.TypeVectorPoint],
                defaultValue=None))
        self.addParameter(
            QgsProcessingParameterField(
                'hubdistlecradii',
                'HubDist_LEC_Radii',
                type=QgsProcessingParameterField.Numeric,
                parentLayerParameterName='sites',
                allowMultiple=False,
                defaultValue='HubDist'))
        self.addParameter(
            QgsProcessingParameterNumber(
                'gridcellsize',
                'Grid_Cellsize',
                type=QgsProcessingParameterNumber.Integer,
                defaultValue=1000))
        self.addParameter(
            QgsProcessingParameterExpression(
                'formel',
                'Formel',
                parentLayerParameterName='',
                defaultValue=self.formula_default))
        self.addParameter(
            QgsProcessingParameterNumber(
                'lagdist',
                'LagDist',
                type=QgsProcessingParameterNumber.Double,
                defaultValue=self.lag_dist_default))
        self.addParameter(
            QgsProcessingParameterBoolean('BlockKriging',
                                          'Block_Kriging',
                                          defaultValue=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                'blocksize',
                'Block_Size',
                type=QgsProcessingParameterNumber.Integer,
                defaultValue=100))
        self.addParameter(
            QgsProcessingParameterNumber(
                'maxsearchdist',
                'Max_Search_Dist',
                type=QgsProcessingParameterNumber.Integer,
                defaultValue=self.max_search_dist_default))
        self.addParameter(
            QgsProcessingParameterNumber(
                'numberofptsmin',
                'Number_of_Pts_Min',
                type=QgsProcessingParameterNumber.Integer,
                defaultValue=3))
        self.addParameter(
            QgsProcessingParameterNumber(
                'numberofptsmax',
                'Number_of_Pts_Max',
                type=QgsProcessingParameterNumber.Integer,
                defaultValue=10))
        self.addParameter(
            QgsProcessingParameterRasterDestination(
                'Kriging_raster',
                'Kriging_Raster',
                createByDefault=True,
                defaultValue="Kriging.sdat"))
        self.addParameter(
            QgsProcessingParameterRasterDestination(
                'Quality_measure',
                'Quality_Measure',
                optional=True,
                createByDefault=False,
                defaultValue="Variance.sdat"))