Ejemplo n.º 1
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()
            ext = token.strip()[len('file') + 1:]
            if ext:
                out.ext = ext
        elif token.lower().strip().startswith('directory'):
            out = OutputDirectory()
        elif token.lower().strip().startswith('number'):
            out = OutputNumber()
        elif token.lower().strip().startswith('string'):
            out = OutputString()
        elif token.lower().strip().startswith('extent'):
            out = OutputExtent()

        return out
Ejemplo n.º 2
0
    def defineCharacteristics(self):
        """Here we define the inputs and output of the algorithm, along
        with some other properties.
        """

        # The name that the user will see in the toolbox
        self.name = 'Build virtual vector'

        # The branch of the toolbox under which the algorithm will appear
        self.group = 'Vector general tools'

        # We add the inputs
        self.addParameter(
            ParameterMultipleInput(
                name=self.INPUT_DATASOURCES,
                description=self.tr('Input datasources'),
                datatype=ParameterMultipleInput.TYPE_VECTOR_ANY,
                optional=False))

        self.addParameter(
            ParameterBoolean(name=self.INPUT_OVERWRITE_FLAG,
                             description=self.tr('Overwrite output vrt'),
                             default=False))

        # We add outputs
        self.addOutput(
            OutputFile(self.OUTPUT_VRT_FILE, self.tr('Virtual vector')))
        self.addOutput(
            OutputString(self.OUTPUT_VRT_STRING, self.tr('Virtual string')))
Ejemplo n.º 3
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()
        else:
            if token.lower().strip().startswith('file'):
                out = OutputFile()
                ext = token.strip()[len('file') + 1:]
                if ext:
                    out.ext = ext
            elif token.lower().strip().startswith('directory'):
                out = OutputDirectory()
            elif token.lower().strip().startswith('number'):
                out = OutputNumber()
            elif token.lower().strip().startswith('string'):
                out = OutputString()

            if not self.saveOutputValues and out:
                outVal = OutputFile(RAlgorithm.R_OUTPUT_VALUES, self.tr('R Output values'), ext='txt')
                outVal.hidden = True
                self.addOutput(outVal)
                self.saveOutputValues = True

        return out
Ejemplo n.º 4
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()
        elif token.lower().strip().startswith('extent'):
            out = OutputExtent()

        return out
Ejemplo n.º 5
0
    def processOutputParameterToken(self, token):
        out = None

        if token.lower().strip().startswith('raster'):
            out = OutputRaster()
        elif token.lower().strip() == 'vector':
            out = OutputVector()
        elif token.lower().strip() == 'vector point':
            out = OutputVector(datatype=[dataobjects.TYPE_VECTOR_POINT])
        elif token.lower().strip() == 'vector line':
            out = OutputVector(datatype=[OutputVector.TYPE_VECTOR_LINE])
        elif token.lower().strip() == 'vector polygon':
            out = OutputVector(datatype=[OutputVector.TYPE_VECTOR_POLYGON])
        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()
        elif token.lower().strip().startswith('extent'):
            out = OutputExtent()

        return out
Ejemplo n.º 6
0
 def defineCharacteristics(self):
     self.addParameter(ParameterVector(self.INPUT_LAYER,
                                       self.tr('Input layer')))
     self.addParameter(ParameterTableField(self.FIELD_NAME,
                                           self.tr('Target field'),
                                           self.INPUT_LAYER, ParameterTableField.DATA_TYPE_ANY))
     self.addOutput(OutputHTML(self.OUTPUT, self.tr('Unique values')))
     self.addOutput(OutputNumber(self.TOTAL_VALUES, self.tr('Total unique values')))
     self.addOutput(OutputString(self.UNIQUE_VALUES, self.tr('Unique values')))
Ejemplo n.º 7
0
 def defineCharacteristics(self):
     self.name, self.i18n_name = self.trAlgorithm('List unique values')
     self.group, self.i18n_group = self.trAlgorithm('Vector table tools')
     self.addParameter(ParameterVector(self.INPUT_LAYER,
                                       self.tr('Input layer'), [ParameterVector.VECTOR_TYPE_ANY]))
     self.addParameter(ParameterTableField(self.FIELD_NAME,
                                           self.tr('Target field'),
                                           self.INPUT_LAYER, ParameterTableField.DATA_TYPE_ANY))
     self.addOutput(OutputHTML(self.OUTPUT, self.tr('Unique values')))
     self.addOutput(OutputNumber(self.TOTAL_VALUES, self.tr('Total unique values')))
     self.addOutput(OutputString(self.UNIQUE_VALUES, self.tr('Unique values')))
Ejemplo n.º 8
0
    def initAlgorithm(self, config=None):
        self.addParameter(ParameterMultipleInput(self.DATASOURCES,
                                                 self.tr('Input datasources'),
                                                 dataobjects.TYPE_TABLE))
        self.addParameter(ParameterBoolean(self.UNIONED,
                                           self.tr('Create "unioned" VRT'),
                                           default=False))

        self.addOutput(OutputFile(self.VRT_FILE,
                                  self.tr('Virtual vector'), ext='vrt'))
        self.addOutput(OutputString(self.VRT_STRING,
                                    self.tr('Virtual string')))
Ejemplo n.º 9
0
 def defineCharacteristics(self):
     self.name = 'List unique values'
     self.group = 'Vector table tools'
     self.addParameter(
         ParameterVector(self.INPUT_LAYER, 'Input layer',
                         [ParameterVector.VECTOR_TYPE_ANY]))
     self.addParameter(
         ParameterTableField(self.FIELD_NAME, 'Target field',
                             self.INPUT_LAYER,
                             ParameterTableField.DATA_TYPE_ANY))
     self.addOutput(OutputHTML(self.OUTPUT, 'Unique values'))
     self.addOutput(OutputNumber(self.TOTAL_VALUES, 'Total unique values'))
     self.addOutput(OutputString(self.UNIQUE_VALUES, 'Unique values'))
Ejemplo n.º 10
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Build virtual vector')
        self.group, self.i18n_group = self.trAlgorithm('Vector general tools')

        self.addParameter(ParameterMultipleInput(self.DATASOURCES,
                                                 self.tr('Input datasources')))
        self.addParameter(ParameterBoolean(self.UNIONED,
                                           self.tr('Create "unioned" VRT'),
                                           default=False))

        self.addOutput(OutputFile(self.VRT_FILE,
                                  self.tr('Virtual vector'), ext='vrt'))
        self.addOutput(OutputString(self.VRT_STRING,
                                    self.tr('Virtual string')))
Ejemplo n.º 11
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Build virtual vector')
        self.group, self.i18n_group = self.trAlgorithm('Vector general tools')

        self.addParameter(
            ParameterMultipleInput(
                name=self.INPUT_DATASOURCES,
                description=self.tr('Input datasources'),
                datatype=ParameterMultipleInput.TYPE_VECTOR_ANY,
                optional=False))
        self.addParameter(
            ParameterBoolean(name=self.INPUT_OVERWRITE_FLAG,
                             description=self.tr('Overwrite output vrt'),
                             default=False))

        self.addOutput(
            OutputFile(self.OUTPUT_VRT_FILE,
                       self.tr('Virtual vector'),
                       ext='vrt'))
        self.addOutput(
            OutputString(self.OUTPUT_VRT_STRING, self.tr('Virtual string')))
Ejemplo n.º 12
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))