Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cada módulo tiene su respectivos códigos y usos, si se quiere profundizar más entrar a este
link:
“ http://qgis.org/api/modules.html ”
1. Cuando se quiera trabajar con códigos largos podemos hacer uso del editor:
“
def Gidahatari():
return "Gestion Sostenible del Agua"
“
4. Le damos al botón de “Run Script “ y ahora podemos utilizar la clase y sus atributos en
la consola:
“
g = Point()
g.draw()
Gidahatari()
“
Cabe resaltar que aparecen unos menos al lado del código que si les hacemos click,
comprimen el código:
5. Si le damos a guardar, automáticamente se guardará nuestro archivo point.py
Proveedores
Hay variedad de proveedores en el entorno QGIS, podemos visualizarlos desde PyQGIS y
también desde la interfaz gráfica de QGIS
Shapefile
Empezaremos cargando un shapefile:
“ g.isValid() “
Resultando True, que significa que hemos cargado exitosamente el archivo.
3. Podemos observar que no pasa nada en el Canvas, debido a que tenemos que utilizar
otra función para visualizarlo, ya que hasta este punto lo tenemos almacenado como
una variable:
“ QgsMapLayerRegistry.instance().addMapLayer(g) “
“ QgsMapLayerRegistry.instance().removeMapLayer(g.id()) “
En este caso si queremos cargar “g” o si queremos ver si es válido nos botará
error ya que se eliminó.
6. Ahora para modificar el color se tiene que seguir los siguientes pasos:
a) Primero creamos la variable que contiene nuestra capa
“
g = QgsVectorLayer("C:\Users\Jonathan\Downloads\Pyqgis\Clase1 Intro
Python y PyQGIS\CUENCAS_HIDROGRAFICAS", "Cuencas","ogr")
“
“ QgsMapLayerRegistry.instance().addMapLayer(g) “
“ renderer = g.rendererV2() “
c) Ahora para tener la simbología:
“ symbol = renderer.symbol() “
“ symbol.dump() “
Donde los 3 primeros números separados por comas al final es el código del color en que se
encuentra en este momento respecto a RGB
e) Para cambiar de color tenemos que importar el módulo de color y escoger el
código de color HEX:
“
from PyQt4.QtGui import QColor
symbol.setColor(QColor('#44f441'))
“
“
g) Pero si observamos en la simbología del Panel de capas aún está con el color
anterior, por ello tenemos que actualizar esa leyenda:
“ iface.legendInterface().refreshLayerSymbology(g) “
Raster:
La implementación de rasters es parecida a la de vectores, pero la diferencia está en que no
necesita especificar el proveedor ya que todos son GDAL.
“ Raster =
QgsRasterLayer("C:\Users\Jonathan\Downloads\Pyqgis\Clase2\DEM\NDVI.tif",
"NDVI") “
Y ahora para agregarlo al Canvas es el mismo proceso que anteriormente con los
shapefiles:
“ QgsMapLayerRegistry.instance().addMapLayer(Raster) “
2. Para remover el Raster lo hacemos del mismo modo como hicimos con los Shapefiles:
“ QgsMapLayerRegistry.instance().removeMapLayer(Raster.id()) “
Scripts Complejos
Para crear scripts que nos faciliten el trabajo, es cuestión de definir funciones que contengan
varias herramientas, para lo cual se van a utilizar librerías de PyQGIS, que esencialmente son:
Cabe resaltar que por defecto se abre solos todos a excepción del color por lo que añadiremos
PyQT4.QtGUI en nuestro código
def Cargar_capa():
QgsMapLayerRegistry.instance().addMapLayer(g)
def Cambiar_color():
active_layer = iface.activeLayer()
renderer = active_layer.rendererV2()
symbol = renderer.symbol()
symbol.setColor(QColor('#44f441'))
g.setCacheImage(None)
iface.mapCanvas().refresh()
iface.legendInterface().refreshLayerSymbology(active_layer)
def Abrir_Tabla_Atributos():
iface.showAttributeTable(iface.activeLayer())
“ Cargar_capa() ”
“ Cambiar_color() “
5. Abrir Tabla de Atributos
“ Abrir_Tabla_Atributos() “
6. El siguiente ejercicio que haremos será modificar el código para que no sea necesario
definir cada función, si no que se cargue de frente simplemente con colocar
“Run_Script”, para ello borramos o comentamos todas las líneas que contengan
funciones y las indetaciones:
“
from PyQt4.QtGui import *
g = QgsVectorLayer("C:\Users\Jonathan\Downloads\Pyqgis\Clase1 Intro
Python y
PyQGIS\CUENCAS_HIDROGRAFICAS\TEM_HIDRO_CUENCAS_HIDROGRAFICAS.s
hp", "Cuencas","ogr")
QgsMapLayerRegistry.instance().addMapLayer(g)
active_layer = iface.activeLayer()
renderer = active_layer.rendererV2()
symbol = renderer.symbol()
symbol.setColor(QColor('#44f441'))
g.setCacheImage(None)
iface.mapCanvas().refresh()
iface.legendInterface().refreshLayerSymbology(active_layer)
iface.showAttributeTable(iface.activeLayer())
“
“ c = ScriptClase2(qgis.utils.iface) “
“c = ScriptClase2(iface)”
“ c.Cargar_capa() ”
“ c.Cambiar_color() “
“ c.Abrir_Tabla_Atributos() “