Jueves, 19 Marzo 2015 00:00

Primeros pasos con Python. Curso Scripting en gvSIG 2.1

Durante las pasadas fiestas navideñas, tuve tenido la oportunidad de realizar el curso "Introducción a Scripting en gvSIG 2.1" organizado por la Asociación gvSIG mediante la Plataforma de Capacitación a Distancia gvSIG-Training.

El curso tenía como objetivo “el de dar a conocer un poco más sobre el potencial de la programación geoespacial, la posibilidad de crear nuevas herramientas, nuevos geoprocesos o análisis de datos, que nos aumentarán la potencia de gvSIG adaptándose a nuestras necesidades. También la automatización de tareas, que nos podrían generar un ahorro de tiempo y de trabajo considerable.”

El lenguaje de programación manejado ha sido Python, utilizado mediante las herramientas scripting incluidas en la última versión gvSIG la 2.1, en mi caso, corriendo sobre Xubuntu.

Mi experiencia, partiendo que mis conocimientos sobre Python eran nulos, ha sido bastante satisfactoria. Tanto ha sido así, que aprovechando la opción que ofrecía la plataforma, me animé completar el curso para obtener el Certificado de Aprovechamiento, correspondiente a 30 créditos del programa de Certificación de gvSIG.

Además de lo aprendido, uno de los puntos fuertes del curso ha sido el buen hacer del tutor Óscar Martínez (@masquesig), responsable de la web Másquesig en la que se puede encontrar bastante información de calidad sobre scripting en gvSIG y QGIS. Óscar está también disfrutando de la beca Google Summer of Code 2014 desarrollando el proyecto sobre “Acceso a los geoprocesos desde el módulo de scripting en gvSIG 2.x″ que permite la ejecución de los algoritmos de Sextante y gvSIG desde la consola de Jython o desde el Scripting Composer, ubicados ambos dentro del módulo de Scripting.

Además de la página web de Óscar Martínez, se puede consultar esta entrada resumen de su participación en las las 10as Jornadas Internacionales gvSIG el pasado Diciembre en Valencia con el Taller de Scripting en las 10as Jornadas Internacionales de gvSIG.

Como parte de los trabajos para conseguir el certificado, además del abono de las tasas, se incluye el desarrollo de un proyecto final, en que se apliquen los conocimientos aprendidos durante el curso. Una vez revisado el código por parte del tutor, los proyectos presentados serán incorporados en el apartado Scripts de la web gvSIG Outreach quedando así disponibles para toda la comunidad gvSIG.

Mi proyecto, y gracias a las orientaciones del profesor y a las aportaciones de los compañeros del curso, consistió en la creación de un script que generara un archivo en formato txt, con información de la capa (nombre, geometría, SRC, envolvente) para cada una de las capas (shape) cargadas en la vista activa y lo guarda en un directorio seleccionado. De forma opcional y utilizando la librería gvpy desarrollada por Óscar Martínez hace una copia de las capas en la vista utilizando el comando export en el mismo directorio.

Seguro que profundizando un poco más en el material entregado en el curso podré mejorarlo. He apuntado algunas ideas que podían mejorarlo y que podrían convertirlo en script de más utilidad para trabajos que requieran hacer copias de grandes conjuntos de datos incorporando una información o metadatos básicos. Aquí dejo algunas:

  • Comprobar que la librería gvpy está instalada y en el caso contrario devolver un mensaje de aviso. Esta parte ya está solucionada incluyendo estas líneas de código

    try:
        import gvpy
    except:
        commonsdialog.msgbox("ERROR: cannot find gvpy module. Please visit https://github.com/oscar9/gvpy for more information", "Error",commonsdialog.FORBIDEN)
        sys.exit()
    
  • Si la carpeta elegida tiene datos, permitir seleccionar otra o incluso borrar los existentes. Para ello tengo que buscar ejemplos utilizando la librería "os" de Python

  • La generación del txt y la exportación se hacen sobre todas las capas cargadas en la vista activa. Quizás sería interesante crear un dialog en el listado de capas para poder realizar una selección de las capas con las que trabajaría el script.

  • Una opción interesante sería la de incluir la opción de crear un archivo comprimido con todos los ficheros creados.

  • Se podría incluir la opción de transformar otros Sistema de Referencia de Coordenadas o incluso a otros formatos (ej. GeoJSON)

Deja un comentario

Asegúrate de llenar la información requerida marcada con (*). No está permitido el Código HTML. Tu dirección de correo NO será publicada.

Sobre mí

SIGdeletras es Patricio Soriano y Patricio Soriano es SIGdeletras. Trabajo el campo las Tecnologías de la Información Geográfica y especialmente su aplicación en el ámbito del Administración Pública y el Patrimonio Cultural...  ¿Quieres saber más sobre mí?

 

Buscar

Social Links