4 votos

Guardar el resultado de la calculadora raster como una capa de memoria en pyqgis

Estoy usando QGIS raster calc como abajo. Ahora lo estoy guardando como un tiff. Pero, ¿hay alguna manera de que pueda guardarlo como una capa de memoria?

Quiero referirme a esa capa de memoria resultante y poligonizarla, y subirla al servidor postgis. Porque estoy construyendo un plugin así que no quiero que el usuario especifique una carpeta para guardar el tif.

layer = QgsRasterLayer(path_of_image, 'input')
name = layer.name()
resultinglayer = QgsRasterCalculatorEntry()
resultinglayer.ref = name + "@1"
resultinglayer.raster = layer
resultinglayer.bandNumber = 1
entries = [resultinglayer]
calc = QgsRasterCalculator('(%s@1)*0' % name, 
                          'C:/tom/ras.tif',
                          'GTiff', 
                          layer.extent(), 
                          layer.width(), 
                          layer.height(), 
                          entries)
calc.processCalculation()

3voto

dm4747 Puntos 16

Acabo de encontrar una solución, puede no ser la mejor manera, se obtiene la variable de entorno y encontrar la ruta temporal

import os
temp_path = os.environ['TEMP']

a continuación, sólo tiene que guardar la salida en ese temp_path.

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