Exemplo n.º 1
0
    def initAlgorithm(self, config=None):
        self.addParameter(ParameterVector(self.INPUT, self.tr('Input layer')))
        self.addParameter(
            ParameterTableField(self.XFIELD, self.tr('X attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.YFIELD, self.tr('Y attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.ZFIELD, self.tr('Z attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Scatterplot 3D')))
Exemplo n.º 2
0
    def defineCharacteristics(self):
        self.addParameter(
            ParameterVector(self.POINTS, self.tr('Points'),
                            [dataobjects.TYPE_VECTOR_POINT]))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Nearest neighbour')))

        self.addOutput(
            OutputNumber(self.OBSERVED_MD, self.tr('Observed mean distance')))
        self.addOutput(
            OutputNumber(self.EXPECTED_MD, self.tr('Expected mean distance')))
        self.addOutput(
            OutputNumber(self.NN_INDEX, self.tr('Nearest neighbour index')))
        self.addOutput(
            OutputNumber(self.POINT_COUNT, self.tr('Number of points')))
        self.addOutput(OutputNumber(self.Z_SCORE, self.tr('Z-Score')))
Exemplo n.º 3
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm(
            'Vector layer scatterplot')
        self.group, self.i18n_group = self.trAlgorithm('Graphics')

        self.addParameter(ParameterVector(self.INPUT, self.tr('Input layer')))
        self.addParameter(
            ParameterTableField(self.XFIELD, self.tr('X attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.YFIELD, self.tr('Y attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Scatterplot')))
Exemplo n.º 4
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Find projection')
        self.group, self.i18n_group = self.trAlgorithm('Vector general tools')
        self.tags = self.tr('crs,srs,coordinate,reference,system,guess,estimate,finder,determine')

        self.addParameter(ParameterVector(self.INPUT_LAYER,
                                          self.tr('Input layer')))
        extent_parameter = ParameterExtent(self.TARGET_AREA,
                                           self.tr('Target area for layer'),
                                           self.INPUT_LAYER)
        extent_parameter.skip_crs_check = True
        self.addParameter(extent_parameter)
        self.addParameter(ParameterCrs(self.TARGET_AREA_CRS, 'Target area CRS'))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Candidates')))
Exemplo n.º 5
0
    def defineCharacteristics(self):
        self.addParameter(ParameterVector(self.INPUT, self.tr('Input layer')))
        self.addParameter(
            ParameterTableField(self.XFIELD, self.tr('X attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.YFIELD, self.tr('Y attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.ZFIELD, self.tr('Z attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Scatterplot 3D')))
Exemplo n.º 6
0
    def __init__(self):
        super().__init__()
        self.addParameter(
            ParameterTable(self.INPUT_LAYER, self.tr('Input table')))
        self.addParameter(
            ParameterTableField(self.FIELD_NAME,
                                self.tr('Field to calculate statistics on'),
                                self.INPUT_LAYER))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Statistics')))

        self.addOutput(OutputNumber(self.COUNT, self.tr('Count')))
        self.addOutput(
            OutputNumber(self.UNIQUE, self.tr('Number of unique values')))
        self.addOutput(
            OutputNumber(self.EMPTY, self.tr('Number of empty (null) values')))
        self.addOutput(
            OutputNumber(self.FILLED, self.tr('Number of non-empty values')))
        self.addOutput(OutputNumber(self.MIN, self.tr('Minimum value')))
        self.addOutput(OutputNumber(self.MAX, self.tr('Maximum value')))
        self.addOutput(OutputNumber(self.MIN_LENGTH,
                                    self.tr('Minimum length')))
        self.addOutput(OutputNumber(self.MAX_LENGTH,
                                    self.tr('Maximum length')))
        self.addOutput(OutputNumber(self.MEAN_LENGTH, self.tr('Mean length')))
        self.addOutput(
            OutputNumber(self.CV, self.tr('Coefficient of Variation')))
        self.addOutput(OutputNumber(self.SUM, self.tr('Sum')))
        self.addOutput(OutputNumber(self.MEAN, self.tr('Mean value')))
        self.addOutput(
            OutputNumber(self.STD_DEV, self.tr('Standard deviation')))
        self.addOutput(OutputNumber(self.RANGE, self.tr('Range')))
        self.addOutput(OutputNumber(self.MEDIAN, self.tr('Median')))
        self.addOutput(
            OutputNumber(self.MINORITY,
                         self.tr('Minority (rarest occurring value)')))
        self.addOutput(
            OutputNumber(
                self.MAJORITY,
                self.tr('Majority (most frequently occurring value)')))
        self.addOutput(
            OutputNumber(self.FIRSTQUARTILE, self.tr('First quartile')))
        self.addOutput(
            OutputNumber(self.THIRDQUARTILE, self.tr('Third quartile')))
        self.addOutput(
            OutputNumber(self.IQR, self.tr('Interquartile Range (IQR)')))
Exemplo n.º 7
0
    def processParameterLine(self, line):
        param = 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() == 'name':
            self._name = self._display_name = tokens[0]
            self._name = self._name.lower()
            validChars = \
                'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:'
            self._name = ''.join(c for c in self._name if c in validChars)
            return

        out = getOutputFromString(line)
        if out is None:
            param = getParameterFromString(line)

        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: {0}.\n'
                    'Problem with line "{1}"',
                    'ScriptAlgorithm').format(self.descriptionFile or '',
                                              line))

            raise WrongScriptException(
                self.tr('Could not load R script: {0}.\n Problem with line {1}'
                        ).format(self.descriptionFile, line))
Exemplo n.º 8
0
    def defineCharacteristics(self):
        self.name = 'Closest point (with distance)'
        self.group = 'Vector geoprocessing'

        self.addParameter(
            ParameterVector(self.INPUT_LAYER_A, '"FROM" layer',
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(
            ParameterTableField(self.FIELD_A,
                                '"FROM" layer ID',
                                self.INPUT_LAYER_A,
                                optional=False))
        self.addParameter(
            ParameterString(
                self.FIELDS,
                'Attributes to keep of layer "FROM" (comma separated list). Aliasing permitted.',
                '',
                optional=False))
        self.addParameter(
            ParameterVector(self.INPUT_LAYER_B, '"TO" layer',
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(
            ParameterTableField(self.FIELD_B,
                                '"TO" layer layer ID',
                                self.INPUT_LAYER_B,
                                optional=False))
        self.addParameter(
            ParameterBoolean(self.MULTI,
                             'Consider "TO" layer as one unique feature',
                             True))
        self.addParameter(
            ParameterString(self.SCHEMA,
                            'Output schema',
                            'public',
                            optional=False))
        self.addParameter(
            ParameterString(self.TABLE,
                            'Output table name',
                            'closest_point',
                            optional=False))
        self.addParameter(
            ParameterString(self.OPTIONS,
                            'Additional creation options (see ogr2ogr manual)',
                            '',
                            optional=True))
        self.addOutput(OutputHTML(self.OUTPUT, 'Output log'))
Exemplo n.º 9
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Raster layer statistics')
        self.group, self.i18n_group = self.trAlgorithm('Raster tools')

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

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Statistics')))
        self.addOutput(OutputNumber(self.MIN, self.tr('Minimum value')))
        self.addOutput(OutputNumber(self.MAX, self.tr('Maximum value')))
        self.addOutput(OutputNumber(self.SUM, self.tr('Sum')))
        self.addOutput(OutputNumber(self.MEAN, self.tr('Mean value')))
        self.addOutput(OutputNumber(self.COUNT, self.tr('valid cells count')))
        self.addOutput(OutputNumber(self.COUNT,
                                    self.tr('No-data cells count')))
        self.addOutput(
            OutputNumber(self.STD_DEV, self.tr('Standard deviation')))
Exemplo n.º 10
0
    def defineCharacteristics(self):
        self.name = 'Mean and standard deviation plot'
        self.group = 'Graphics'

        self.addParameter(ParameterTable(self.INPUT, self.tr('Input table')))
        self.addParameter(
            ParameterTableField(self.NAME_FIELD,
                                self.tr('Category name field'), self.INPUT,
                                ParameterTableField.DATA_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.MEAN_FIELD, self.tr('Mean field'),
                                self.INPUT))
        self.addParameter(
            ParameterTableField(self.STDDEV_FIELD, self.tr('StdDev field'),
                                self.INPUT))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Output')))
Exemplo n.º 11
0
    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 = self.i18n_group = tokens[0]
            return
        if tokens[1].lower().strip() == 'name':
            self.name = self.i18n_name = tokens[0]
            return

        if tokens[1].lower().strip().startswith('output'):
            outToken = tokens[1].strip()[len('output') + 1:]
            out = self.processOutputParameterToken(outToken)

        elif tokens[1].lower().strip().startswith('optional'):
            optToken = tokens[1].strip()[len('optional') + 1:]
            param = self.processInputParameterToken(optToken, tokens[0])
            if param:
                param.optional = True

        else:
            param = self.processInputParameterToken(tokens[1], tokens[0])

        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)))
Exemplo n.º 12
0
    def defineCharacteristics(self):
        self.name = 'Vector layer scatterplot'
        self.group = 'Graphics'

        self.addParameter(
            ParameterVector(self.INPUT, self.tr('Input layer'),
                            [ParameterVector.VECTOR_TYPE_ANY]))
        self.addParameter(
            ParameterTableField(self.XFIELD, self.tr('X attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.YFIELD, self.tr('Y attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Output')))
Exemplo n.º 13
0
    def __init__(self):
        super().__init__()
        self.addParameter(ParameterVector(self.INPUT, self.tr('Input layer')))
        self.addParameter(
            ParameterTableField(self.XFIELD, self.tr('X attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.YFIELD, self.tr('Y attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))
        self.addParameter(
            ParameterTableField(self.ZFIELD, self.tr('Z attribute'),
                                self.INPUT,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Scatterplot 3D')))
Exemplo n.º 14
0
    def defineCharacteristics(self):
        self.name = 'Clip with polygons (Intersection)'
        self.group = 'Vector geoprocessing'

        self.addParameter(
            ParameterVector(self.INPUT_LAYER_A, 'Clip polygon layer',
                            [ParameterVector.VECTOR_TYPE_POLYGON], False))
        self.addParameter(
            ParameterString(
                self.FIELDS_A,
                'Attributes to keep (comma separated list). Aliasing permitted.',
                '',
                optional=False))
        self.addParameter(
            ParameterVector(self.INPUT_LAYER_B, 'Layer to be clipped',
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(
            ParameterString(
                self.FIELDS_B,
                'Attributes to keep (comma separated list). Aliasing permitted.',
                '',
                optional=False))
        self.addParameter(
            ParameterBoolean(self.SINGLE, 'Force output as singlepart', True))
        self.addParameter(
            ParameterBoolean(
                self.KEEP,
                'Keep points and lines on borders of clip polygons (not used when clipping polygons)',
                True))
        self.addParameter(
            ParameterString(self.SCHEMA,
                            'Output schema',
                            'public',
                            optional=False))
        self.addParameter(
            ParameterString(self.TABLE,
                            'Output table name',
                            'clip',
                            optional=False))
        self.addParameter(
            ParameterString(self.OPTIONS,
                            'Additional creation options (see ogr2ogr manual)',
                            '',
                            optional=True))
        self.addOutput(OutputHTML(self.OUTPUT, 'Output log'))
Exemplo n.º 15
0
    def defineCharacteristics(self):
        self.name = 'Select by polygons (select by location)'
        self.group = 'Vector geoprocessing'

        self.addParameter(
            ParameterVector(self.INPUT_LAYER_A,
                            'Polygon layer used for the selection',
                            [ParameterVector.VECTOR_TYPE_POLYGON], False))
        self.addParameter(
            ParameterVector(self.INPUT_LAYER_B, 'Select features from',
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(
            ParameterString(
                self.FIELDS_B,
                'Attributes to keep (comma separated list). Aliasing permitted.',
                '',
                optional=False))
        self.addParameter(
            ParameterBoolean(self.SINGLE, 'Force output as singlepart', True))
        self.addParameter(
            ParameterBoolean(
                self.KEEPC,
                'Select only lines and polygons inside of selection layer (not used when selecting points)',
                False))
        self.addParameter(
            ParameterBoolean(
                self.KEEP,
                'Select also features just touching the selection layer',
                False))
        self.addParameter(
            ParameterString(self.SCHEMA,
                            'Output schema',
                            'public',
                            optional=False))
        self.addParameter(
            ParameterString(self.TABLE,
                            'Output table name',
                            'select',
                            optional=False))
        self.addParameter(
            ParameterString(self.OPTIONS,
                            'Additional creation options (see ogr2ogr manual)',
                            '',
                            optional=True))
        self.addOutput(OutputHTML(self.OUTPUT, 'Output log'))
Exemplo n.º 16
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm(
            'Basic statistics for numeric fields')
        self.group, self.i18n_group = self.trAlgorithm('Vector table tools')
        self.tags = self.tr('stats,statistics,number,table,layer')

        self.addParameter(
            ParameterTable(self.INPUT_LAYER, self.tr('Input vector layer')))
        self.addParameter(
            ParameterTableField(self.FIELD_NAME,
                                self.tr('Field to calculate statistics on'),
                                self.INPUT_LAYER,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Statistics')))

        self.addOutput(
            OutputNumber(self.CV, self.tr('Coefficient of Variation')))
        self.addOutput(OutputNumber(self.MIN, self.tr('Minimum value')))
        self.addOutput(OutputNumber(self.MAX, self.tr('Maximum value')))
        self.addOutput(OutputNumber(self.SUM, self.tr('Sum')))
        self.addOutput(OutputNumber(self.MEAN, self.tr('Mean value')))
        self.addOutput(
            OutputNumber(self.STD_DEV, self.tr('Standard deviation')))
        self.addOutput(OutputNumber(self.COUNT, self.tr('Count')))
        self.addOutput(OutputNumber(self.RANGE, self.tr('Range')))
        self.addOutput(OutputNumber(self.MEDIAN, self.tr('Median')))
        self.addOutput(
            OutputNumber(self.UNIQUE, self.tr('Number of unique values')))
        self.addOutput(
            OutputNumber(self.MINORITY,
                         self.tr('Minority (rarest occurring value)')))
        self.addOutput(
            OutputNumber(
                self.MAJORITY,
                self.tr('Majority (most frequently occurring value)')))
        self.addOutput(
            OutputNumber(self.FIRSTQUARTILE, self.tr('First quartile')))
        self.addOutput(
            OutputNumber(self.THIRDQUARTILE, self.tr('Third quartile')))
        self.addOutput(
            OutputNumber(self.NULLVALUES, self.tr('NULL (missed) values')))
        self.addOutput(
            OutputNumber(self.IQR, self.tr('Interquartile Range (IQR)')))
Exemplo n.º 17
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Nearest neighbour analysis')
        self.group, self.i18n_group = self.trAlgorithm('Vector analysis tools')

        self.addParameter(ParameterVector(self.POINTS,
                                          self.tr('Points'), [ParameterVector.VECTOR_TYPE_POINT]))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Nearest neighbour')))

        self.addOutput(OutputNumber(self.OBSERVED_MD,
                                    self.tr('Observed mean distance')))
        self.addOutput(OutputNumber(self.EXPECTED_MD,
                                    self.tr('Expected mean distance')))
        self.addOutput(OutputNumber(self.NN_INDEX,
                                    self.tr('Nearest neighbour index')))
        self.addOutput(OutputNumber(self.POINT_COUNT,
                                    self.tr('Number of points')))
        self.addOutput(OutputNumber(self.Z_SCORE, self.tr('Z-Score')))
    def defineCharacteristics(self):
        self.name = 'Sample polygons using points'
        self.group = 'Vector geoprocessing'

        self.addParameter(
            ParameterVector(self.INPUT_LAYER_A,
                            'Point layer used for the sampling',
                            [ParameterVector.VECTOR_TYPE_POINT], False))
        self.addParameter(
            ParameterString(
                self.FIELDS_A,
                'Attributes to keep (comma separated list). Aliasing permitted.',
                '',
                optional=False))
        self.addParameter(
            ParameterString(self.FIELD_A,
                            'Attribute name for sampled values.',
                            'sampled_field',
                            optional=False))
        self.addParameter(
            ParameterVector(self.INPUT_LAYER_B, 'Select values from',
                            [ParameterVector.VECTOR_TYPE_POLYGON], False))
        self.addParameter(
            ParameterTableField(self.FIELD_B,
                                self.tr('Attribute to be sampled.'),
                                self.INPUT_LAYER_B))
        self.addParameter(
            ParameterBoolean(self.SINGLE, 'Force output as singlepart', True))
        self.addParameter(
            ParameterString(self.SCHEMA,
                            'Output schema',
                            'public',
                            optional=False))
        self.addParameter(
            ParameterString(self.TABLE,
                            'Output table name',
                            'sampled',
                            optional=False))
        self.addParameter(
            ParameterString(self.OPTIONS,
                            'Additional creation options (see ogr2ogr manual)',
                            '',
                            optional=True))
        self.addOutput(OutputHTML(self.OUTPUT, 'Output log'))
Exemplo n.º 19
0
    def defineCharacteristics(self):
        self.addParameter(ParameterTable(self.INPUT_LAYER,
                                         self.tr('Input vector layer')))
        self.addParameter(ParameterTableField(self.FIELD_NAME,
                                              self.tr('Field to calculate statistics on'),
                                              self.INPUT_LAYER, ParameterTableField.DATA_TYPE_STRING))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Statistics for text')))

        self.addOutput(OutputNumber(self.MIN_LEN, self.tr('Minimum length')))
        self.addOutput(OutputNumber(self.MAX_LEN, self.tr('Maximum length')))
        self.addOutput(OutputNumber(self.MEAN_LEN, self.tr('Mean length')))
        self.addOutput(OutputNumber(self.COUNT, self.tr('Count')))
        self.addOutput(OutputNumber(self.EMPTY, self.tr('Number of empty values')))
        self.addOutput(OutputNumber(self.FILLED, self.tr('Number of non-empty values')))
        self.addOutput(OutputNumber(self.UNIQUE, self.tr('Number of unique values')))
        self.addOutput(OutputNumber(self.MIN_VALUE, self.tr('Minimum string value')))
        self.addOutput(OutputNumber(self.MAX_VALUE, self.tr('Maximum string value')))
Exemplo n.º 20
0
    def processParameterLine(self, line):
        param = 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 = self.i18n_group = tokens[0]
            return
        if tokens[1].lower().strip() == 'name':
            self.name = self.i18n_name = tokens[0]
            return

        out = getOutputFromString(line)
        if out is None:
            param = getParameterFromString(line)

        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: {0}.\n'
                    'Problem with line "{1}"',
                    'ScriptAlgorithm').format(self.descriptionFile or '',
                                              line))

            raise WrongScriptException(
                self.tr('Could not load R script: {0}.\n Problem with line {1}'
                        ).format(self.descriptionFile, line))
Exemplo n.º 21
0
    def defineCharacteristics(self):
        self.addParameter(ParameterTable(self.INPUT, self.tr('Input table')))
        self.addParameter(ParameterTableField(self.NAME_FIELD,
                                              self.tr('Category name field'),
                                              self.INPUT,
                                              ParameterTableField.DATA_TYPE_ANY))
        self.addParameter(ParameterTableField(self.VALUE_FIELD,
                                              self.tr('Value field'),
                                              self.INPUT,
                                              ParameterTableField.DATA_TYPE_NUMBER))
        msd = [self.tr('Show Mean'),
               self.tr('Show Standard Deviation'),
               self.tr('Don\'t show Mean and Standard Deviation')
               ]
        self.addParameter(ParameterSelection(
            self.MSD,
            self.tr('Additional Statistic Lines'),
            msd, default=0))

        self.addOutput(OutputHTML(self.OUTPUT, self.tr('Box plot')))
Exemplo n.º 22
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Basic statistics for text fields')
        self.group, self.i18n_group = self.trAlgorithm('Vector table tools')

        self.addParameter(ParameterVector(self.INPUT_LAYER,
                                          self.tr('Input vector layer')))
        self.addParameter(ParameterTableField(self.FIELD_NAME,
                                              self.tr('Field to calculate statistics on'),
                                              self.INPUT_LAYER, ParameterTableField.DATA_TYPE_STRING))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Statistics for text')))

        self.addOutput(OutputNumber(self.MIN_LEN, self.tr('Minimum length')))
        self.addOutput(OutputNumber(self.MAX_LEN, self.tr('Maximum length')))
        self.addOutput(OutputNumber(self.MEAN_LEN, self.tr('Mean length')))
        self.addOutput(OutputNumber(self.COUNT, self.tr('Count')))
        self.addOutput(OutputNumber(self.EMPTY, self.tr('Number of empty values')))
        self.addOutput(OutputNumber(self.FILLED, self.tr('Number of non-empty values')))
        self.addOutput(OutputNumber(self.UNIQUE, self.tr('Number of unique values')))
Exemplo n.º 23
0
    def __init__(self):
        super().__init__()
        self.addParameter(
            ParameterTable(self.INPUT_LAYER, self.tr('Input vector layer')))
        self.addParameter(
            ParameterTableField(self.FIELD_NAME,
                                self.tr('Field to calculate statistics on'),
                                self.INPUT_LAYER,
                                ParameterTableField.DATA_TYPE_NUMBER))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                                  self.tr('Statistics')))

        self.addOutput(
            OutputNumber(self.CV, self.tr('Coefficient of Variation')))
        self.addOutput(OutputNumber(self.MIN, self.tr('Minimum value')))
        self.addOutput(OutputNumber(self.MAX, self.tr('Maximum value')))
        self.addOutput(OutputNumber(self.SUM, self.tr('Sum')))
        self.addOutput(OutputNumber(self.MEAN, self.tr('Mean value')))
        self.addOutput(
            OutputNumber(self.STD_DEV, self.tr('Standard deviation')))
        self.addOutput(OutputNumber(self.COUNT, self.tr('Count')))
        self.addOutput(OutputNumber(self.RANGE, self.tr('Range')))
        self.addOutput(OutputNumber(self.MEDIAN, self.tr('Median')))
        self.addOutput(
            OutputNumber(self.UNIQUE, self.tr('Number of unique values')))
        self.addOutput(
            OutputNumber(self.MINORITY,
                         self.tr('Minority (rarest occurring value)')))
        self.addOutput(
            OutputNumber(
                self.MAJORITY,
                self.tr('Majority (most frequently occurring value)')))
        self.addOutput(
            OutputNumber(self.FIRSTQUARTILE, self.tr('First quartile')))
        self.addOutput(
            OutputNumber(self.THIRDQUARTILE, self.tr('Third quartile')))
        self.addOutput(
            OutputNumber(self.NULLVALUES, self.tr('NULL (missed) values')))
        self.addOutput(
            OutputNumber(self.IQR, self.tr('Interquartile Range (IQR)')))
Exemplo n.º 24
0
    def defineCharacteristics(self):
        self.name = 'Minimum distance'
        self.group = 'Vector geoprocessing'

        self.addParameter(
            ParameterVector(self.INPUT_LAYER_A, '"FROM" layer',
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(
            ParameterTableField(self.FIELD_A,
                                '"FROM" layer ID',
                                self.INPUT_LAYER_A,
                                optional=False))
        self.addParameter(
            ParameterVector(self.INPUT_LAYER_B, '"TO" layer',
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(
            ParameterTableField(self.FIELD_B,
                                '"TO" layer layer ID',
                                self.INPUT_LAYER_B,
                                optional=False))
        self.addParameter(
            ParameterBoolean(self.MULTI,
                             'Consider "TO" layer as one unique feature',
                             True))
        self.addParameter(
            ParameterString(self.SCHEMA,
                            'Output schema',
                            'public',
                            optional=False))
        self.addParameter(
            ParameterString(self.TABLE,
                            'Output table name',
                            'distance_analysis',
                            optional=False))
        self.addParameter(
            ParameterString(self.OPTIONS,
                            'Additional creation options (see ogr2ogr manual)',
                            '',
                            optional=True))
        self.addOutput(OutputHTML(self.OUTPUT, 'Output log'))
Exemplo n.º 25
0
 def parseDescription(self, lines):
     self.script = ''
     self.commands = []
     self.showPlots = False
     self.showConsoleOutput = False
     self.saveOutputValues = False
     self.useRasterPackage = True
     self.passFileNames = False
     self.verboseCommands = []
     ender = 0
     line = lines.next().strip('\n').strip('\r')
     while ender < 10:
         if line.startswith('##'):
             try:
                 self.processParameterLine(line)
             except Exception as e:
                 raise WrongScriptException(
                     self.
                     tr('Could not load R script: %s.\n Problem with line %s'
                        % (self.descriptionFile, line)))
         elif line.startswith('>'):
             self.commands.append(line[1:])
             self.verboseCommands.append(line[1:])
             if not self.showConsoleOutput:
                 self.addOutput(
                     OutputHTML(RAlgorithm.R_CONSOLE_OUTPUT,
                                self.tr('R Console Output')))
             self.showConsoleOutput = True
         else:
             if line == '':
                 ender += 1
             else:
                 ender = 0
             self.commands.append(line)
         self.script += line + '\n'
         try:
             line = lines.next().strip('\n').strip('\r')
         except:
             break
Exemplo n.º 26
0
    def defineCharacteristics(self):
        self.name = 'Basic statistics for text fields'
        self.group = 'Vector table tools'

        self.addParameter(ParameterVector(self.INPUT_LAYER,
                          'Input vector layer',
                          ParameterVector.VECTOR_TYPE_ANY, False))
        self.addParameter(ParameterTableField(self.FIELD_NAME,
                          'Field to calculate statistics on',
                          self.INPUT_LAYER,
                          ParameterTableField.DATA_TYPE_STRING))

        self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE,
                       'Statistics for text field'))

        self.addOutput(OutputNumber(self.MIN_LEN, 'Minimum length'))
        self.addOutput(OutputNumber(self.MAX_LEN, 'Maximum length'))
        self.addOutput(OutputNumber(self.MEAN_LEN, 'Mean length'))
        self.addOutput(OutputNumber(self.COUNT, 'Count'))
        self.addOutput(OutputNumber(self.EMPTY, 'Number of empty values'))
        self.addOutput(OutputNumber(self.FILLED, 'Number of non-empty values'))
        self.addOutput(OutputNumber(self.UNIQUE, 'Number of unique values'))
Exemplo n.º 27
0
    def processOutputParameterToken(self, token):
        out = None

        if token.lower().strip().startswith('raster'):
            out = OutputRaster()
        elif token.lower().strip().startswith('vector'):
            out = OutputVector()
        elif token.lower().strip().startswith('table'):
            out = OutputTable()
        elif token.lower().strip().startswith('html'):
            out = OutputHTML()
        elif token.lower().strip().startswith('file'):
            out = OutputFile()
            subtokens = token.split(' ')
            if len(subtokens) > 2:
                out.ext = subtokens[2]
        elif token.lower().strip().startswith('directory'):
            out = OutputDirectory()
        elif token.lower().strip().startswith('number'):
            out = OutputNumber()
        elif token.lower().strip().startswith('string'):
            out = OutputString()

        return out
Exemplo n.º 28
0
    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() == 'point':
            param = ParameterPoint(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)))
Exemplo n.º 29
0
    def initAlgorithm(self, config=None):
        self.addParameter(ParameterRaster(self.INPUT, self.tr('Input layer')))
        self.addParameter(
            ParameterNumber(self.BINS, self.tr('Number of bins'), 2, None, 10))

        self.addOutput(OutputHTML(self.PLOT, self.tr('Histogram')))
Exemplo n.º 30
0
    def defineCharacteristics(self):
        self.addParameter(ParameterRaster(self.INPUT, self.tr('Input layer')))
        self.addParameter(
            ParameterNumber(self.BINS, self.tr('Number of bins'), 2, None, 10))

        self.addOutput(OutputHTML(self.PLOT, self.tr('Histogram')))