def getSupportedOutputRasterLayerExtensions(): allexts = ['tif'] for exts in GdalUtils.getSupportedRasters().values(): for ext in exts: if ext not in allexts: allexts.append(ext) return allexts
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'
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
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')))
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'
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')))
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
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
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
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')))