コード例 #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')))
コード例 #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')))
コード例 #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')))
コード例 #4
0
ファイル: FindProjection.py プロジェクト: stephenson1811/QGIS
    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')))
コード例 #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')))
コード例 #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)')))
コード例 #7
0
ファイル: RAlgorithm.py プロジェクト: RibomBalt/QGIS
    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))
コード例 #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'))
コード例 #9
0
ファイル: RasterLayerStatistics.py プロジェクト: zaneven/QGIS
    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')))
コード例 #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')))
コード例 #11
0
ファイル: RAlgorithm.py プロジェクト: ThomasG77/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 = 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)))
コード例 #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')))
コード例 #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')))
コード例 #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'))
コード例 #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'))
コード例 #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)')))
コード例 #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')))
コード例 #18
0
    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'))
コード例 #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')))
コード例 #20
0
ファイル: RAlgorithm.py プロジェクト: leeathefei/QGIS
    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))
コード例 #21
0
ファイル: BoxPlot.py プロジェクト: hyperLx/QGIS
    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')))
コード例 #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')))
コード例 #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)')))
コード例 #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'))
コード例 #25
0
ファイル: RAlgorithm.py プロジェクト: KittelC/WOIS_processing
 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
コード例 #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'))
コード例 #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
コード例 #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)))
コード例 #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')))
コード例 #30
0
ファイル: RasterLayerHistogram.py プロジェクト: smagic20/QGIS
    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')))