Cómo reproyectar un ráster mediante GDAL/PyQGIS

A diferencia de los archivos tipo vector, donde existen clases de PyQGIS para realizar el proceso, la reproyección ráster se realiza a través de un comando GDAL: gdalwarp. Este enfoque en QGIS es similar al empleado con la herramienta “Clipper” destinada a la producción de tiles mediante el comando gdal_translate.

Para realizar la reproyección se necesitan como mínimo los código EPSG (Coordinate Reference System; CRS) y los directorios del ráster de origen y el de destino. Pueden utilizarse otros parámetros pero no van a ser considerados.

Por otra parte, en el caso del EPSG y el directorio del ráster de origen, estos se seleccionan directamente a partir de la capa a reproyectar con los métodos ‘crs’ y ‘dataProvider’ de QgsRasterLayer. Los mismos parámetros para el ráster de destino se incluyen en el código (así como el formato GTiff del ráster de salida). Esto se hace así con el fin de verificar el correcto funcionamiento del comando. En la producción de un plugín es fácil programar la automatización con un objeto QgsProjectionSelectionWidget para la selección del CRS y de un QFileDialog para la selección del archivo de salida.

El código completo a usar fue el siguiente:

import os

layer = iface.activeLayer()

provider = layer.dataProvider()

source_path = " -of GTiff " + provider.dataSourceUri()
target_path = "/home/zeito/pyqgis_data/utah_dem_UthNorth2.tif"

CRS = layer.crs()
source_epsg = CRS.postgisSrid()
new_espg = 32142
target_epsg = " -t_srs EPSG:" + str(new_espg)

cmd = "gdalwarp -overwrite -s_srs EPSG:" + \
                        str(source_epsg) + \
                        target_epsg + \
                        source_path + \
                        " " + \
                        target_path

print cmd
 
os.system(cmd)

para reproyectar un ráster desde el EPSG:32612 (WGS84/UTM 12N) al EPSG:32142 (NAD83/Utah North). Su ejecución en la Python Console produjo los resultados esperados.

Esta entrada fue publicada en GDAL, PyQGIS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

Una respuesta a Cómo reproyectar un ráster mediante GDAL/PyQGIS

  1. Pingback: Objetos QgsProjectionSelectionWidget en un plugin de QGIS para reproyectar rásteres | El Blog de José Guerrero

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s