archivo

Archivo de la etiqueta: Python

centrarvistas01Un script muy sencillo y que puede ser muy útil. Ejecutando el código nos recorrerá todo el proyecto que tengamos abierto, Vista a Vista, y hará un zoom o centrar vista a la primera capa que aparezca en cada una de ellas.

Así, de una tirada, podremos tener bien situadas todas las Vistas de un Proyecto.

from gvsig import *

def main():
    #Centrar todas las vistas de un proyecto
    #zoomViews.py / @masquesig

    views = currentProject().getViews()
    for view in views:
      vista = currentProject().getView(str(view))
      layer0 = vista.getLayers()[0]
      env = layer0.getFullEnvelope()
      centrarVistaEnv( vista, env)
      print vista.name," centrada en ", vista.getLayers()[0].name

def centrarVistaEnv(vista,env):
    vista.getMap().getViewPort().setEnvelope(env)

Inicial:

centrarvistas02

Final, después de ejecutarlo:

centrarvistas03

Si quieres realizar el zoom a la extensión total de las capas, en vez de a la primera capa, el código sería el siguiente:

from gvsig import *

def main():
    #Centrar todas las vistas de un proyecto
    #zoomViewsEnvelope.py / @masquesig

    views = currentProject().getViews()
    for view in views:
      vista = currentProject().getView(str(view))
      centrarEnvelope(vista)
      print vista.name," centrada."

def centrarEnvelope(vista):
    envelope = vista.getMap().getLayers().getMapContext().getFullEnvelope()
    vista.getMap().getLayers().getMapContext().zoomToEnvelope(envelope)

qgis103

Seguimos paso a paso hasta llegar a nuestro primer script con PyQGIS. Vamos a ver como acceder y ver las opciones más básicas.

Y la verdad es que no tiene ninguna complicación, viene incorporado con QGIS 2.0 e incluye un editor del estilo Composer  que tiene gvSIG. Para los que no lo tengáis instalado aún QGIS, podéis entrar en su web y elegir la distribución que utilicéis.

·

qgis101

La instalación muy sencilla. A la hora de elegir que queremos, me parece que aparecen 3 datasets de ejemplos, yo los activé para luego

echarles un ojo. La capacidad total que demanda sin datasets es 800mb, con datasets 1,2gb (aunque el tercero no me lo descarga).

Ya podemos abrir “QGIS Desktop 2.0.1”. Como ya dije la ventaja es que ya viene instalado la consola de Python, asi que simplemente vamos al menú de Complementos o Plugins – Consola Python y se nos abrirá la consola que estamos acostumbrados.

pyqgis203Para llegar al editor, tan solo hacemos click derecho sobre la consola, “Mostrar Editor”. Este editor es el que comente que es muy parecido al Composer de gvSIG, con unos comandos básicos sin complicaciones, muy intuitivo, además colorea el código que lo hace más fácil de leer y recomienda las funciones disponibles.

Si agregamos alguna capa que tengamos al proyecto podremos hacer nuestro primer sciript, que lo que hará sera saludar y decirnos la capa activa. Hacemos click en el Editor en la pestaña nuevo y introducimos el siguiente código:

from qgis.core import *
import qgis.utils

print "Hola desde QGIS"
aLayer = qgis.utils.iface.activeLayer()
print "La capa activa es: ", aLayer.name()
print "Entidades: ", aLayer.featureCount()

Guardamos el código, elegimos la carpeta donde queremos guardar el script, y para lanzarlo le damos al botón de Play que se encuentra abajo. El resultado tendría que ser algo así:

pyqgis204

Muy fácil ¿verdad? Con esto ya tendríamos nuestro primer script en QGIS. Paso a paso!

Como curiosidad, este mismo script en gvSIG sería:

from gvsig import *

def main():
  print "Hola desde gvSIG"
  aLayer = currentLayer()
  print "La capa activa es: ", aLayer.name
  print "Entidades: ", aLayer.features().getCount()