experiencia en el desarollo de gis opensource (qgis, gwc, gdal-ogr)

14
Alvaro Huarte Sistemas de Información Territorial Tracasa (www.tracasa.es) Experiencia de colaboración en el desarrollo de GIS opensource VIII JORNADAS DE SIG LIBRE

Upload: alvaro-huarte

Post on 03-Jul-2015

1.301 views

Category:

Technology


1 download

DESCRIPTION

Esta presentación en el SIGTE 2014 describe la experiencia obtenida en el desarrollo de aplicaciones GIS opensource tan maduras como QGIS, GeoWebCache (GWC) o GDAL-OGR. Es un alegato en favor del desarrollo colaborativo, describiendo las herramientas de apoyo que rodean a la colaboración en código "opensource", y se presentan algunos ejemplos de desarrollos, no por su funcionalidad, sino para resaltar aspectos filosóficos y animar al resto de la comunidad a la participación activa.

TRANSCRIPT

Page 1: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Alvaro Huarte

Sistemas de Información Territorial

Tracasa (www.tracasa.es)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE

Page 2: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Agenda

• Introducción.

• Arquitectura y herramientas del desarrollo colaborativo.

– Repositorios de código fuente.

– Issue tracking.

– Mailing lists.

• Ejemplos de desarrollos colaborativos.

– QGIS: Simplificación al vuelo, usabilidad de aplicación.

– GeoWebCache (GWC): Salida caché RESTful.

– GDAL-OGR: Optimización del driver para formato shapefile.

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Page 3: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Introducción

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Issue tracking

Mailing lists

IDE’s de

desarrollo

Herramientas de apoyo al software colaborativo.

Repositorios

código

Page 4: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Los repositorios son sitios web para alojar proyectos y que utilizan un sistema de

control de versiones.

Los usuarios pueden crear nuevos repositorios, bajarse ficheros agrupados por versiones y publicar nuevas versiones de ellos, o como mínimo, notificarlas para que sean evaluadas y finalmente aceptadas por los administradores del proyecto.

Herramientas: Repositorios (GitHub, Codeplex)

Observa…

Regístrate…

Comparte…

Page 5: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Gestión de errores y nuevas funcionalidades de las aplicaciones.

Herramientas: Issue tracking

Los usuarios pueden crear nuevas entradas para describir errores detectados o solicitar nuevas funcionalidades. Establece un punto entrada de los recursos asociados a dichos elementos: datos de prueba, debates sobre su resolución,…

Observa…

Colabora…

Comparte…

Page 6: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Listas de correo agrupadas por roles: desarrollo, documentación, usabilidad,…

Herramientas: Mailing lists

Permite preguntar, y responder, sobre cuestiones no enmarcadas en un determinado “issue” ya activado. Es frecuente que nuevas peticiones o ideas se incuben previamente en debates de las listas de correo y finalmente generen una nueva petición “oficial”.

Observa…Comparte…

Page 7: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

El entorno de desarrollo integrado (integrated development environment), es el conjunto de

herramientas de programación que nos permite la implementación del código.

Herramientas: IDE’s de desarrollo

Eclipse IDE

Visual Studio

“pull request”

El fin último del desarrollo es publicar o proponer un “pull request” (que implemente una funcionalidad o corrija un error), para que sea mergeado al repositorio principal del código fuente de la aplicación.

Desarolla…

Comparte…

Page 8: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Ejemplos de desarrollos:

• Optional output folder for cache.

• Output RESTful cache.

GDAL-OGR• Speed improvement for OGR provider.

• Add OGR_G_SetPoints to GDAL API-C.

GeoWebCache

• Set the canvas color in 'qgsprojectproperties::apply()' before refresh.

• New keybindings, Del-key should delete feature.

• On the fly feature generalisation, fast rendering of features.

QGIS

Page 9: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Ejemplos de desarrollos

QGIS• Set the canvas color in 'qgsprojectproperties::apply()' before refresh.

https://github.com/qgis/QGIS/commit/b2ad0a9bb914c67309b0e4c486b3493086b04a73

Este simple “commit” corrige un error en QGIS por el que no se reflejaba correctamente en el mapa el cambio del “backcolor” configurado por el usuario de la aplicación.

Es interesante recalcarlo no por su funcionalidad, simple al extremo, sino por demostrar que todos podemos colaborar en lo que nos sintamos cómodos, implementando pequeños parches como éste, o codificando mayores cambios en el “core” si podemos y nos dejan

Page 10: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Ejemplos de desarrollos

QGIS• New keybindings, Del-key should delete feature.

https://github.com/qgis/QGIS/pull/1010

http://changelog.linfiniti.com/qgis/version/21/#71

Este “commit” fue implementado como respuesta a una nueva funcionalidad solicitada en la lista de peticiones de QGIS (http://hub.qgis.org/issues/9094). En principio sólo demandaba que la tecla “supr” eliminara las geometrías actualmente seleccionadas en la aplicación pero desembocó, gracias a la aportación de ideas de otros usuarios, en una revisión de varios “shortcuts” de QGIS para darle mayor coherencia al comportamiento de la aplicación y más ágil respuesta a tareas repetitivas en la edición de las capas.

La colaboración de ideas y opiniones de diferentes usuarios y desarrolladores es lo importante a resaltar de este “commit”.

Page 11: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Ejemplos de desarrollos

QGIS• On the fly feature generalisation, fast rendering of features.

http://changelog.linfiniti.com/qgis/21/entry/on-fly-feature-generalisation/

https://github.com/qgis/QGIS/pull/980

https://github.com/qgis/QGIS/pull/1053

QGIS en versiones previas a la 2.2 pinta geometrías con rendimientos tres o cuatro veces inferiores a otras aplicaciones equivalentes. Este “commit” implementa un conjunto de componentes para simplificar las geometrías a pintar sin pérdida perceptible de calidad visual. La simplificación se aplica a las entidades recuperadas desde los proveedores de datos, o se ejecuta directamente a nivel de proveedor como es el caso del driver de acceso a datos “postgis”.

Lo importante de este “commit”, aparte de la funcionalidad obtenida, es demostrar que también es posible colaborar en “profundos” cambios en las aplicaciones.

Page 12: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Ejemplos de desarrollos

GeoWebCache (GWC)

• Optional output folder for cache.https://github.com/GeoWebCache/geowebcache/pull/200

• Output RESTful cache.https://github.com/GeoWebCache/geowebcache/pull/201

El nuevo desarrollo posibilita generar en GeoWebCache (integrado o no en GeoServer) una caché en formato RESTful. Añade también la posibilidad de establecer un directorio de salida para paralelizar el proceso en diferentes máquinas y evitar el costoso trasiego de millones de ficheros típico de las cachés.

Page 13: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

Ejemplos de desarrollos

GDAL-OGR

• Speed improvement for OGR provider.https://trac.osgeo.org/gdal/ticket/5272

• Add OGR_G_SetPoints to GDAL API-C.https://trac.osgeo.org/gdal/ticket/5357

Los cambios propuestos en este paquete fueron consecuencia de la necesidad de mejora de funcionalidad para los desarrollos de QGIS

Los dos “commits” de las GDAL-OGR están relacionados con el proveedor de datos del formato shapefile cuando se usa en peticiones masivas de datos y críticas en rendimiento como son la visualización o renderización de vectores en un mapa. Con estos cambios ya aceptados en el producto, se consigue una mejora apreciable en la carga de las geometrías que redunda en el rendimiento del pintado masivo de datos que un desktop como QGIS debe ejecutar.

Estos desarrollos evidencian la posibilidad de integración entre distintos paquetes de software, distintas comunidades de desarrollo, etc

Page 14: Experiencia en el desarollo de GIS opensource (QGIS, GWC, GDAL-OGR)

Experiencia de colaboración en el desarrollo de GIS opensource

VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)

¿ Preguntas ?

Muchas graciasAlvaro Huarte [email protected]