예제 #1
0
 def addParametersFilter2CoordsIntensityGUI(self):
     self.addParameter(ParameterSelection(LAStoolsAlgorithm.FILTER_COORDS_INTENSITY2, self.tr("second filter (by coordinate, intensity, GPS time, ...)"), LAStoolsAlgorithm.FILTERS_COORDS_INTENSITY, 0))
     self.addParameter(ParameterString(LAStoolsAlgorithm.FILTER_COORDS_INTENSITY2_ARG, self.tr("value for second filter (by coordinate, intensity, GPS time, ...)")))
예제 #2
0
    def defineCharacteristics(self):
        """
        Algorithme variable and parameters parameters
        """
        CholeAlgorithm.defineCharacteristics(self)

        # The name/group that the user will see in the toolbox
        self.group = 'generate ascii grid'
        self.i18n_group = self.tr('generate ascii grid')
        self.name = 'from csv'
        self.i18n_name = self.tr('from csv')

        # === INPUT PARAMETERS ===
        self.addParameter(
            ParameterTable(name=self.INPUT_FILE_CSV,
                           description=self.tr('Input file csv')))

        self.addParameter(
            ParameterString(name=self.FIELDS,
                            description=self.tr('Fields selection'),
                            default=''))

        self.addParameter(
            ParameterNumber(name=self.N_COLS,
                            description=self.tr('Columns count'),
                            minValue=0,
                            default=100))

        self.addParameter(
            ParameterNumber(name=self.N_ROWS,
                            description=self.tr('Rows count'),
                            minValue=0,
                            default=100))

        self.addParameter(
            ParameterNumber(
                name=self.XLL_CORNER,
                description=self.tr('X bottom left corner coordinate'),
                default=0.0))

        self.addParameter(
            ParameterNumber(
                name=self.YLL_CORNER,
                description=self.tr('Y bottom left corner coordinate'),
                default=0.0))

        self.addParameter(
            ParameterNumber(name=self.CELL_SIZE,
                            description=self.tr('Cell size'),
                            default=1.0))

        self.addParameter(
            ParameterNumber(name=self.NODATA_VALUE,
                            description=self.tr('Value if no-data'),
                            default=-1))

        self.addOutput(
            OutputFile(name=self.SAVE_PROPERTIES,
                       description=self.tr('Properties file'),
                       ext='properties'))

        # === OUTPUT PARAMETERS ===
        self.addOutput(
            ASCOutputRaster(name=self.OUTPUT_ASC,
                            description=self.tr('Ouput Raster ascii')))
예제 #3
0
    def defineCharacteristics(self):
        self.DIRECTIONS = OrderedDict([
            (self.tr('Forward direction'), QgsVectorLayerDirector.DirectionForward),
            (self.tr('Backward direction'), QgsVectorLayerDirector.DirectionForward),
            (self.tr('Both directions'), QgsVectorLayerDirector.DirectionForward)])

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

        self.name, self.i18n_name = self.trAlgorithm('Shortest path (point to layer)')
        self.group, self.i18n_group = self.trAlgorithm('Network analysis')

        self.addParameter(ParameterVector(self.INPUT_VECTOR,
                                          self.tr('Vector layer representing network'),
                                          [dataobjects.TYPE_VECTOR_LINE]))
        self.addParameter(ParameterPoint(self.START_POINT,
                                         self.tr('Start point')))
        self.addParameter(ParameterVector(self.END_POINTS,
                                          self.tr('Vector layer with end points'),
                                          [dataobjects.TYPE_VECTOR_POINT]))
        self.addParameter(ParameterSelection(self.STRATEGY,
                                             self.tr('Path type to calculate'),
                                             self.STRATEGIES,
                                             default=0))

        params = []
        params.append(ParameterTableField(self.DIRECTION_FIELD,
                                          self.tr('Direction field'),
                                          self.INPUT_VECTOR,
                                          optional=True))
        params.append(ParameterString(self.VALUE_FORWARD,
                                      self.tr('Value for forward direction'),
                                      '',
                                      optional=True))
        params.append(ParameterString(self.VALUE_BACKWARD,
                                      self.tr('Value for backward direction'),
                                      '',
                                      optional=True))
        params.append(ParameterString(self.VALUE_BOTH,
                                      self.tr('Value for both directions'),
                                      '',
                                      optional=True))
        params.append(ParameterSelection(self.DEFAULT_DIRECTION,
                                         self.tr('Default direction'),
                                         list(self.DIRECTIONS.keys()),
                                         default=2))
        params.append(ParameterTableField(self.SPEED_FIELD,
                                          self.tr('Speed field'),
                                          self.INPUT_VECTOR,
                                          optional=True))
        params.append(ParameterNumber(self.DEFAULT_SPEED,
                                      self.tr('Default speed (km/h)'),
                                      0.0, 99999999.999999, 5.0))
        params.append(ParameterNumber(self.TOLERANCE,
                                      self.tr('Topology tolerance'),
                                      0.0, 99999999.999999, 0.0))

        for p in params:
            p.isAdvanced = True
            self.addParameter(p)

        self.addOutput(OutputVector(self.OUTPUT_LAYER,
                                    self.tr('Shortest path'),
                                    datatype=[dataobjects.TYPE_VECTOR_LINE]))
예제 #4
0
 def addParametersOutputAppendixGUI(self):
     self.addParameter(ParameterString(LAStoolsAlgorithm.OUTPUT_APPENDIX, self.tr("output appendix"), optional=True))
 def defineCharacteristics(self):
     self.name, self.i18n_name = self.trAlgorithm(
         'SLMS - Import Static Vector into PostGIS (OVERWRITE MODE)')
     self.group, self.i18n_group = self.trAlgorithm('[OGR] Miscellaneous')
     self.DB_CONNECTIONS = self.dbConnectionNames()
     self.addParameter(
         ParameterSelection(self.DATABASE,
                            self.tr('Database (connection name)'),
                            self.DB_CONNECTIONS))
     self.addParameter(
         ParameterVector(self.INPUT_LAYER, self.tr('Input layer'),
                         [ParameterVector.VECTOR_TYPE_ANY], False))
     #self.addParameter(ParameterSelection(self.GTYPE,
     #                                     self.tr('Output geometry type'), self.GEOMTYPE, 0))
     #self.addParameter(ParameterCrs(self.A_SRS,
     #                               self.tr('Assign an output CRS'), '', optional=True))
     self.addParameter(
         ParameterCrs(self.T_SRS,
                      self.tr('Reproject to this CRS on output '),
                      '',
                      optional=True))
     #self.addParameter(ParameterCrs(self.S_SRS,
     #                               self.tr('Override source CRS'), '', optional=True))
     self.addParameter(
         ParameterString(self.SCHEMA, self.tr('Schema name'),
                         'stg_geoserver'))
     self.addParameter(
         ParameterString(self.TABLE,
                         self.tr('The output PostGIS table name'), False))
     self.addParameter(
         ParameterString(self.PK,
                         self.tr('Primary key (new field)'),
                         'id',
                         optional=True))
     self.addParameter(
         ParameterTableField(
             self.PRIMARY_KEY,
             self.
             tr('Primary key (existing field, used if the above option is left empty)'
                ),
             self.INPUT_LAYER,
             optional=True))
     self.addParameter(
         ParameterString(self.GEOCOLUMN,
                         self.tr('Geometry column name'),
                         'the_geom',
                         optional=True))
     #self.addParameter(ParameterSelection(self.DIM,
     #                                     self.tr('Vector dimensions'), self.DIMLIST, 0))
     #self.addParameter(ParameterString(self.SIMPLIFY,
     #                                  self.tr('Distance tolerance for simplification'),
     #                                  '', optional=True))
     #self.addParameter(ParameterString(self.SEGMENTIZE,
     #                                  self.tr('Maximum distance between 2 nodes (densification)'),
     #                                  '', optional=True))
     #self.addParameter(ParameterExtent(self.SPAT,
     #                                  self.tr('Select features by extent (defined in input layer CRS)')))
     #self.addParameter(ParameterBoolean(self.CLIP,
     #                                   self.tr('Clip the input layer using the above (rectangle) extent'),
     #                                   False))
     #self.addParameter(ParameterString(self.WHERE,
     #                                  self.tr('Select features using a SQL "WHERE" statement (Ex: column=\'value\')'),
     #                                  '', optional=True))
     #self.addParameter(ParameterString(self.GT,
     #                                  self.tr('Group N features per transaction (Default: 20000)'),
     #                                  '', optional=True))
     #self.addParameter(ParameterBoolean(self.OVERWRITE,
     #                                   self.tr('Overwrite existing table'), True))
     #self.addParameter(ParameterBoolean(self.APPEND,
     #                                   self.tr('Append to existing table'), False))
     #self.addParameter(ParameterBoolean(self.ADDFIELDS,
     #                                   self.tr('Append and add new fields to existing table'), False))
     #self.addParameter(ParameterBoolean(self.LAUNDER,
     #                                   self.tr('Do not launder columns/table names'), False))
     #self.addParameter(ParameterBoolean(self.INDEX,
     #                                   self.tr('Do not create spatial index'), False))
     self.addParameter(
         ParameterBoolean(
             self.SKIPFAILURES,
             self.tr(
                 'Continue after a failure, skipping the failed feature'),
             False))
예제 #6
0
    def __init__(self):
        super().__init__()
        # Required parameters
        self.addParameter(
            ParameterMultipleInput(self.INPUT, self.tr('Input layers'),
                                   dataobjects.TYPE_RASTER))
        # Advanced parameters
        params = []
        params.append(
            ParameterString(
                self.PIXELSIZE,
                self.
                tr('Pixel size to be used for the output file (XSIZE YSIZE like 512 512)'
                   ), None, False, True))
        params.append(
            ParameterSelection(self.ALGORITHM,
                               self.tr('Resampling algorithm'),
                               self.ALGO,
                               0,
                               False,
                               optional=True))
        params.append(
            ParameterCrs(self.S_SRS, self.tr('Override source CRS'), None,
                         True))
        params.append(
            ParameterNumber(self.PYRAMIDLEVELS,
                            self.tr('Number of pyramids levels to build'),
                            None, None, None, True))
        params.append(
            ParameterBoolean(self.ONLYPYRAMIDS,
                             self.tr('Build only the pyramids'), False, True))
        params.append(
            ParameterSelection(self.RTYPE,
                               self.tr('Output raster type'),
                               self.TYPE,
                               5,
                               False,
                               optional=True))
        params.append(
            ParameterSelection(self.FORMAT,
                               self.tr('Output raster format'),
                               list(GdalUtils.getSupportedRasters().keys()),
                               0,
                               False,
                               optional=True))
        params.append(
            ParameterBoolean(self.USEDIRFOREACHROW,
                             self.tr('Use a directory for each row'), False,
                             True))
        params.append(
            ParameterString(
                self.CSVFILE,
                self.
                tr('Name of the csv file containing the tile(s) georeferencing information'
                   ), None, False, True))
        params.append(
            ParameterString(self.CSVDELIM,
                            self.tr('Column delimiter used in the CSV file'),
                            None, False, True))
        params.append(
            ParameterString(
                self.TILEINDEX,
                self.tr(
                    'name of shape file containing the result tile(s) index'),
                None, False, True))
        params.append(
            ParameterString(
                self.TILEINDEXFIELD,
                self.
                tr('name of the attribute containing the tile name in the result shape file'
                   ), None, False, True))

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

        self.addOutput(
            OutputDirectory(
                self.TARGETDIR,
                self.tr('The directory where the tile result is created')))
예제 #7
0
 def defineCharacteristics(self):
     self.name = 'Import Vector into PostGIS database (new connection)'
     self.group = '[OGR] Miscellaneous'
     self.addParameter(
         ParameterVector(self.INPUT_LAYER, 'Input layer',
                         [ParameterVector.VECTOR_TYPE_ANY], False))
     self.addParameter(
         ParameterSelection(self.GTYPE, 'Output geometry type',
                            self.GEOMTYPE, 5))
     self.addParameter(
         ParameterCrs(self.S_SRS, 'Input CRS (EPSG Code)', 'EPSG:4326'))
     self.addParameter(
         ParameterCrs(self.T_SRS, 'Output CRS (EPSG Code)', 'EPSG:4326'))
     self.addParameter(
         ParameterString(self.HOST, 'Host', 'localhost', optional=False))
     self.addParameter(
         ParameterString(self.PORT, 'Port', '5432', optional=False))
     self.addParameter(
         ParameterString(self.USER, 'Username', '', optional=False))
     self.addParameter(
         ParameterString(self.DBNAME, 'Database Name', '', optional=False))
     self.addParameter(
         ParameterString(self.PASSWORD, 'Password', '', optional=False))
     self.addParameter(
         ParameterString(self.SCHEMA,
                         'Schema name',
                         'public',
                         optional=True))
     self.addParameter(
         ParameterString(self.TABLE,
                         'Table name, leave blank to use input name',
                         '',
                         optional=True))
     self.addParameter(
         ParameterString(self.PK, 'Primary Key', 'id', optional=True))
     self.addParameter(
         ParameterString(self.GEOCOLUMN,
                         'Geometry column name',
                         'geom',
                         optional=True))
     self.addParameter(
         ParameterSelection(self.DIM, 'Vector dimensions', self.DIMLIST, 0))
     self.addParameter(
         ParameterString(self.SIMPLIFY,
                         'Distance tolerance for simplification',
                         '',
                         optional=True))
     self.addParameter(
         ParameterString(self.SEGMENTIZE,
                         'Maximum distance between 2 nodes (densification)',
                         '',
                         optional=True))
     self.addParameter(
         ParameterExtent(
             self.SPAT,
             'Select features by extent (defined in input layer CRS)'))
     self.addParameter(
         ParameterBoolean(
             self.CLIP,
             'Clip the input layer using the above (rectangle) extent',
             False))
     self.addParameter(
         ParameterString(
             self.WHERE,
             'Select features using a SQL "WHERE" statement (Ex: column="value")',
             '',
             optional=True))
     self.addParameter(
         ParameterString(
             self.GT,
             'Group "n" features per transaction (Default: 20000)',
             '',
             optional=True))
     self.addParameter(
         ParameterBoolean(self.OVERWRITE, 'Overwrite existing table?',
                          True))
     self.addParameter(
         ParameterBoolean(self.APPEND, 'Append to existing table?', False))
     self.addParameter(
         ParameterBoolean(self.ADDFIELDS,
                          'Append and add new fields to existing table?',
                          False))
     self.addParameter(
         ParameterBoolean(self.LAUNDER,
                          'Do not launder columns/table name/s?', False))
     self.addParameter(
         ParameterBoolean(self.INDEX, 'Do not create Spatial Index?',
                          False))
     self.addParameter(
         ParameterBoolean(
             self.SKIPFAILURES,
             'Continue after a failure, skipping the failed feature',
             False))
     self.addParameter(
         ParameterString(self.OPTIONS,
                         'Additional creation options',
                         '',
                         optional=True))
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm(
            'Clip raster by mask layer')
        self.group, self.i18n_group = self.trAlgorithm('[GDAL] Extraction')
        self.addParameter(
            ParameterRaster(self.INPUT, self.tr('Input layer'), False))
        self.addParameter(
            ParameterVector(self.MASK, self.tr('Mask layer'),
                            [ParameterVector.VECTOR_TYPE_POLYGON]))
        self.addParameter(
            ParameterString(
                self.NO_DATA,
                self.
                tr("Nodata value, leave blank to take the nodata value from input"
                   ),
                '',
                optional=True))
        self.addParameter(
            ParameterBoolean(self.ALPHA_BAND,
                             self.tr('Create and output alpha band'), False))
        self.addParameter(
            ParameterBoolean(
                self.CROP_TO_CUTLINE,
                self.
                tr('Crop the extent of the target dataset to the extent of the cutline'
                   ), False))
        self.addParameter(
            ParameterBoolean(self.KEEP_RESOLUTION,
                             self.tr('Keep resolution of output raster'),
                             False))

        params = []
        params.append(
            ParameterSelection(self.RTYPE, self.tr('Output raster type'),
                               self.TYPE, 5))
        params.append(
            ParameterSelection(self.COMPRESS,
                               self.tr('GeoTIFF options. Compression type:'),
                               self.COMPRESSTYPE, 4))
        params.append(
            ParameterNumber(self.JPEGCOMPRESSION,
                            self.tr('Set the JPEG compression level'), 1, 100,
                            75))
        params.append(
            ParameterNumber(self.ZLEVEL,
                            self.tr('Set the DEFLATE compression level'), 1, 9,
                            6))
        params.append(
            ParameterNumber(
                self.PREDICTOR,
                self.tr('Set the predictor for LZW or DEFLATE compression'), 1,
                3, 1))
        params.append(
            ParameterBoolean(
                self.TILED,
                self.tr(
                    'Create tiled output (only used for the GTiff format)'),
                False))
        params.append(
            ParameterSelection(
                self.BIGTIFF,
                self.
                tr('Control whether the created file is a BigTIFF or a classic TIFF'
                   ), self.BIGTIFFTYPE, 0))
        params.append(
            ParameterBoolean(
                self.TFW,
                self.
                tr('Force the generation of an associated ESRI world file (.tfw))'
                   ), False))
        params.append(
            ParameterString(self.EXTRA,
                            self.tr('Additional creation parameters'),
                            '',
                            optional=True))

        for param in params:
            param.isAdvanced = True
            self.addParameter(param)

        self.addOutput(OutputRaster(self.OUTPUT, self.tr('Clipped (mask)')))
예제 #9
0
 def defineCharacteristics(self):
     self.name, self.i18n_name = self.trAlgorithm('Import into PostGIS')
     self.group, self.i18n_group = self.trAlgorithm('Database')
     self.addParameter(
         ParameterVector(self.INPUT, self.tr('Layer to import')))
     self.addParameter(
         ParameterString(
             self.DATABASE,
             self.tr('Database (connection name)'),
             metadata={
                 'widget_wrapper': {
                     'class':
                     'processing.gui.wrappers_postgis.ConnectionWidgetWrapper'
                 }
             }))
     self.addParameter(
         ParameterString(
             self.SCHEMA,
             self.tr('Schema (schema name)'),
             'public',
             optional=True,
             metadata={
                 'widget_wrapper': {
                     'class':
                     'processing.gui.wrappers_postgis.SchemaWidgetWrapper',
                     'connection_param': self.DATABASE
                 }
             }))
     self.addParameter(
         ParameterString(
             self.TABLENAME,
             self.tr('Table to import to (leave blank to use layer name)'),
             '',
             optional=True,
             metadata={
                 'widget_wrapper': {
                     'class':
                     'processing.gui.wrappers_postgis.TableWidgetWrapper',
                     'schema_param': self.SCHEMA
                 }
             }))
     self.addParameter(
         ParameterTableField(self.PRIMARY_KEY,
                             self.tr('Primary key field'),
                             self.INPUT,
                             optional=True))
     self.addParameter(
         ParameterString(self.GEOMETRY_COLUMN, self.tr('Geometry column'),
                         'geom'))
     self.addParameter(
         ParameterString(self.ENCODING,
                         self.tr('Encoding'),
                         'UTF-8',
                         optional=True))
     self.addParameter(
         ParameterBoolean(self.OVERWRITE, self.tr('Overwrite'), True))
     self.addParameter(
         ParameterBoolean(self.CREATEINDEX, self.tr('Create spatial index'),
                          True))
     self.addParameter(
         ParameterBoolean(self.LOWERCASE_NAMES,
                          self.tr('Convert field names to lowercase'),
                          True))
     self.addParameter(
         ParameterBoolean(
             self.DROP_STRING_LENGTH,
             self.tr('Drop length constraints on character fields'), False))
     self.addParameter(
         ParameterBoolean(
             self.FORCE_SINGLEPART,
             self.tr('Create single-part geometries instead of multi-part'),
             False))
예제 #10
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Retile')
        self.group, self.i18n_group = self.trAlgorithm('[GDAL] Miscellaneous')

        # Required parameters
        self.addParameter(
            ParameterMultipleInput(self.INPUT, self.tr('Input layers'),
                                   ParameterMultipleInput.TYPE_RASTER))
        # Advanced parameters
        params = []
        params.append(
            ParameterString(
                self.PIXELSIZE,
                self.
                tr('Pixel size to be used for the output file (XSIZE YSIZE like 512 512)'
                   ), None, False, True))
        params.append(
            ParameterSelection(self.ALGORITHM, self.tr('Resampling algorithm'),
                               self.ALGO, 0, False, True))
        params.append(
            ParameterCrs(self.S_SRS, self.tr('Override source CRS'), None,
                         True))
        params.append(
            ParameterNumber(self.PYRAMIDLEVELS,
                            self.tr('Number of pyramids levels to build'),
                            None, None, None, True))
        params.append(
            ParameterBoolean(self.ONLYPYRAMIDS,
                             self.tr('Build only the pyramids'), False, True))
        params.append(
            ParameterSelection(self.RTYPE, self.tr('Output raster type'),
                               self.TYPE, 5, False, True))
        params.append(
            ParameterSelection(self.FORMAT, self.tr('Output raster format'),
                               GdalUtils.getSupportedRasters().keys(), 0,
                               False, True))
        params.append(
            ParameterBoolean(self.USEDIRFOREACHROW,
                             self.tr('Use a directory for each row'), False,
                             True))
        params.append(
            ParameterString(
                self.CSVFILE,
                self.
                tr('Name of the csv file containing the tile(s) georeferencing information'
                   ), None, False, True))
        params.append(
            ParameterString(self.CSVDELIM,
                            self.tr('Column delimiter used in the CSV file'),
                            None, False, True))
        params.append(
            ParameterString(
                self.TILEINDEX,
                self.tr(
                    'name of shape file containing the result tile(s) index'),
                None, False, True))
        params.append(
            ParameterString(
                self.TILEINDEXFIELD,
                self.
                tr('name of the attribute containing the tile name in the result shape file'
                   ), None, False, True))

        for param in params:
            param.isAdvanced = True
            self.addParameter(param)

        self.addOutput(
            OutputDirectory(
                self.TARGETDIR,
                self.tr('The directory where the tile result is created')))
예제 #11
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('gdal2tiles')
        self.group, self.i18n_group = self.trAlgorithm('[GDAL] Miscellaneous')

        # Required parameters
        self.addParameter(ParameterRaster(self.INPUT, self.tr('Input layer')))

        # Advanced parameters
        params = []
        params.append(
            ParameterSelection(self.PROFILE, self.tr('Tile cutting profile'),
                               self.PROFILES, 0, False, True))
        params.append(
            ParameterSelection(self.RESAMPLING, self.tr('Resampling method'),
                               self.RESAMPLINGS, 0, False, True))
        params.append(
            ParameterCrs(
                self.S_SRS,
                self.
                tr('The spatial reference system used for the source input data'
                   ), None, True))
        params.append(
            ParameterString(self.ZOOM, self.tr('Zoom levels to render'), None,
                            False, True))
        params.append(
            ParameterBoolean(
                self.RESUME,
                self.tr('Resume mode, generate only missing files'), False,
                True))
        params.append(
            ParameterString(
                self.NODATA,
                self.tr(
                    'NODATA transparency value to assign to the input data'),
                None, False, True))
        params.append(
            ParameterBoolean(
                self.FORCEKML,
                self.
                tr('Generate KML for Google Earth - default for "geodetic" profile and "raster" in EPSG:4326'
                   ), False, True))
        params.append(
            ParameterBoolean(
                self.NOKML,
                self.tr(
                    'Avoid automatic generation of KML files for EPSG:4326'),
                False, True))
        params.append(
            ParameterString(
                self.URL,
                self.
                tr('URL address where the generated tiles are going to be published'
                   ), None, False, True))
        params.append(
            ParameterSelection(self.WEBVIEWER,
                               self.tr('Web viewer to generate'),
                               self.WEBVIEWERS, 0, False, True))
        params.append(
            ParameterString(self.TITLE, self.tr('Title of the map'), None,
                            False, True))
        params.append(
            ParameterString(self.COPYRIGHT, self.tr('Copyright for the map'),
                            None, False, True))
        params.append(
            ParameterString(
                self.GOOGLEKEY,
                self.
                tr('Google Maps API key from http://code.google.com/apis/maps/signup.html'
                   ), None, False, True))
        params.append(
            ParameterString(
                self.BINGKEY,
                self.tr(
                    'Bing Maps API key from https://www.bingmapsportal.com/'),
                None, False, True))

        for param in params:
            param.isAdvanced = True
            self.addParameter(param)

        self.addOutput(
            OutputDirectory(
                self.OUTPUTDIR,
                self.tr('The directory where the tile result is created')))
예제 #12
0
    def __init__(self):
        super().__init__()
        self.DIRECTIONS = OrderedDict([
            (self.tr('Forward direction'),
             QgsVectorLayerDirector.DirectionForward),
            (self.tr('Backward direction'),
             QgsVectorLayerDirector.DirectionForward),
            (self.tr('Both directions'),
             QgsVectorLayerDirector.DirectionForward)
        ])

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

        self.addParameter(
            ParameterVector(self.INPUT_VECTOR,
                            self.tr('Vector layer representing network'),
                            [dataobjects.TYPE_VECTOR_LINE]))
        self.addParameter(
            ParameterPoint(self.START_POINT, self.tr('Start point')))
        self.addParameter(ParameterPoint(self.END_POINT, self.tr('End point')))
        self.addParameter(
            ParameterSelection(self.STRATEGY,
                               self.tr('Path type to calculate'),
                               self.STRATEGIES,
                               default=0))

        params = []
        params.append(
            ParameterTableField(self.DIRECTION_FIELD,
                                self.tr('Direction field'),
                                self.INPUT_VECTOR,
                                optional=True))
        params.append(
            ParameterString(self.VALUE_FORWARD,
                            self.tr('Value for forward direction'),
                            '',
                            optional=True))
        params.append(
            ParameterString(self.VALUE_BACKWARD,
                            self.tr('Value for backward direction'),
                            '',
                            optional=True))
        params.append(
            ParameterString(self.VALUE_BOTH,
                            self.tr('Value for both directions'),
                            '',
                            optional=True))
        params.append(
            ParameterSelection(self.DEFAULT_DIRECTION,
                               self.tr('Default direction'),
                               list(self.DIRECTIONS.keys()),
                               default=2))
        params.append(
            ParameterTableField(self.SPEED_FIELD,
                                self.tr('Speed field'),
                                self.INPUT_VECTOR,
                                optional=True))
        params.append(
            ParameterNumber(self.DEFAULT_SPEED,
                            self.tr('Default speed (km/h)'), 0.0,
                            99999999.999999, 5.0))
        params.append(
            ParameterNumber(self.TOLERANCE, self.tr('Topology tolerance'), 0.0,
                            99999999.999999, 0.0))

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

        self.addOutput(OutputNumber(self.TRAVEL_COST, self.tr('Travel cost')))
        self.addOutput(
            OutputVector(self.OUTPUT_LAYER,
                         self.tr('Shortest path'),
                         datatype=[dataobjects.TYPE_VECTOR_LINE]))
예제 #13
0
 def defineCharacteristics(self):
     self.name = 'Csv2Grid'
     self.group = 'Points'
     self.addParameter(ParameterFile(self.INPUT, 'CSV Files'))
     self.addParameter(ParameterString(self.COLUMN, 'Column'))
     self.addOutput(OutputFile(self.OUTPUT, 'Raster Output file', 'asc'))
예제 #14
0
 def defineCharacteristics(self):
     self.name, self.i18n_name = self.trAlgorithm('Raster calculator')
     self.group, self.i18n_group = self.trAlgorithm('[GDAL] Miscellaneous')
     self.addParameter(
         ParameterRaster(self.INPUT_A, self.tr('Input layer A'), False))
     self.addParameter(
         ParameterString(self.BAND_A,
                         self.tr('Number of raster band for raster A'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_B, self.tr('Input layer B'), True))
     self.addParameter(
         ParameterString(self.BAND_B,
                         self.tr('Number of raster band for raster B'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_C, self.tr('Input layer C'), True))
     self.addParameter(
         ParameterString(self.BAND_C,
                         self.tr('Number of raster band for raster C'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_D, self.tr('Input layer D'), True))
     self.addParameter(
         ParameterString(self.BAND_D,
                         self.tr('Number of raster band for raster D'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_E, self.tr('Input layer E'), True))
     self.addParameter(
         ParameterString(self.BAND_E,
                         self.tr('Number of raster band for raster E'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_F, self.tr('Input layer F'), True))
     self.addParameter(
         ParameterString(self.BAND_F,
                         self.tr('Number of raster band for raster F'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterString(
             self.FORMULA,
             self.
             tr('Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and())'
                ),
             'A*2',
             optional=False))
     self.addParameter(
         ParameterString(self.NO_DATA, self.tr('Set output nodata value'),
                         '-9999'))
     self.addParameter(
         ParameterSelection(self.RTYPE, self.tr('Output raster type'),
                            self.TYPE, 5))
     #self.addParameter(ParameterBoolean(
     #    self.DEBUG, self.tr('Print debugging information'), False))
     self.addParameter(
         ParameterString(self.EXTRA,
                         self.tr('Additional creation parameters'),
                         '',
                         optional=True))
     self.addOutput(OutputRaster(self.OUTPUT, self.tr('Calculated')))
예제 #15
0
    def __init__(self):
        super().__init__()
        self.addParameter(
            ParameterRaster(self.INPUT, self.tr('Input layer'), False))
        self.addParameter(
            ParameterCrs(self.SOURCE_SRS,
                         self.tr('Source SRS'),
                         '',
                         optional=True))
        self.addParameter(
            ParameterCrs(self.DEST_SRS, self.tr('Destination SRS'),
                         'EPSG:4326'))
        self.addParameter(
            ParameterString(
                self.NO_DATA,
                self.
                tr("Nodata value, leave blank to take the nodata value from input"
                   ),
                '',
                optional=True))
        self.addParameter(
            ParameterNumber(
                self.TR,
                self.
                tr('Output file resolution in target georeferenced units (leave 0 for no change)'
                   ), 0.0, None, 0.0))
        self.addParameter(
            ParameterSelection(self.METHOD, self.tr('Resampling method'),
                               self.METHOD_OPTIONS))
        self.addParameter(
            ParameterBoolean(
                self.USE_RASTER_EXTENT,
                self.tr('Set georeferenced extents of output file'), False))
        self.addParameter(
            ParameterExtent(self.RASTER_EXTENT,
                            self.tr('Raster extent'),
                            optional=True))
        self.addParameter(
            ParameterCrs(
                self.EXTENT_CRS,
                self.
                tr('CRS of the raster extent, leave blank for using Destination SRS'
                   ),
                optional=True))
        self.addParameter(
            ParameterString(
                self.OPTIONS,
                self.tr('Additional creation options'),
                optional=True,
                metadata={
                    'widget_wrapper':
                    'processing.algs.gdal.ui.RasterOptionsWidget.RasterOptionsWidgetWrapper'
                }))
        self.addParameter(
            ParameterBoolean(
                self.MULTITHREADING,
                self.tr('Use multithreaded warping implementation'), False))
        self.addParameter(
            ParameterSelection(self.RTYPE, self.tr('Output raster type'),
                               self.TYPE, 5))

        self.addOutput(OutputRaster(self.OUTPUT, self.tr('Reprojected')))
예제 #16
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm(
            'Translate (convert format)')
        self.group, self.i18n_group = self.trAlgorithm('[GDAL] Conversion')
        self.addParameter(
            ParameterRaster(self.INPUT, self.tr('Input layer'), False))
        self.addParameter(
            ParameterNumber(
                self.OUTSIZE,
                self.tr('Set the size of the output file (In pixels or %)'), 1,
                None, 100))
        self.addParameter(
            ParameterBoolean(
                self.OUTSIZE_PERC,
                self.tr('Output size is a percentage of input size'), True))
        self.addParameter(
            ParameterString(
                self.NO_DATA,
                self.
                tr("Nodata value, leave blank to take the nodata value from input"
                   ),
                '',
                optional=True))
        self.addParameter(
            ParameterSelection(self.EXPAND, self.tr('Expand'),
                               ['none', 'gray', 'rgb', 'rgba']))
        self.addParameter(
            ParameterCrs(
                self.SRS,
                self.
                tr('Output projection for output file [leave blank to use input projection]'
                   ),
                None,
                optional=True))
        self.addParameter(
            ParameterExtent(
                self.PROJWIN,
                self.tr('Subset based on georeferenced coordinates')))
        self.addParameter(
            ParameterBoolean(
                self.SDS,
                self.
                tr('Copy all subdatasets of this file to individual output files'
                   ), False))

        params = []
        params.append(
            ParameterSelection(self.RTYPE, self.tr('Output raster type'),
                               self.TYPE, 5))
        params.append(
            ParameterSelection(self.COMPRESS,
                               self.tr('GeoTIFF options. Compression type:'),
                               self.COMPRESSTYPE, 4))
        params.append(
            ParameterNumber(self.JPEGCOMPRESSION,
                            self.tr('Set the JPEG compression level'), 1, 100,
                            75))
        params.append(
            ParameterNumber(self.ZLEVEL,
                            self.tr('Set the DEFLATE compression level'), 1, 9,
                            6))
        params.append(
            ParameterNumber(
                self.PREDICTOR,
                self.tr('Set the predictor for LZW or DEFLATE compression'), 1,
                3, 1))
        params.append(
            ParameterBoolean(
                self.TILED,
                self.tr(
                    'Create tiled output (only used for the GTiff format)'),
                False))
        params.append(
            ParameterSelection(
                self.BIGTIFF,
                self.
                tr('Control whether the created file is a BigTIFF or a classic TIFF'
                   ), self.BIGTIFFTYPE, 0))
        params.append(
            ParameterBoolean(
                self.TFW,
                self.
                tr('Force the generation of an associated ESRI world file (.tfw))'
                   ), False))
        params.append(
            ParameterString(self.EXTRA,
                            self.tr('Additional creation parameters'),
                            '',
                            optional=True))

        for param in params:
            param.isAdvanced = True
            self.addParameter(param)

        self.addOutput(OutputRaster(self.OUTPUT, self.tr('Converted')))
예제 #17
0
    def processParameterLine(self, line):
        param = None
        out = None
        line = line.replace('#', '')

        # If the line is in the format of the text description files for
        # normal algorithms, then process it using parameter and output
        # factories
        if '|' in line:
            self.processDescriptionParameterLine(line)
            return
        if line == "nomodeler":
            self.showInModeler = False
            return
        tokens = line.split('=', 1)
        desc = self.createDescriptiveName(tokens[0])
        if tokens[1].lower().strip() == 'group':
            self.group = tokens[0]
            return
        if tokens[1].lower().strip() == 'name':
            self.name = tokens[0]
            return
        if tokens[1].lower().strip() == 'raster':
            param = ParameterRaster(tokens[0], desc, False)
        elif tokens[1].lower().strip() == 'vector':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_ANY])
        elif tokens[1].lower().strip() == 'vector point':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_POINT])
        elif tokens[1].lower().strip() == 'vector line':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_LINE])
        elif tokens[1].lower().strip() == 'vector polygon':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_POLYGON])
        elif tokens[1].lower().strip() == 'table':
            param = ParameterTable(tokens[0], desc, False)
        elif tokens[1].lower().strip() == 'multiple raster':
            param = ParameterMultipleInput(tokens[0], desc,
                                           ParameterMultipleInput.TYPE_RASTER)
            param.optional = False
        elif tokens[1].lower().strip() == 'multiple vector':
            param = ParameterMultipleInput(
                tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY)
            param.optional = False
        elif tokens[1].lower().strip().startswith('selection'):
            options = tokens[1].strip()[len('selection '):].split(';')
            param = ParameterSelection(tokens[0], desc, options)
        elif tokens[1].lower().strip().startswith('boolean'):
            default = tokens[1].strip()[len('boolean') + 1:]
            param = ParameterBoolean(tokens[0], desc, default)
        elif tokens[1].lower().strip() == 'extent':
            param = ParameterExtent(tokens[0], desc)
        elif tokens[1].lower().strip() == 'file':
            param = ParameterFile(tokens[0], desc, False)
        elif tokens[1].lower().strip() == 'folder':
            param = ParameterFile(tokens[0], desc, True)
        elif tokens[1].lower().strip().startswith('number'):
            default = tokens[1].strip()[len('number') + 1:]
            param = ParameterNumber(tokens[0], desc, default=default)
        elif tokens[1].lower().strip().startswith('field'):
            field = tokens[1].strip()[len('field') + 1:]
            found = False
            for p in self.parameters:
                if p.name == field:
                    found = True
                    break
            if found:
                param = ParameterTableField(tokens[0], desc, field)
        elif tokens[1].lower().strip().startswith('string'):
            default = tokens[1].strip()[len('string') + 1:]
            param = ParameterString(tokens[0], desc, default)
        elif tokens[1].lower().strip().startswith('longstring'):
            default = tokens[1].strip()[len('longstring') + 1:]
            param = ParameterString(tokens[0], desc, default, multiline=True)
        elif tokens[1].lower().strip().startswith('crs'):
            default = tokens[1].strip()[len('crs') + 1:]
            if not default:
                default = 'EPSG:4326'
            param = ParameterCrs(tokens[0], desc, default)
        elif tokens[1].lower().strip().startswith('output raster'):
            out = OutputRaster()
        elif tokens[1].lower().strip().startswith('output vector'):
            out = OutputVector()
        elif tokens[1].lower().strip().startswith('output table'):
            out = OutputTable()
        elif tokens[1].lower().strip().startswith('output html'):
            out = OutputHTML()
        elif tokens[1].lower().strip().startswith('output file'):
            out = OutputFile()
            subtokens = tokens[1].split(' ')
            if len(subtokens) > 2:
                out.ext = subtokens[2]
        elif tokens[1].lower().strip().startswith('output directory'):
            out = OutputDirectory()
        elif tokens[1].lower().strip().startswith('output number'):
            out = OutputNumber()
        elif tokens[1].lower().strip().startswith('output string'):
            out = OutputString()

        if param is not None:
            self.addParameter(param)
        elif out is not None:
            out.name = tokens[0]
            out.description = desc
            self.addOutput(out)
        else:
            raise WrongScriptException(
                self.tr('Could not load script: %s.\n'
                        'Problem with line %d', 'ScriptAlgorithm') %
                (self.descriptionFile or '', line))
예제 #18
0
 def defineCharacteristics(self):
     self.addParameter(
         ParameterString(
             self.DATABASE,
             self.tr('Database (connection name)'),
             metadata={
                 'widget_wrapper': {
                     'class':
                     'processing.gui.wrappers_postgis.ConnectionWidgetWrapper'
                 }
             }))
     self.addParameter(
         ParameterVector(self.INPUT_LAYER, self.tr('Input layer')))
     self.addParameter(
         ParameterString(self.SHAPE_ENCODING,
                         self.tr('Shape encoding'),
                         "",
                         optional=True))
     self.addParameter(
         ParameterSelection(self.GTYPE, self.tr('Output geometry type'),
                            self.GEOMTYPE, 0))
     self.addParameter(
         ParameterCrs(self.A_SRS,
                      self.tr('Assign an output CRS'),
                      '',
                      optional=False))
     self.addParameter(
         ParameterCrs(self.T_SRS,
                      self.tr('Reproject to this CRS on output '),
                      '',
                      optional=True))
     self.addParameter(
         ParameterCrs(self.S_SRS,
                      self.tr('Override source CRS'),
                      '',
                      optional=True))
     self.addParameter(
         ParameterString(
             self.SCHEMA,
             self.tr('Schema name'),
             'public',
             optional=True,
             metadata={
                 'widget_wrapper': {
                     'class':
                     'processing.gui.wrappers_postgis.SchemaWidgetWrapper',
                     'connection_param': self.DATABASE
                 }
             }))
     self.addParameter(
         ParameterString(
             self.TABLE,
             self.tr('Table name, leave blank to use input name'),
             '',
             optional=True,
             metadata={
                 'widget_wrapper': {
                     'class':
                     'processing.gui.wrappers_postgis.TableWidgetWrapper',
                     'schema_param': self.SCHEMA
                 }
             }))
     self.addParameter(
         ParameterString(self.PK,
                         self.tr('Primary key (new field)'),
                         'id',
                         optional=True))
     self.addParameter(
         ParameterTableField(
             self.PRIMARY_KEY,
             self.
             tr('Primary key (existing field, used if the above option is left empty)'
                ),
             self.INPUT_LAYER,
             optional=True))
     self.addParameter(
         ParameterString(self.GEOCOLUMN,
                         self.tr('Geometry column name'),
                         'geom',
                         optional=True))
     self.addParameter(
         ParameterSelection(self.DIM, self.tr('Vector dimensions'),
                            self.DIMLIST, 0))
     self.addParameter(
         ParameterString(self.SIMPLIFY,
                         self.tr('Distance tolerance for simplification'),
                         '',
                         optional=True))
     self.addParameter(
         ParameterString(
             self.SEGMENTIZE,
             self.tr('Maximum distance between 2 nodes (densification)'),
             '',
             optional=True))
     self.addParameter(
         ParameterExtent(
             self.SPAT,
             self.tr(
                 'Select features by extent (defined in input layer CRS)')))
     self.addParameter(
         ParameterBoolean(
             self.CLIP,
             self.tr(
                 'Clip the input layer using the above (rectangle) extent'),
             False))
     self.addParameter(
         ParameterString(
             self.WHERE,
             self.
             tr('Select features using a SQL "WHERE" statement (Ex: column=\'value\')'
                ),
             '',
             optional=True))
     self.addParameter(
         ParameterString(
             self.GT,
             self.tr('Group N features per transaction (Default: 20000)'),
             '',
             optional=True))
     self.addParameter(
         ParameterBoolean(self.OVERWRITE,
                          self.tr('Overwrite existing table'), True))
     self.addParameter(
         ParameterBoolean(self.APPEND, self.tr('Append to existing table'),
                          False))
     self.addParameter(
         ParameterBoolean(
             self.ADDFIELDS,
             self.tr('Append and add new fields to existing table'), False))
     self.addParameter(
         ParameterBoolean(self.LAUNDER,
                          self.tr('Do not launder columns/table names'),
                          False))
     self.addParameter(
         ParameterBoolean(self.INDEX,
                          self.tr('Do not create spatial index'), False))
     self.addParameter(
         ParameterBoolean(
             self.SKIPFAILURES,
             self.tr(
                 'Continue after a failure, skipping the failed feature'),
             False))
     self.addParameter(
         ParameterBoolean(self.PROMOTETOMULTI,
                          self.tr('Promote to Multipart'), True))
     self.addParameter(
         ParameterBoolean(
             self.PRECISION,
             self.tr('Keep width and precision of input attributes'), True))
     self.addParameter(
         ParameterString(self.OPTIONS,
                         self.tr('Additional creation options'),
                         '',
                         optional=True))
예제 #19
0
 def defineCharacteristics(self):
     self.name = 'Import Vector into PostGIS database (available connections)'
     self.group = '[OGR] Miscellaneous'
     self.DB_CONNECTIONS = self.dbConnectionNames()
     self.addParameter(
         ParameterSelection(self.DATABASE,
                            self.tr('Database (connection name)'),
                            self.DB_CONNECTIONS))
     self.addParameter(
         ParameterVector(self.INPUT_LAYER, self.tr('Input layer'),
                         [ParameterVector.VECTOR_TYPE_ANY], False))
     self.addParameter(
         ParameterSelection(self.GTYPE, self.tr('Output geometry type'),
                            self.GEOMTYPE, 5))
     self.addParameter(
         ParameterCrs(self.S_SRS, self.tr('Input CRS'), 'EPSG:4326'))
     self.addParameter(
         ParameterCrs(self.T_SRS, self.tr('Output CRS'), 'EPSG:4326'))
     self.addParameter(
         ParameterString(self.SCHEMA,
                         self.tr('Schema name'),
                         'public',
                         optional=True))
     self.addParameter(
         ParameterString(
             self.TABLE,
             self.tr('Table name, leave blank to use input name'),
             '',
             optional=True))
     self.addParameter(
         ParameterString(self.PK,
                         self.tr('Primary key'),
                         'id',
                         optional=True))
     self.addParameter(
         ParameterString(self.GEOCOLUMN,
                         self.tr('Geometry column name'),
                         'geom',
                         optional=True))
     self.addParameter(
         ParameterSelection(self.DIM, self.tr('Vector dimensions'),
                            self.DIMLIST, 0))
     self.addParameter(
         ParameterString(self.SIMPLIFY,
                         self.tr('Distance tolerance for simplification'),
                         '',
                         optional=True))
     self.addParameter(
         ParameterString(
             self.SEGMENTIZE,
             self.tr('Maximum distance between 2 nodes (densification)'),
             '',
             optional=True))
     self.addParameter(
         ParameterExtent(
             self.SPAT,
             self.tr(
                 'Select features by extent (defined in input layer CRS)')))
     self.addParameter(
         ParameterBoolean(
             self.CLIP,
             self.tr(
                 'Clip the input layer using the above (rectangle) extent'),
             False))
     self.addParameter(
         ParameterString(
             self.WHERE,
             self.
             tr('Select features using a SQL "WHERE" statement (Ex: column="value")'
                ),
             '',
             optional=True))
     self.addParameter(
         ParameterString(
             self.GT,
             self.tr('Group N features per transaction (Default: 20000)'),
             '',
             optional=True))
     self.addParameter(
         ParameterBoolean(self.OVERWRITE,
                          self.tr('Overwrite existing table'), True))
     self.addParameter(
         ParameterBoolean(self.APPEND, self.tr('Append to existing table'),
                          False))
     self.addParameter(
         ParameterBoolean(
             self.ADDFIELDS,
             self.tr('Append and add new fields to existing table'), False))
     self.addParameter(
         ParameterBoolean(self.LAUNDER,
                          self.tr('Do not launder columns/table names'),
                          False))
     self.addParameter(
         ParameterBoolean(self.INDEX,
                          self.tr('Do not create spatial index'), False))
     self.addParameter(
         ParameterBoolean(
             self.SKIPFAILURES,
             self.tr(
                 'Continue after a failure, skipping the failed feature'),
             False))
     self.addParameter(
         ParameterString(self.OPTIONS,
                         self.tr('Additional creation options'),
                         '',
                         optional=True))
예제 #20
0
 def defineCharacteristics(self):
     self.name, self.i18n_name = self.trAlgorithm(
         'Import layer/table as geometryless table into PostgreSQL database'
     )
     self.group, self.i18n_group = self.trAlgorithm('[OGR] Miscellaneous')
     self.DB_CONNECTIONS = self.dbConnectionNames()
     self.addParameter(
         ParameterSelection(self.DATABASE,
                            self.tr('Database (connection name)'),
                            self.DB_CONNECTIONS))
     self.addParameter(
         ParameterTable(self.INPUT_LAYER, self.tr('Input layer')))
     self.addParameter(
         ParameterString(self.SCHEMA,
                         self.tr('Schema name'),
                         'public',
                         optional=True))
     self.addParameter(
         ParameterString(
             self.TABLE,
             self.tr('Table name, leave blank to use input name'),
             '',
             optional=True))
     self.addParameter(
         ParameterString(self.PK,
                         self.tr('Primary key'),
                         'id',
                         optional=True))
     self.addParameter(
         ParameterTableField(
             self.PRIMARY_KEY,
             self.
             tr('Primary key (existing field, used if the above option is left empty)'
                ),
             self.INPUT_LAYER,
             optional=True))
     self.addParameter(
         ParameterString(
             self.WHERE,
             self.
             tr('Select features using a SQL "WHERE" statement (Ex: column=\'value\')'
                ),
             '',
             optional=True))
     self.addParameter(
         ParameterString(
             self.GT,
             self.tr('Group N features per transaction (Default: 20000)'),
             '',
             optional=True))
     self.addParameter(
         ParameterBoolean(self.OVERWRITE,
                          self.tr('Overwrite existing table'), True))
     self.addParameter(
         ParameterBoolean(self.APPEND, self.tr('Append to existing table'),
                          False))
     self.addParameter(
         ParameterBoolean(
             self.ADDFIELDS,
             self.tr('Append and add new fields to existing table'), False))
     self.addParameter(
         ParameterBoolean(self.LAUNDER,
                          self.tr('Do not launder columns/table names'),
                          False))
     self.addParameter(
         ParameterBoolean(
             self.SKIPFAILURES,
             self.tr(
                 'Continue after a failure, skipping the failed record'),
             False))
     self.addParameter(
         ParameterBoolean(
             self.PRECISION,
             self.tr('Keep width and precision of input attributes'), True))
     self.addParameter(
         ParameterString(self.OPTIONS,
                         self.tr('Additional creation options'),
                         '',
                         optional=True))
예제 #21
0
파일: RAlgorithm.py 프로젝트: wsyscu/QGIS
    def processParameterLine(self, line):
        param = None
        out = None
        line = line.replace('#', '')
        if line.lower().strip().startswith('showplots'):
            self.showPlots = True
            self.addOutput(OutputHTML(RAlgorithm.RPLOTS, 'R Plots'))
            return
        if line.lower().strip().startswith('dontuserasterpackage'):
            self.useRasterPackage = False
            return
        if line.lower().strip().startswith('passfilenames'):
            self.passFileNames = True
            return
        tokens = line.split('=')
        desc = self.createDescriptiveName(tokens[0])
        if tokens[1].lower().strip() == 'group':
            self.group = tokens[0]
            return
        if tokens[1].lower().strip().startswith('raster'):
            param = ParameterRaster(tokens[0], desc, False)
        elif tokens[1].lower().strip() == 'vector':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_ANY])
        elif tokens[1].lower().strip() == 'vector point':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_POINT])
        elif tokens[1].lower().strip() == 'vector line':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_LINE])
        elif tokens[1].lower().strip() == 'vector polygon':
            param = ParameterVector(tokens[0], desc,
                                    [ParameterVector.VECTOR_TYPE_POLYGON])
        elif tokens[1].lower().strip() == 'table':
            param = ParameterTable(tokens[0], desc, False)
        elif tokens[1].lower().strip().startswith('multiple raster'):
            param = ParameterMultipleInput(tokens[0], desc,
                                           ParameterMultipleInput.TYPE_RASTER)
            param.optional = False
        elif tokens[1].lower().strip() == 'multiple vector':
            param = ParameterMultipleInput(
                tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY)
            param.optional = False
        elif tokens[1].lower().strip().startswith('selection'):
            options = tokens[1].strip()[len('selection'):].split(';')
            param = ParameterSelection(tokens[0], desc, options)
        elif tokens[1].lower().strip().startswith('boolean'):
            default = tokens[1].strip()[len('boolean') + 1:]
            param = ParameterBoolean(tokens[0], desc, default)
        elif tokens[1].lower().strip().startswith('number'):
            try:
                default = float(tokens[1].strip()[len('number') + 1:])
                param = ParameterNumber(tokens[0], desc, default=default)
            except:
                raise WrongScriptException(
                    self.tr(
                        'Could not load R script: %s.\n Problem with line %s' %
                        (self.descriptionFile, line)))
        elif tokens[1].lower().strip().startswith('field'):
            field = tokens[1].strip()[len('field') + 1:]
            found = False
            for p in self.parameters:
                if p.name == field:
                    found = True
                    break
            if found:
                param = ParameterTableField(tokens[0], tokens[0], field)
        elif tokens[1].lower().strip() == 'extent':
            param = ParameterExtent(tokens[0], desc)
        elif tokens[1].lower().strip() == 'file':
            param = ParameterFile(tokens[0], desc, False)
        elif tokens[1].lower().strip() == 'folder':
            param = ParameterFile(tokens[0], desc, True)
        elif tokens[1].lower().strip().startswith('string'):
            default = tokens[1].strip()[len('string') + 1:]
            param = ParameterString(tokens[0], desc, default)
        elif tokens[1].lower().strip().startswith('longstring'):
            default = tokens[1].strip()[len('longstring') + 1:]
            param = ParameterString(tokens[0], desc, default, multiline=True)
        elif tokens[1].lower().strip().startswith('output raster'):
            out = OutputRaster()
        elif tokens[1].lower().strip().startswith('output vector'):
            out = OutputVector()
        elif tokens[1].lower().strip().startswith('output table'):
            out = OutputTable()
        elif tokens[1].lower().strip().startswith('output file'):
            out = OutputFile()

        if param is not None:
            self.addParameter(param)
        elif out is not None:
            out.name = tokens[0]
            out.description = tokens[0]
            self.addOutput(out)
        else:
            raise WrongScriptException(
                self.tr('Could not load R script: %s.\n Problem with line %s' %
                        (self.descriptionFile, line)))
예제 #22
0
    def defineCharacteristics(self):
        self.DIRECTIONS = OrderedDict([
            (self.tr('Forward direction'),
             QgsVectorLayerDirector.DirectionForward),
            (self.tr('Backward direction'),
             QgsVectorLayerDirector.DirectionForward),
            (self.tr('Both directions'),
             QgsVectorLayerDirector.DirectionForward)
        ])

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

        self.addParameter(
            ParameterVector(self.INPUT_VECTOR,
                            self.tr('Vector layer representing network'),
                            [dataobjects.TYPE_VECTOR_LINE]))
        self.addParameter(
            ParameterPoint(self.START_POINT, self.tr('Start point')))
        self.addParameter(
            ParameterSelection(self.STRATEGY,
                               self.tr('Path type to calculate'),
                               self.STRATEGIES,
                               default=0))
        self.addParameter(
            ParameterNumber(
                self.TRAVEL_COST,
                self.tr(
                    'Travel cost (distance for "Shortest", time for "Fastest")'
                ), 0.0, 99999999.999999, 0.0))

        params = []
        params.append(
            ParameterTableField(self.DIRECTION_FIELD,
                                self.tr('Direction field'),
                                self.INPUT_VECTOR,
                                optional=True))
        params.append(
            ParameterString(self.VALUE_FORWARD,
                            self.tr('Value for forward direction'),
                            '',
                            optional=True))
        params.append(
            ParameterString(self.VALUE_BACKWARD,
                            self.tr('Value for backward direction'),
                            '',
                            optional=True))
        params.append(
            ParameterString(self.VALUE_BOTH,
                            self.tr('Value for both directions'),
                            '',
                            optional=True))
        params.append(
            ParameterSelection(self.DEFAULT_DIRECTION,
                               self.tr('Default direction'),
                               list(self.DIRECTIONS.keys()),
                               default=2))
        params.append(
            ParameterTableField(self.SPEED_FIELD,
                                self.tr('Speed field'),
                                self.INPUT_VECTOR,
                                optional=True))
        params.append(
            ParameterNumber(self.DEFAULT_SPEED,
                            self.tr('Default speed (km/h)'), 0.0,
                            99999999.999999, 5.0))
        params.append(
            ParameterNumber(self.TOLERANCE, self.tr('Topology tolerance'), 0.0,
                            99999999.999999, 0.0))

        for p in params:
            p.isAdvanced = True
            self.addParameter(p)

        self.addOutput(
            OutputVector(self.OUTPUT_POINTS,
                         self.tr('Service area (boundary nodes)'),
                         datatype=[dataobjects.TYPE_VECTOR_POINT]))
        self.addOutput(
            OutputVector(self.OUTPUT_POLYGON,
                         self.tr('Service area (convex hull)'),
                         datatype=[dataobjects.TYPE_VECTOR_POLYGON]))
예제 #23
0
    def defineCharacteristics(self):
        """Algorithme variable and parameters parameters"""

        CholeAlgorithm.defineCharacteristics(self)

        # The name/group that the user will see in the toolbox
        self.group = 'landscape metrics'
        self.i18n_group = self.tr('landscape metrics')
        self.name = 'sliding multi'
        self.i18n_name = self.tr('sliding multi')

        # === INPUT PARAMETERS ===
        self.addParameter(
            ParameterRaster(name=self.INPUT_LAYER_ASC,
                            description=self.tr('Input layer asc')))

        self.addParameter(
            ParameterSelection(name=self.WINDOW_SHAPE,
                               description=self.tr('Window shape'),
                               options=';'.join(self.types_of_shape)))

        self.addParameter(
            ParameterFile(name=self.FRICTION_FILE,
                          description=self.tr('Friction file')))

        self.addParameter(
            ParameterString(name=self.WINDOW_SIZES,
                            description=self.tr('Windows sizes (pixels)')))

        self.addParameter(
            ParameterNumber(
                name=self.DELTA_DISPLACEMENT,
                description=self.tr('Delta od displacement (pixels)'),
                default=1))

        self.addParameter(
            ParameterBoolean(name=self.INTERPOLATE_VALUES_BOOL,
                             description=self.tr('Interpolate Values'),
                             default=False))

        self.addParameter(
            ParameterString(
                name=self.FILTER,
                description=self.tr('Filters - Analyse only (optional)'),
                default='',
                optional=True))

        self.addParameter(
            ParameterString(
                name=self.UNFILTER,
                default='',
                description=self.tr('Filters - Do not analyse (optional)'),
                optional=True))

        self.addParameter(
            ParameterNumber(
                name=self.MAXIMUM_RATE_MISSING_VALUES,
                description=self.tr('Maximum rate of mising values'),
                minValue=0,
                maxValue=100,
                default=100))

        self.addParameter(
            ParameterString(name=self.METRICS,
                            description=self.tr('Select metrics')))

        # === OUTPUT PARAMETERS ===
        self.addOutput(
            OutputFile(name=self.SAVE_PROPERTIES,
                       description=self.tr('Properties file'),
                       ext='properties'))

        self.addOutput(
            OutputDirectory(name=self.OUTPUT_DIR,
                            description=self.tr('Output directory')))

        self.addParameter(
            ParameterBoolean(name=self.OPEN_ALL_ASC,
                             description=self.tr('Open all ascii'),
                             default=True,
                             optional=True))
예제 #24
0
 def addParametersGenericInputFolderGUI(self, wildcard):
     self.addParameter(ParameterFile(LAStoolsAlgorithm.INPUT_DIRECTORY, self.tr("input directory"), True, False))
     self.addParameter(ParameterString(LAStoolsAlgorithm.INPUT_WILDCARDS, self.tr("input wildcard(s)"), wildcard))
예제 #25
0
 def defineCharacteristics(self):
     self.name, self.i18n_name = self.trAlgorithm('PostGIS execute SQL')
     self.group, self.i18n_group = self.trAlgorithm('Database')
     self.addParameter(ParameterString(self.DATABASE, self.tr('Database')))
     self.addParameter(
         ParameterString(self.SQL, self.tr('SQL query'), '', True))
예제 #26
0
 def addParametersAdditionalGUI(self):
     self.addParameter(ParameterString(LAStoolsAlgorithm.ADDITIONAL_OPTIONS, self.tr("additional command line parameter(s)"), optional=True))
예제 #27
0
파일: gdalcalc.py 프로젝트: laich57/QGIS
 def initAlgorithm(self, config=None):
     self.addParameter(
         ParameterRaster(self.INPUT_A, self.tr('Input layer A'), False))
     self.addParameter(
         ParameterString(self.BAND_A,
                         self.tr('Number of raster band for raster A'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_B, self.tr('Input layer B'), True))
     self.addParameter(
         ParameterString(self.BAND_B,
                         self.tr('Number of raster band for raster B'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_C, self.tr('Input layer C'), True))
     self.addParameter(
         ParameterString(self.BAND_C,
                         self.tr('Number of raster band for raster C'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_D, self.tr('Input layer D'), True))
     self.addParameter(
         ParameterString(self.BAND_D,
                         self.tr('Number of raster band for raster D'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_E, self.tr('Input layer E'), True))
     self.addParameter(
         ParameterString(self.BAND_E,
                         self.tr('Number of raster band for raster E'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterRaster(self.INPUT_F, self.tr('Input layer F'), True))
     self.addParameter(
         ParameterString(self.BAND_F,
                         self.tr('Number of raster band for raster F'),
                         '1',
                         optional=True))
     self.addParameter(
         ParameterString(
             self.FORMULA,
             self.
             tr('Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and())'
                ),
             'A*2',
             optional=False))
     self.addParameter(
         ParameterString(self.NO_DATA,
                         self.tr('Set output nodata value'),
                         '',
                         optional=True))
     self.addParameter(
         ParameterSelection(self.RTYPE, self.tr('Output raster type'),
                            self.TYPE, 5))
     #self.addParameter(ParameterBoolean(
     #    self.DEBUG, self.tr('Print debugging information'), False))
     self.addParameter(
         ParameterString(self.EXTRA,
                         self.tr('Additional creation parameters'),
                         '',
                         optional=True))
     self.addOutput(OutputRaster(self.OUTPUT, self.tr('Calculated')))
예제 #28
0
 def addParametersTransform1CoordinateGUI(self):
     self.addParameter(ParameterSelection(LAStoolsAlgorithm.TRANSFORM_COORDINATE1,
                                          self.tr("transform (coordinates)"), LAStoolsAlgorithm.TRANSFORM_COORDINATES, 0))
     self.addParameter(ParameterString(LAStoolsAlgorithm.TRANSFORM_COORDINATE1_ARG,
                                       self.tr("value for transform (coordinates)")))
예제 #29
0
    BAND_F = 'BAND_F'
    FORMULA = 'FORMULA'
    OUTPUT = 'OUTPUT'
    NO_DATA = 'NO_DATA'
    EXTRA = 'EXTRA'
    RTYPE = 'RTYPE'
    TYPE = ['Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64']
    #DEBUG = 'DEBUG'

    def defineCharacteristics(self):
<<<<<<< HEAD
        self.name = 'Raster calculator'
        self.group = '[GDAL] Miscellaneous'
        self.addParameter(ParameterRaster(
            self.INPUT_A, self.tr('Input layer A'), False))
        self.addParameter(ParameterString(self.BAND_A,
            self.tr('Number of raster band for raster A'), '1', optional=True))
        self.addParameter(ParameterRaster(
            self.INPUT_B, self.tr('Input layer B'), True))
        self.addParameter(ParameterString(self.BAND_B,
            self.tr('Number of raster band for raster B'), '1', optional=True))
        self.addParameter(ParameterRaster(
            self.INPUT_C, self.tr('Input layer C'), True))
        self.addParameter(ParameterString(self.BAND_C,
            self.tr('Number of raster band for raster C'), '1', optional=True))
        self.addParameter(ParameterRaster(
            self.INPUT_D, self.tr('Input layer D'), True))
        self.addParameter(ParameterString(self.BAND_D,
            self.tr('Number of raster band for raster D'), '1', optional=True))
        self.addParameter(ParameterRaster(
            self.INPUT_E, self.tr('Input layer E'), True))
        self.addParameter(ParameterString(self.BAND_E,