Beispiel #1
0
def getSupportedOutputRasterLayerExtensions():
    allexts = ['tif']
    for exts in GdalUtils.getSupportedRasters().values():
        for ext in exts:
            if ext not in allexts:
                allexts.append(ext)
    return allexts
Beispiel #2
0
 def getFormatShortNameFromFilename(self, filename):
     ext = filename[filename.rfind('.') + 1:]
     supported = GdalUtils.getSupportedRasters()
     for name in list(supported.keys()):
         exts = supported[name]
         if ext in exts:
             return name
     return 'GTiff'
Beispiel #3
0
def getSupportedOutputRasterLayerExtensions():
    allexts = []
    for exts in list(GdalUtils.getSupportedRasters().values()):
        for ext in exts:
            if ext != 'tif' and ext not in allexts:
                allexts.append(ext)
    allexts.sort()
    allexts.insert(0, 'tif') # tif is the default, should be the first
    return allexts
Beispiel #4
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Retile')
        self.group, self.i18n_group = self.trAlgorithm('[GDAL] Miscellaneous')

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

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

        self.addOutput(OutputDirectory(self.TARGETDIR,
                                       self.tr('The directory where the tile result is created')))
Beispiel #5
0
 def getRasterFormatFromFilename(filename):
     """
     Returns Raster format name from a raster filename.
     :param filename: The name with extension of the raster.
     :return: The Gdal short format name for extension.
     """
     ext = os.path.splitext(filename)[1].lower()
     ext = ext.lstrip('.')
     supported = GdalUtils.getSupportedRasters()
     for name in list(supported.keys()):
         exts = supported[name]
         if ext in exts:
             return name
     return 'GTiff'
Beispiel #6
0
 def getRasterFormatFromFilename(filename):
     """
     Returns Raster format name from a raster filename.
     :param filename: The name with extension of the raster.
     :return: The Gdal short format name for extension.
     """
     ext = os.path.splitext(filename)[1].lower()
     ext = ext.lstrip('.')
     supported = GdalUtils.getSupportedRasters()
     for name in list(supported.keys()):
         exts = supported[name]
         if ext in exts:
             return name
     return 'GTiff'
Beispiel #7
0
    def __init__(self):
        super().__init__()
        # Required parameters
        self.addParameter(ParameterMultipleInput(self.INPUT,
                                                 self.tr('Input layers'),
                                                 dataobjects.TYPE_RASTER))
        # Advanced parameters
        params = []
        params.append(ParameterString(self.PIXELSIZE,
                                      self.tr('Pixel size to be used for the output file (XSIZE YSIZE like 512 512)'),
                                      None, False, True))
        params.append(ParameterSelection(self.ALGORITHM,
                                         self.tr('Resampling algorithm'), self.ALGO, 0, False, optional=True))
        params.append(ParameterCrs(self.S_SRS,
                                   self.tr('Override source CRS'), None, True))
        params.append(ParameterNumber(self.PYRAMIDLEVELS,
                                      self.tr('Number of pyramids levels to build'),
                                      None, None, None, True))
        params.append(ParameterBoolean(self.ONLYPYRAMIDS,
                                       self.tr('Build only the pyramids'),
                                       False, True))
        params.append(ParameterSelection(self.RTYPE,
                                         self.tr('Output raster type'),
                                         self.TYPE, 5, False, optional=True))
        params.append(ParameterSelection(self.FORMAT,
                                         self.tr('Output raster format'),
                                         list(GdalUtils.getSupportedRasters().keys()), 0, False, optional=True))
        params.append(ParameterBoolean(self.USEDIRFOREACHROW,
                                       self.tr('Use a directory for each row'),
                                       False, True))
        params.append(ParameterString(self.CSVFILE,
                                      self.tr('Name of the csv file containing the tile(s) georeferencing information'),
                                      None, False, True))
        params.append(ParameterString(self.CSVDELIM,
                                      self.tr('Column delimiter used in the CSV file'),
                                      None, False, True))
        params.append(ParameterString(self.TILEINDEX,
                                      self.tr('name of shape file containing the result tile(s) index'),
                                      None, False, True))
        params.append(ParameterString(self.TILEINDEXFIELD,
                                      self.tr('name of the attribute containing the tile name in the result shape file'),
                                      None, False, True))

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

        self.addOutput(OutputDirectory(self.TARGETDIR,
                                       self.tr('The directory where the tile result is created')))
Beispiel #8
0
    def getConsoleCommands(self, parameters):

        arguments = []

        if self.getParameterValue(self.RTYPE):
            arguments.append('-ot')
            arguments.append(self.TYPE[self.getParameterValue(self.RTYPE)])

        arguments.append('-of')
        arguments.append(
            list(
                GdalUtils.getSupportedRasters().keys())[self.getParameterValue(
                    self.FORMAT)])

        if self.getParameterValue(self.PIXELSIZE):
            pixelSize = self.getParameterValue(self.PIXELSIZE)
            if re.match(r'\d+ \d+', pixelSize):
                xsize, ysize = pixelSize.split(' ')
                arguments.append('-ps')
                arguments.append(xsize)
                arguments.append(ysize)

        if self.getParameterValue(self.ONLYPYRAMIDS):
            arguments.append('-pyramidOnly')

        if self.getParameterValue(self.USEDIRFOREACHROW):
            arguments.append('-useDirForEachRow')

        ssrs = str(self.getParameterValue(self.S_SRS))
        if len(ssrs) > 0:
            arguments.append('-s_srs')
            arguments.append(ssrs)

        if self.getParameterValue(self.PYRAMIDLEVELS):
            arguments.append('-levels')
            arguments.append(str(self.getParameterValue(self.PYRAMIDLEVELS)))

        arguments.append('-r')
        arguments.append(self.ALGO[self.getParameterValue(self.ALGORITHM)])

        # Handle CSV
        if self.getParameterValue(self.CSVFILE):
            arguments.append('-csv')
            arguments.append(self.getParameterValue(self.CSVFILE))

        if self.getParameterValue(self.CSVFILE) and self.getParameterValue(
                self.CSVDELIM):
            arguments.append('-csvDelim')
            arguments.append(self.getParameterValue(self.CSVDELIM))

        # Handle Shp
        if self.getParameterValue(self.TILEINDEX):
            arguments.append('-tileIndex')
            arguments.append(self.getParameterValue(self.TILEINDEX))

        if self.getParameterValue(self.TILEINDEX) and self.getParameterValue(
                self.TILEINDEXFIELD):
            arguments.append('-tileIndexField')
            arguments.append(self.getParameterValue(self.TILEINDEXFIELD))

        arguments.append('-targetDir')
        arguments.append(self.getOutputValue(self.TARGETDIR))

        arguments.extend(self.getParameterValue(self.INPUT).split(';'))

        commands = []
        if isWindows():
            commands = [
                'cmd.exe', '/C ', 'gdal_retile.bat',
                GdalUtils.escapeAndJoin(arguments)
            ]
        else:
            commands = ['gdal_retile.py', GdalUtils.escapeAndJoin(arguments)]

        return commands
Beispiel #9
0
    def getConsoleCommands(self):

        arguments = []

        if self.getParameterValue(self.RTYPE):
            arguments.append('-ot')
            arguments.append(self.TYPE[self.getParameterValue(self.RTYPE)])

        arguments.append('-of')
        arguments.append(list(GdalUtils.getSupportedRasters().keys())[self.getParameterValue(self.FORMAT)])

        if self.getParameterValue(self.PIXELSIZE):
            pixelSize = self.getParameterValue(self.PIXELSIZE)
            if re.match(r'\d+ \d+', pixelSize):
                xsize, ysize = pixelSize.split(' ')
                arguments.append('-ps')
                arguments.append(xsize)
                arguments.append(ysize)

        if self.getParameterValue(self.ONLYPYRAMIDS):
            arguments.append('-pyramidOnly')

        if self.getParameterValue(self.USEDIRFOREACHROW):
            arguments.append('-useDirForEachRow')

        ssrs = str(self.getParameterValue(self.S_SRS))
        if len(ssrs) > 0:
            arguments.append('-s_srs')
            arguments.append(ssrs)

        if self.getParameterValue(self.PYRAMIDLEVELS):
            arguments.append('-levels')
            arguments.append(str(self.getParameterValue(self.PYRAMIDLEVELS)))

        arguments.append('-r')
        arguments.append(self.ALGO[self.getParameterValue(self.ALGORITHM)])

        # Handle CSV
        if self.getParameterValue(self.CSVFILE):
            arguments.append('-csv')
            arguments.append(self.getParameterValue(self.CSVFILE))

        if self.getParameterValue(self.CSVFILE) and self.getParameterValue(self.CSVDELIM):
            arguments.append('-csvDelim')
            arguments.append(self.getParameterValue(self.CSVDELIM))

        # Handle Shp
        if self.getParameterValue(self.TILEINDEX):
            arguments.append('-tileIndex')
            arguments.append(self.getParameterValue(self.TILEINDEX))

        if self.getParameterValue(self.TILEINDEX) and self.getParameterValue(self.TILEINDEXFIELD):
            arguments.append('-tileIndexField')
            arguments.append(self.getParameterValue(self.TILEINDEXFIELD))

        arguments.append('-targetDir')
        arguments.append(self.getOutputValue(self.TARGETDIR))

        arguments.extend(self.getParameterValue(self.INPUT).split(';'))

        commands = []
        if isWindows():
            commands = ['cmd.exe', '/C ', 'gdal_retile.bat',
                        GdalUtils.escapeAndJoin(arguments)]
        else:
            commands = ['gdal_retile.py',
                        GdalUtils.escapeAndJoin(arguments)]

        return commands
Beispiel #10
0
    def getConsoleCommands(self):

        arguments = []

        if self.getParameterValue(self.RTYPE):
            arguments.append("-ot")
            arguments.append(self.TYPE[self.getParameterValue(self.RTYPE)])

        arguments.append("-of")
        arguments.append(list(GdalUtils.getSupportedRasters().keys())[self.getParameterValue(self.FORMAT)])

        if self.getParameterValue(self.PIXELSIZE):
            pixelSize = self.getParameterValue(self.PIXELSIZE)
            if re.match(r"\d+ \d+", pixelSize):
                xsize, ysize = pixelSize.split(" ")
                arguments.append("-ps")
                arguments.append(xsize)
                arguments.append(ysize)

        if self.getParameterValue(self.ONLYPYRAMIDS):
            arguments.append("-pyramidOnly")

        if self.getParameterValue(self.USEDIRFOREACHROW):
            arguments.append("-useDirForEachRow")

        ssrs = str(self.getParameterValue(self.S_SRS))
        if len(ssrs) > 0:
            arguments.append("-s_srs")
            arguments.append(ssrs)

        if self.getParameterValue(self.PYRAMIDLEVELS):
            arguments.append("-levels")
            arguments.append(str(self.getParameterValue(self.PYRAMIDLEVELS)))

        arguments.append("-r")
        arguments.append(self.ALGO[self.getParameterValue(self.ALGORITHM)])

        # Handle CSV
        if self.getParameterValue(self.CSVFILE):
            arguments.append("-csv")
            arguments.append(self.getParameterValue(self.CSVFILE))

        if self.getParameterValue(self.CSVFILE) and self.getParameterValue(self.CSVDELIM):
            arguments.append("-csvDelim")
            arguments.append(self.getParameterValue(self.CSVDELIM))

        # Handle Shp
        if self.getParameterValue(self.TILEINDEX):
            arguments.append("-tileIndex")
            arguments.append(self.getParameterValue(self.TILEINDEX))

        if self.getParameterValue(self.TILEINDEX) and self.getParameterValue(self.TILEINDEXFIELD):
            arguments.append("-tileIndexField")
            arguments.append(self.getParameterValue(self.TILEINDEXFIELD))

        arguments.append("-targetDir")
        arguments.append(self.getOutputValue(self.TARGETDIR))

        arguments.extend(self.getParameterValue(self.INPUT).split(";"))

        commands = []
        if isWindows():
            commands = ["cmd.exe", "/C ", "gdal_retile.bat", GdalUtils.escapeAndJoin(arguments)]
        else:
            commands = ["gdal_retile.py", GdalUtils.escapeAndJoin(arguments)]

        return commands
Beispiel #11
0
    def defineCharacteristics(self):
        self.name, self.i18n_name = self.trAlgorithm('Retile')
        self.group, self.i18n_group = self.trAlgorithm('[GDAL] Miscellaneous')

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

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

        self.addOutput(
            OutputDirectory(
                self.TARGETDIR,
                self.tr('The directory where the tile result is created')))