Visor de Capas (Shapefiles y Ráster) con QGIS, Python y Qt en Windows 7

En un post hace un buen tiempo, adaptamos un código para lanzar una aplicación externa a QGIS que servía como visor de shapefiles. El sistema operativo Linux donde se probó correspondía a Debian/Ubuntu. Para lanzar una aplicación de este tipo en Windows es preciso establecer primero el ambiente de desarrollo con PyQGIS creando las correspondientes variables de entorno (PyQGis BINDINGS).

El artículo que me permitió adaptar estas variables a mi sistema particular, QGIS Pisa con Python 2.7.x en Windows 7, se encuentra aquí. Como dispongo de la versión standalone de QGIS Pisa, las variables de entorno son entonces las siguientes:

PYTHONPATH
C:\Program Files\QGIS Pisa\apps\Python27;C:\Program Files\QGIS Pisa\apps\Python27\Lib;C:\Program Files\QGIS Pisa\apps\Python27\sip;C:\Program Files\QGIS Pisa\apps\qgis\python

PATH
C:\Program Files\QGIS Pisa\bin;C:\Program Files\QGIS Pisa\apps\qgis\bin;%PATH%

PYTHONHOME
C:\Program Files\QGIS Pisa\apps\Python27

Las configuré a través de ‘Control Panel’ filtrando por env. En Edit the system environment variables -> Environment Variables, edité PATH y PYTHONPATH con las correspondientes líneas de arriba (el separador es ; ) y creé la variable PYTHONHOME.

Después de esto, hay que verificar en una consola de MS-DOS que todas las librerías de PyQGIS se cargan correctamente en el intérprete de Python; tal como se puede comprobar en la imagen siguiente:

visor

Después de la carga exitosa de las librerías, en la Consola se navega hasta el directorio de la aplicación, Visor_Capas3, y el visor se ejecuta con:

python VisorCapas3.py

El resultado se encuentra en la imagen a continuación; donde se puede observar que se ha cargado el ráster a través del QDialog que se invoca al hacer click en el segundo icono (directorio raster):

visor2

Para que esto fuese posible, con respecto a la aplicación anterior, se indican a continuación las modificaciones que fueron realizadas en el código original (junto con algunas líneas adicionales, no modificadas, que sirven de referencia para su ubicación).

.
.
.
from qgis.core import *
from qgis.gui import *

from visor_capas_ui import Ui_MainWindow

qgis_prefix = "C:\\Program Files\\QGIS Pisa\\apps\\qgis"

class VisorShapefiles(QMainWindow, Ui_MainWindow):
.
.
.

		self.actionAddRasterLayer = QAction(QIcon('.Icons/mActionAddRasterLayer.png'), "Agregar capa raster", self.frame)

		self.connect(self.actionAddRasterLayer, SIGNAL("activated()"), self.addRasterLayer)

.
.
.
		self.toolbar.addAction(self.actionAddRasterLayer)
.
.
.
    def addRasterLayer(self):
        """ Agregar capa al canvas """
        layerPath = QFileDialog.getOpenFileName(self, "Abrir raster", ".", "Raster (*.tif)")
        layerInfo = QFileInfo(layerPath)

        # Crear el layer
        rlayer = QgsRasterLayer(layerPath, layerInfo.fileName())

        if not rlayer.isValid():
            return

        # Agregar el layer al registro
        QgsMapLayerRegistry.instance().addMapLayer(rlayer);

        # Fijar el extent al extent del primer layer cargado
        if self.canvas.layerCount() == 0: 
            self.canvas.setExtent(rlayer.extent())
            
        # Fijar el conjunto de capas (LayerSet) para el map canvas        
        self.layers.insert(0, QgsMapCanvasLayer(rlayer))                         
        self.canvas.setLayerSet(self.layers)        
.
.
.

La aplicación completa, con algunos shapefiles y ráster de muestra, puede ser bajada de aquí:

Visor_Capas3.zip

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

2 respuestas a Visor de Capas (Shapefiles y Ráster) con QGIS, Python y Qt en Windows 7

  1. Pingback: Newsletter Octubre 2015 | El Blog de José Guerrero

  2. Hola José felicitaciones por tu Blog, muy bueno, me gustaría tener una copia del archivo Visor_Capas3.zip, el link de la página no funciona, sale un mensaje de dropbox que dice que el archivo ya no existe.

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