Skip to content
Permalink
Browse files

[processing] attempt to fix proximity algorithm

  • Loading branch information
alexbruy committed Sep 15, 2013
1 parent 6910a2e commit 47e27d1e2ee66a256f0521774949edd14ad71cf2
@@ -47,6 +47,7 @@
from processing.gdal.ClipByMask import ClipByMask
from processing.gdal.contour import contour
from processing.gdal.rasterize import rasterize
from processing.gdal.proximity import proximity

from processing.gdal.ogr2ogr import Ogr2Ogr
from processing.gdal.ogrinfo import OgrInfo
@@ -96,7 +97,7 @@ def createAlgsList(self):
self.preloadedAlgs = [nearblack(), information(), warp(), translate(),
rgb2pct(), pct2rgb(), merge(), polygonize(),
gdaladdo(), ClipByExtent(), ClipByMask(),
contour(), rasterize(),
contour(), rasterize(), proximity(),
OgrInfo(), Ogr2Ogr(), OgrSql()]

#And then we add those that are created as python scripts
@@ -0,0 +1,108 @@
# -*- coding: utf-8 -*-

"""
***************************************************************************
proximity.py
---------------------
Date : August 2012
Copyright : (C) 2012 by Victor Olaya
Email : volayaf at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""

__author__ = 'Victor Olaya'
__date__ = 'August 2012'
__copyright__ = '(C) 2012, Victor Olaya'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'

import os
from PyQt4 import QtGui, QtCore

from processing.core.GeoAlgorithm import GeoAlgorithm

from processing.parameters.ParameterRaster import ParameterRaster
from processing.parameters.ParameterString import ParameterString
from processing.parameters.ParameterSelection import ParameterSelection
from processing.parameters.ParameterNumber import ParameterNumber
from processing.outputs.OutputRaster import OutputRaster

from processing.tools.system import *

from processing.gdal.GdalUtils import GdalUtils

class proximity(GeoAlgorithm):

INPUT = "INPUT"
VALUES = "VALUES"
UNITS = "UNITS"
MAX_DIST = "MAX_DIST"
NODATA = "NODATA"
BUF_VAL = "BUF_VAL"
OUTPUT = "OUTPUT"

DISTUNITS = ["GEO", "PIXEL"]

def getIcon(self):
filepath = os.path.dirname(__file__) + "/icons/proximity.png"
return QtGui.QIcon(filepath)

def defineCharacteristics(self):
self.name = "Proximity"
self.group = "[GDAL] Analysis"
self.addParameter(ParameterRaster(self.INPUT, "Input layer", False))
self.addParameter(ParameterString(self.VALUES, "Values", ""))
self.addParameter(ParameterSelection(self.UNITS, "Dist units", self.DISTUNITS, 0))
self.addParameter(ParameterNumber(self.MAX_DIST, "Max dist (negative value to ignore)", -1, 9999, -1))
self.addParameter(ParameterNumber(self.NODATA, "No data (negative value to ignore)", -1, 9999, -1))
self.addParameter(ParameterNumber(self.BUF_VAL, "Fixed buf val (negative value to ignore)", -1, 9999, -1))

self.addOutput(OutputRaster(self.OUTPUT, "Output layer"))

def processAlgorithm(self, progress):
output = self.getOutputValue(self.OUTPUT)

arguments = []
arguments.append(self.getParameterValue(self.INPUT))
arguments.append(output)

arguments.append("-of")
arguments.append(GdalUtils.getFormatShortNameFromFilename(output))

arguments.append("-distunits")
arguments.append(self.DISTUNITS[self.getParameterValue(self.UNITS)])

values = self.getParameterValue(self.VALUES)
if len(values) > 0:
arguments.append("-values")
arguments.append(values)

values = str(self.getParameterValue(self.MAX_DIST))
if values < 0:
arguments.append("-maxdist")
arguments.append(values)

values = str(self.getParameterValue(self.NODATA))
if values < 0:
arguments.append("-nodata")
arguments.append(values)

values = str(self.getParameterValue(self.BUF_VAL))
if values < 0:
arguments.append("-fixed-buf-val")
arguments.append(values)

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

GdalUtils.runGdal(commands, progress)

This file was deleted.

0 comments on commit 47e27d1

Please sign in to comment.