2 votos

¿Utilizar correctamente grass:r.to.vect en PyQGIS?

Me gustaría convertir un raster a un vector de puntos utilizando grass:r.to.vect desde un script de pyqgis. Mi script no da ningún error ni salida. Ahora estoy atascado, lo que tengo que cambiar.

Aquí mi código:

input = raster.tif
output = points.shp

processing.runalg('grass:r.to.vect',{"input": input, "feature": 1,"GRASS_OUTPUT_TYPE_PARAMETER": 1, "GRASS_REGION_PARAMETER":"%f,%f,%f,%f"%(xmin, xmax, ymin, ymax), "output":output})

Hasta ahora lo he intentado:

Adelgazar la capa de entrada antes de convertirla en una trama. Ejecutar manualmente r.to.rast en QGIS sólo funciona bien en la versión adelgazada.

processing.runalg('grass:r.thin',{"input": input, "GRASS_REGION_PARAMETER":"%f,%f,%f,%f"%(xmin, xmax, ymin, ymax), "output":output})

Cargar la capa de entrada como una capa de QGIS:

fileInfo = QFileInfo(input)
baseName = fileInfo.baseName()      
filePath = str(os.path.abspath(input))      
rlayer = QgsRasterLayer(filePath, baseName)

1voto

vordep Puntos 38

Con el módulo grass7 la conversión de raster a punto me funciona bien:

# Define extent
extent = raster_layer.extent()
xmin = extent.xMinimum()
xmax = extent.xMaximum()
ymin = extent.yMinimum()
ymax = extent.yMaximum()

# Raster to point conversion
processing.runalg('grass7:r.to.vect',
                  {"input": raster_layer,
                   "type": 1,
                   "GRASS_REGION_PARAMETER": "%f,%f,%f,%f" % (xmin, xmax, ymin, ymax),
                   "GRASS_OUTPUT_TYPE_PARAMETER": 1,
                   "output": point_layer})

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