7 votos

¿Cómo hacer que los algoritmos de procesamiento QGIS usen parámetros por defecto?

Mi pregunta está relacionada con: ¿Cómo hacer que los algoritmos de procesamiento utilicen los valores de los parámetros por defecto en QGIS 2.14?

Me gustaría usar gdalogr:translate y sólo establecer los valores de "INPUT", "OUTSIZE", "EXPAND" y "OUTPUT".

Sin embargo, cuando corro:

processing.runalg('gdalogr:translate', {"INPUT":rlayer,"OUTSIZE":j,"EXPAND":2,"OUTPUT":output})

Me da el siguiente error (aunque PROJWIN no es un parámetro obligatorio):

Error: Missing parameter value for parameter PROJWIN.

Me gustaría dejar este parámetro como predeterminado. Cuando cambio el código e incluyo uno de los siguientes fragmentos:

"PROJWIN": ''    OR   "PROJWIN": None

Se produce el siguiente error:

Error: Wrong parameter value  for parameter PROJWIN.

Alternativamente, intenté ajustar el parámetro PROJWIN a la extensión de mi actual capa de trama, sin éxito:

fileInfo = QFileInfo(f)
baseName = fileInfo.baseName()
rlayer = QgsRasterLayer(f, baseName)
e = rlayer.extent()
processing.runalg('gdalogr:translate', {"INPUT":rlayer,"OUTSIZE":j,"EXPAND":2,"PROJWIN":e,"OUTPUT":output})

¿Alguien sabe cómo podría funcionar esto?

3voto

Mue Puntos 2469

No estoy seguro de si la extensión de la capa se puede preestablecer con un valor por defecto cuando se ejecuta desde la consola. Siempre defino la extensión cuando es uno de los parámetros (que asume siempre es necesario):

from PyQt4.QtCore import QFileInfo
import processing

f = iface.activeLayer()
fileName = f.source()
fileInfo = QFileInfo(fileName)
baseName = fileInfo.baseName()
rlayer = QgsRasterLayer(fileName, baseName)

extent = rlayer.extent()
xmin = extent.xMinimum()
xmax = extent.xMaximum()
ymin = extent.yMinimum()
ymax = extent.yMaximum()

output = "C:/Users/You/Desktop/result.tif"
processing.runalg('gdalogr:translate', {"INPUT":rlayer,"OUTSIZE":j,"EXPAND":2,"PROJWIN":"%f,%f,%f,%f"% (xmin, xmax, ymin, ymax),"OUTPUT":output})

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X