Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[processing] add option to keep resolution when clipping raster
  • Loading branch information
alexbruy committed Sep 26, 2013
1 parent c9de713 commit 7628c8f
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions python/plugins/processing/gdal/ClipByMask.py
Expand Up @@ -25,6 +25,7 @@

import os
from PyQt4 import QtGui
from osgeo import gdal
from qgis.core import *

from processing.core.GeoAlgorithm import GeoAlgorithm
Expand All @@ -45,6 +46,7 @@ class ClipByMask(GeoAlgorithm):
NO_DATA = "NO_DATA"
MASK = "MASK"
ALPHA_BAND = "ALPHA_BAND"
KEEP_RESOLUTION = "KEEP_RESOLUTION"
EXTRA = "EXTRA"

def getIcon(self):
Expand All @@ -58,6 +60,7 @@ def defineCharacteristics(self):
self.addParameter(ParameterVector(self.MASK, "Mask layer", [ParameterVector.VECTOR_TYPE_POLYGON]))
self.addParameter(ParameterString(self.NO_DATA, "Nodata value, leave as none to take the nodata value from input", "none"))
self.addParameter(ParameterBoolean(self.ALPHA_BAND, "Create and output alpha band", False))
self.addParameter(ParameterBoolean(self.KEEP_RESOLUTION, "Keep resolution of output raster", False))
self.addParameter(ParameterString(self.EXTRA, "Additional creation parameters", ""))
self.addOutput(OutputRaster(self.OUTPUT, "Output layer"))

Expand All @@ -66,6 +69,7 @@ def processAlgorithm(self, progress):
mask = self.getParameterValue(self.MASK)
noData = str(self.getParameterValue(self.NO_DATA))
addAlphaBand = self.getParameterValue(self.ALPHA_BAND)
keepResolution = self.getParameterValue(self.KEEP_RESOLUTION)
extra = str(self.getParameterValue(self.EXTRA))

arguments = []
Expand All @@ -75,6 +79,15 @@ def processAlgorithm(self, progress):
arguments.append("-dstnodata")
arguments.append(noData)

if keepResolution:
r = gdal.Open(self.getParameterValue(self.INPUT))
geoTransform = r.GetGeoTransform()
r = None
arguments.append("-tr")
arguments.append(str(geoTransform[1]))
arguments.append(str(geoTransform[5]))
arguments.append("-tap")

arguments.append("-cutline")
arguments.append(mask)
arguments.append("-crop_to_cutline")
Expand Down

0 comments on commit 7628c8f

Please sign in to comment.