4 votos

¿Cuál es la sintaxis correcta para usar gdalogr:merge de Processing en Python?

Estoy usando gdalogr:merge en la consola de Python para fusionar dos rasters (.tif) Pero realmente no entiendo el primer parámetro, donde debo colocar dos variables.

Recibo el siguiente error:

No se pudo ejecutar el algoritmo
Valor incorrecto del parámetro: ras1; ras2

Ninguno

import processing   
from processing.core.Processing import Processing
from qgis.core import *
from qgis.gui import *

ras1 = QgsRasterLayer("H:/pyQGIS/DATA_U6/mdt_483.tif", "MDT483")
ras2 = QgsRasterLayer("H:/pyQGIS/DATA_U6/mdt_508.tif", "MDT508")

QgsMapLayerRegistry.instance().addMapLayers([ras1])
QgsMapLayerRegistry.instance().addMapLayers([ras2])

merj = processing.runalg("gdalogr:merge", 'ras1; ras2', False, False, 4, "H:/pyQGIS/DATA_U6/mdt_mosaico.tif")
print(repr(merj))

3voto

Elliott Maynard Puntos 11

El algoritmo espera (en el primer argumento) las rutas de entrada de ráster utilizando un punto y coma como separador. No agregues ningún espacio en blanco después del punto y coma.

Ahora tu script podría ser de solo 2 líneas:

import processing

merj = processing.runalg('gdalogr:merge','H:/pyQGIS/DATA_U6/mdt_483.tif;H:/pyQGIS/DATA_U6/mdt_508.tif', False, False, 4,'H:/pyQGIS/DATA_U6/mdt_mosaico.tif')

Debería funcionar. Lo he probado con las versiones de Processing 2.10.3 y 2.12.2 en QGIS 2.14.1 (Essen).

0 votos

Esto no está funcionando, es por eso que es muy extraño, según la documentación, esto debería funcionar. Mi versión de QGIS es 2.14 (Essen)

0 votos

¿Qué versión de Processing estás usando? En mi máquina GNU/Linux, usando QGIS 2.14.1 y Processing 2.10.3, ¡funcionó!

0 votos

Es 2.14 (Essen),La versión de mi Procesamiento es 2.12.2. Intenté cambiar los espacios de ";" pero aún así no obtengo nada...El mismo error

1voto

Mue Puntos 2469

Hmm la solución de @GermánCarrillo también funcionó para mí. Si quieres usar ras1 y ras2 como parámetros de entrada entonces puedes intentar lo siguiente:

import processing

ras1 = "H:/pyQGIS/DATA_U6/mdt_483.tif"
ras2 = "H:/pyQGIS/DATA_U6/mdt_508.tif"

merj = processing.runalg("gdalogr:merge", ras1 + ";" + ras2, False, False, 4,"H:/pyQGIS/DATA_U6/mdt_mosaico.tif")

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