Navigation Menu

Skip to content

Commit

Permalink
[processing] restore pct2rgb algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
alexbruy committed Oct 11, 2017
1 parent 6c1d570 commit ff5a42a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 32 deletions.
17 changes: 5 additions & 12 deletions python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py
Expand Up @@ -37,14 +37,15 @@
from .aspect import aspect
from .buildvrt import buildvrt
from .ColorRelief import ColorRelief
from .hillshade import hillshade
from .information import information
from .nearblack import nearblack
from .pct2rgb import pct2rgb
from .rgb2pct import rgb2pct
from .translate import translate
from .tri import tri
from .warp import warp
from .nearblack import nearblack

# from .pct2rgb import pct2rgb
# from .merge import merge
# from .polygonize import polygonize
# from .gdaladdo import gdaladdo
Expand All @@ -57,7 +58,6 @@
# from .fillnodata import fillnodata
# from .extractprojection import ExtractProjection
# from .gdal2xyz import gdal2xyz
from .hillshade import hillshade
# from .slope import slope
# from .tpi import tpi
# from .roughness import roughness
Expand Down Expand Up @@ -92,13 +92,6 @@

class GdalAlgorithmProvider(QgsProcessingProvider):

"""This provider incorporates GDAL-based algorithms into the
Processing framework.
Algorithms are called directly using the command line interface.
They implemented individually extending GeoAlgorithm class.
"""

def __init__(self):
super().__init__()
self.algs = []
Expand Down Expand Up @@ -145,13 +138,14 @@ def loadAlgorithms(self):
aspect(),
buildvrt(),
ColorRelief(),
hillshade(),
information(),
nearblack(),
pct2rgb(),
rgb2pct(),
translate(),
tri(),
warp(),
# pct2rgb(),
# merge(),
# polygonize(),
# gdaladdo(),
Expand All @@ -164,7 +158,6 @@ def loadAlgorithms(self):
# fillnodata(),
# ExtractProjection(),
# gdal2xyz(),
hillshade(),
# slope(),
# tpi(),
# roughness(),
Expand Down
47 changes: 27 additions & 20 deletions python/plugins/processing/algs/gdal/pct2rgb.py
Expand Up @@ -31,37 +31,34 @@

from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
QgsProcessingParameterBoolean,
QgsProcessingParameterRasterDestination)
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
from processing.tools.system import isWindows
from processing.core.parameters import ParameterRaster
from processing.core.parameters import ParameterSelection
from processing.core.outputs import OutputRaster
from processing.algs.gdal.GdalUtils import GdalUtils


pluginPath = os.path.split(os.path.split(os.path.dirname(__file__))[0])[0]


class pct2rgb(GdalAlgorithm):

INPUT = 'INPUT'
BAND = 'BAND'
RGBA = 'RGBA'
OUTPUT = 'OUTPUT'
NBAND = 'NBAND'

def icon(self):
return QIcon(os.path.join(pluginPath, 'images', 'gdaltools', '8-to-24-bits.png'))

def __init__(self):
super().__init__()

def initAlgorithm(self, config=None):
self.addParameter(ParameterRaster(pct2rgb.INPUT,
self.tr('Input layer'), False))
options = []
for i in range(25):
options.append(str(i + 1))
self.addParameter(ParameterSelection(pct2rgb.NBAND,
self.tr('Band to convert'), options))
self.addOutput(OutputRaster(pct2rgb.OUTPUT, self.tr('PCT to RGB')))
self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer')))
self.addParameter(QgsProcessingParameterBand(
self.BAND, self.tr('Band number'), parentLayerParameterName=self.INPUT))
self.addParameter(QgsProcessingParameterBoolean(self.RGBA, self.tr('Generate a RGBA file'), defaultValue=False))
self.addParameter(QgsProcessingParameterRasterDestination(self.OUTPUT, self.tr('PCT to RGB')))

def name(self):
return 'pcttorgb'
Expand All @@ -72,15 +69,25 @@ def displayName(self):
def group(self):
return self.tr('Raster conversion')

def icon(self):
return QIcon(os.path.join(pluginPath, 'images', 'gdaltools', '8-to-24-bits.png'))

def getConsoleCommands(self, parameters, context, feedback):
arguments = []
arguments.append('-b')
arguments.append(str(self.getParameterValue(pct2rgb.NBAND) + 1))
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
arguments.append(inLayer.source())

out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
arguments.append(out)

arguments.append('-of')
out = self.getOutputValue(pct2rgb.OUTPUT)
arguments.append(GdalUtils.getFormatShortNameFromFilename(out))
arguments.append(self.getParameterValue(pct2rgb.INPUT))
arguments.append(out)

arguments.append('-b')
arguments.append(str(self.parameterAsInt(parameters, self.BAND, context)))

if self.parameterAsBool(parameters, self.RGBA, context):
arguments.append('-rgba')

commands = []
if isWindows():
Expand Down

0 comments on commit ff5a42a

Please sign in to comment.