Child pages
  • Panorama del ecosistema de Software Libre para SIG - completo
Skip to end of metadata
Go to start of metadata

Contenidos

Resumen

Prodevelop apuesta por el software libre para la geomática (en adelante FOSS4G)desde hace años. Además de formar parte del equipo de desarrollo de gvSIG integra soluciones con softwarelibre tanto en el área de la geomática como en otros ámbitos como la minería de datos y las aplicaciones web. Así, a finales de 2006 nace la iniciativa interna de desarrollar un catálogo de software FOSS4G que sirviera para mantener el pulso del estado del ecosistema de aplicaciones para la geomática. Se presenta pues un informe resumiendo los proyectos más relevantes en el ámbito del FOSS4G, esperando que sea útil para el lector que se inicia en esta disciplina.

Palabras Clave

SIG, software libre, FOSS4G, OSGeo, ecosistema, bases de datos, sevidores de mapas, metadatos, clientes ligeros, clientes de escritorio

Objetivos

Este trabajo surge como un esfuerzo interno de investigación para mejorar el conocimiento del estado del ecosistema de aplicaciones libres que forman los múltiples proyectos existentes en la actualidad. Este ecosistema resulta muchas veces confuso para los usuarios y desarrolladores noveles por lo que, con el ánimo de dar la mayor difusión y esclarecer en la medida de lo posible el estado actual del mismo, los autores decidieron publicar este trabajo durante las I Jornadas de SIG Libre realizadas en Girona.

El éxito de dicha presentación fue inmediato. Muchos asistentes comentaron que gracias a este modesto trabajo veían con una mejor perspectiva el estado actual del ecosistema. Así mismo animó a los autores a seguir actualizando el informe, presentándolo en nuevos eventos como las 3as jornadas internacionales gvSIG en Valencia y en las II jornadas de SIG Libre de Girona.

Recientemente y debido a la publicación de un monográfico (en imprenta) para la revista Cuadernos para el desarrollo se ha llevado en parte este informe a un formato web a través del wiki de OSGeo.

Pese a que ha resultado imposible cumplir uno de los objetivos iniciales del proyecto, a saber, convertirlo en una página web que permitiera dar mayor difusión si cabe al proyecto, el catálogo sigue vigente y con cada evento se presenta una versión actualizada del mismo ya que el ecosistema FOSS4G es muy dinámico y requiere un pulso y atención constantes para que siga cumpliendo su función divulgadora

Introducción

Resulta evidente la importancia del FOSS en el ámbito de la geomática. No hay más que ver la cantidad de proyectos, comunidades, blogs, congresos y demás eventos que se organizan con cada vez mayor éxito. Esto puede provocar al recién llegado cierta confusión ya que el inherente carácter modular del software libre hace que muchos proyectos dependan de otros y por tanto las interconexiones son múltiples y a todos los niveles. Además los proyectos de software libre suelen presentar carencias de marketing, con respecto al software privativo, que dificulta su difusión.

La motivación de este texto por tanto es la presentación ante los lectores, desde un punto de vista lo más generalista posible, del estado del arte en este ámbito de la tecnología para dar al lector pistas que le acerquen a aquellos proyectos/productos que le puedan ser de interés para realizar cualquier tipo de proyecto.

Este texto irá "poniendo sobre la mesa" los diferentes proyectos que podemos encontrar tanto en geomática como en cualquier disciplina que pueda afectar de manera más o menos directa a cualquiera de sus ámbitos separando los proyectos del lado de un servidor de los que funcionan en el lado del cliente.

Esperamos que sea de utilidad para futuros lectores y por supuesto advertimos que este texto es una fotografía, inherentemente desactualizada, siendo más que necesario continuar con este trabajo a lo largo del tiempo siguiendo por ejemplo páginas como FreeGIS u opensourcegis, así como la evolución de los proyectos oficiales de OSGeo.

Proyectos del lado del servidor

Bases de datos geográficas

PostGIS

No hay duda que el buque insignia en el ámbito las bases de datos del software libre es PostGIS, el módulo para PostgreSQL desarrollado principalmente por Refractions Research Inc. Este desarrollo proporciona a PostgreSQL la capacidad no sólo de almacenar información geoespacial y cumplir la norma SFSS, sino de realizar operaciones de análisis geográfico.

PostGIS es un producto muy difundido, con importantes referencias a nivel mundial (consultar sus casos de estudio con un gran abanico de herramientas de todo tipo, tanto libres como propietarias. Es de destacar el reciente soporte para PostGIS de ArcSDE, el middleware de acceso a bases de datos de ESRI.

MySQL

La base de datos de mayor éxito en aplicaciones web es desde luego MySQL pero esta base de datos presenta dos serios problemas:

  1. No se puede considerar del todo FOSS ya que no es un producto completamente libre al ofrecerse por la empresa que lidera el proyecto, MySQL AB (recientemente adquirida por Sun), con una licencia dual.
  2. No cumple la norma SFSS y por tanto se ubica (de momento) como un mero "contenedor" de información geográfica, aunque se están realizando esfuerzos para dotar a MySQL de más funcionalidades

pgRouting

Fruto de la colaboración de la entidad que lanzó el proyecto, la empresa franco-suiza camptocamp, y de la que ahora lleva gran parte del desarrollo , la japonesa Orkney, pgRouting se configura como la mejor opción para realizar cálculos de redes y análisis de grafos en general sobre la base de datos PostGIS.

El procesado de rutas se realiza directamente en lenguaje SQL contra la base de datos, sin emplear middleware de ningún tipo, ofreciendo un buen rendimiento y la posibilidad de implementar servicios web como los que la propia empresa Orkney está desarrollando.

Este proyecto va adquiriendo madurez y actualmente ya soporta las operaciones más comunes: camino más corto entre dos puntos (usando algoritmos heurísticos o no) y el problema del viajante (TSP).

Servidores de mapas

En los últimos años la publicación de información geográfica en Internet ha sido uno de los grandes ámbitos de actuación del FOSS para la geomática. Esto se debe a varias razones: los productos comerciales son caros y difíciles de manejar, a menudo imponen a otros la adopción de otros productos comerciales (middleware), no funcionan sobre todos los sistemas operativos, no han adoptado con rapidez las estandarizaciones promovidas por OGC, no ofrecen libertad de uso, etc.

Esto, unido a la estandarización de servicios de interoperabilidad promovida por el OGC, provocó la aparición desde los comienzos del movimiento FOSS, de proyectos relacionados con la publicación en web de cartografía. El principal proyecto en este sentido es el servidor de mapas de la universidad de Minnesota, UMN MapServer.

UMN MapServer

Este proyecto nació como unos scripts para ArcINFO que generaban de forma dinámica impresiones de cartografía para publicar en web. Inicialmente fue un proyecto financiado por la NASA, la Universidad de Minnesota y el departamento de recursos forestales de Minnesota (MNDNR).

Ha evolucionado mucho, en la actualidad se presenta en dos "modalidades":

  • Como ejecutable CGI, es el uso más común que se le ha dado a este servidor de mapas. Se trata de un ejecutable que puede ser invocado desde páginas web para generar de forma dinámica imágenes en los formatos más habituales para la publicación en web (gif, png, etc.).
  • Como biblioteca. La necesidad de realizar tareas específicas en el lado del servidor obligó a "exponer" las funcionalidades de este servidor a diferentes lenguajes de programación (especialmente PHP) para poder realizar tareas con un alto contenido dinámico: consultas especializadas, análisis al vuelo, etc.

Las características por las que destaca este servidor son:

  • Sencillez de configuración y administración
  • Plataformas sobre las que puede operar
  • Velocidad de acceso a datos
  • Cantidad de formatos tanto vectoriales como raster soportados

Recientemente ha llegado la esperada versión 5.0 de MapServer, tras años en versiones 4.x, con importantes novedades como la inclusión de la biblioteca AGG que mejora sensiblemente el renderizado de mapas.

GeoServer

Este servidor de mapas forma parte de la nueva generación de aplicaciones desarrolladas sobre la especificación J2EE. El objeto principal de esta nueva generación de servidores es la utilización de las últimas tecnologías en el desarrollo de soluciones web empresariales, con lenguaje de programación Java. Esto permite el despliegue de la aplicación sobre cualquier servidor de aplicaciones conforme a la especificación J2EE, tanto libres como Tomcat (Apache), JBoss (RedHat) o Geronimo (Apache) o propietarios como WebLogic (BEA), WebSphere (IBM), etc.

Es el proyecto estrella sobre la biblioteca GeoTools. Fue promovido por TOPP (_The Open Planning Project). Destaca entre otros aspectos por el soporte para el protocolo WFS-T convirtiéndose en no sólo un servidor de cartografía sino en un intermediario para la edición remota de información geográfica mediante estándares. Es muy interesante además el proyecto de WFS versionado, que supone una propuesta para conseguir el versionado real de ediciones en la cartografía.

En la versión 1.6 se incorporó un framework de seguridad llamado ACEGI, mejoras de rendimiento, integración con OpenLayers (ver más adelante), etc. Actualmente este proyecto está ya en la versión 1.7 en la que de nuevo se han realizado mejoras de rendimiento, corrección de errores, etiquetado, etc.

deegree

Este servidor de mapas nació como un proyecto del Departamento de Geografía de la Universidad de Bonn, fundándose posteriormente la empresa lat/lon GmbH, que además de continuar con la evolución del proyecto, presta servicios comerciales alrededor de esta plataforma.

deegree es una infraestructura de componentes Java que se puede desplegar sobre cualquier servidor conforme a la especificación J2EE, ofreciendo un completo conjunto de capacidades geoespaciales. deegree destaca por el elevado número de especificaciones OGC que afirma cumplir, entre los que destacan WMS, WFS(-T), WCS, CSW, WPS, SOS, etc.

Las características más destacables de deegree son las siguientes:

  • Elevada capacidad de configuración y adaptación.
  • Instalación y configuración complejas y nada "amistosas".
  • Buen rendimiento comparado con otros servidores J2EE.
  • Amplio abanico de estándares OGC (aunque no siempre 100% conformes).
  • Comunidad de desarrollo no demasiado abierta, aunque con intención de mejorar este aspecto. Prueba de ello es su incorporación como proyecto incubado en OSGeo.

En el último año se ha lanzado la versión 2.1 ofreciendo soporte a nuevos protocolos como CityGML y WTS, una nueva biblioteca de proyecciones 100% java y una nueva herramienta gráfica de configuración para los servicios WMS, WFS.

La versión en desarrollo (2.2) añade soporte para WPS, siendo uno de los pocos servidores de mapas que también soportan el servicio de procesos.

MapGuide Open Source

Autodesk liberó este servidor de mapas en 2006 como su mayor aportación a la creación de la fundación OSGeo. Dispone de un sistema de publicación en web que lo hace fácil de configurar y administrar y dispone de herramientas comerciales para la publicación desde AutoCAD.

Hace uso de la también liberada biblioteca FDO para el acceso a datos de todo tipo (shapefiles, ArcSDE, Oracle, etc.) y al igual que MapGuide se ofrecen con la licencia LGPL que permite realizar proyectos cerrados sobre esta plataforma.

Recientemente se ha unido a este proyecto un desarrollo de la empresa canadiense DM Solutions llamado Fusion que permite a un administrador web configurar una aplicación de webmapping componiendo componentes (widgets) de forma sencilla.

Tile Cache

Desarrollador por MetaCarta (los creadores de OpenLayers) se puede entender como un middleware o un software de servidor intermedio que permite cachear peticiones a servidores de mapas WMS de forma que los clientes reciben teselas (tiles) para ser visualizadas sin tener que ir directamente al origen de datos. Se podría decir que con TileCache el rendimiento de los servicios WMS se incrementa uno o dos órdenes de magnitud. El inconveniente de TileCache es que hay pocos clientes que utilicen esta forma de obtener cartografía, restringiéndose en la mayoría de los casos a OpenLayers, aunque también puede tener como cliente al visor 3D Nasa World Wind (se describirá más adelante).

TileCache nació como un prototipo o prueba de concepto para testear las capacidades de esta forma de recuperar cartografía en la web, intentando acercar la experiencia de usuario de estos sistemas a otros como los populares Google Maps o Yahoo Maps.

Fruto de un proyecto del Google Summer of Code en 2007 se portó este software a Java con el nombre de GeoWebCache, aunque con menos funcionalidades, tiene la ventaja de que al ser una aplicación J2EE es fácilmente integrable en entornos empresariales donde se utilice el stack de aplicaciones Java. Actualmente GeoWebCache se distribuye tanto como aplicación web independiente como integrada con GeoServer.

FeatureServer

Se trata de un software de servidor bastante diferente del resto de aplicaciones. Ofrece una aproximación al servicio de geometrías vectoriales muy diferente a la propuesta por OGC, aunque es compatible con WFS. Hace uso de tecnologías REST para solicitar geometrías o para modificar las que hay en el servidor. De esta forma se convierte en un servidor de geometrías muy flexible que permite realizar edición on-line de forma sencilla. Al igual que TileCache, es una propuesta de MetaCarta que se integra perfectamente con OpenLayers como «consumidor» de las geometrías servidas por este producto.

Herramientas de metadatos

Un servidor de catálogo es una aplicación que permite publicar en una red (generalmente Internet) un conjunto de metadatos sobre diferentes conjuntos de datos. En el contexto de la geomática, estos datos serán diferentes tipos de información geográfica: capas vectoriales y raster, mapas digitalizados e incluso mapas o fotografías aéreas en formato analógico. Este catálogo se "expone" como un portal que permite hacer búsquedas mediante diferentes criterios tanto alfanuméricos como espaciales. Hasta hace poco, no se disponía de ningún estándar internacional para la generación de dichos metadatos quedando a decisión de la organización utilizar algunas propuestas como Dublin Core o el formato del FGDC americano. Hoy en día ya se cuenta con estándares internacionales como las ISO 191**, especialmente las ISO 19115 e ISO 19139.

En este apartado, como herramienta del lado del servidor sólo se puede mencionar GeoNetwork como producto independiente de gestión de metadatos. En cualquier caso deegree también puede ser utilizado como servidor de metadatos aunque debido a la dificultad de su configuración es una opción mucho menos implementada que GeoNetwork.

GeoNetwork OpenSource

Este proyecto, financiado por la FAO (Food and Agriculture Organization) de las Naciones Unidas se ha convertido en la aplicación de referencia para la publicación de metadatos de información geográfica. Es una aplicación J2EE que dispone tanto de una versión para "producción" como una versión de pruebas orientada a trabajar en un PC de escritorio normal (utilizando un contenedor de servlets muy ligero llamado Jetty.

Mediante una interfaz web amigable, el administrador puede gestionar los metadatos, darlos de alta, importar y exportar, etc. Dispone de un visor web que permite visualizar en el mismo geoportal los servicios WMS y ArcIMS que se encuentren en el catálogo, o bien miniaturas de los mapas y demás orígenes de datos geográficos catalogados.

GeoNetwork 2.2 dispone de una interfaz amigable utilizando tecnologías AJAX, soporte para clientes que implementen el protocolo Open Search, así como soporte a Open Archive Initiative. Se incluye además una versión de GeoServer con datos de ejemplo y una herramienta de escritorio para facilitar algunas tareas de administración.

CatMDEdit

CatMDEdit es una herramienta de escritorio que permite la creación y edición de metadatos, conforme a los estándares ISO 19115, el Núcleo Español de Metadatos (NEM)1, Dublin Core y CSDGM (Content Standard for Digital Geospatial Metadata).

CatMDEdit fue desarrollado por el consorcio español TeiDE, formado por la unión de tres Grupos de Trabajo de tres Universidades:

  • Grupo MERCATOR de Tecnologías de la Geoinformación de la Universidad Politécnica de Madrid.
  • Grupo de Sistemas de Información Avanzados (IAAA) de la Universidad de Zaragoza.
  • Grupo de Información Geográfica de la Universidad Jaume I de Castellón.

Actualmente esta herramienta es mantenida por la empresa GeoSLab y la Universidad de Zaragoza (Grupo de Sistemas de Información Avanzados). Está muy difundida, especial aunque no únicamente en el ámbito español. Recientemente se ha lanzado la versión 4.0 de CatMDEdit, que incorpora las últimas actualizaciones de los estándares ISO, reestructuración de la interfaz gráfica y compatibilidad con GeoNetwork entre otras muchas novedades.

Proyectos del lado del cliente

Clientes pesados o de escritorio

Tradicionalmente las aplicaciones de escritorio han sido los grandes representantes de las herramientas para la gestión de los Sistemas de Información Geográfica y de hecho es muy común confundirlas como las únicas. Estas aplicaciones permiten la manipulación de información geográfica de todo tipo, así como su edición, análisis y explotación. Existen muchos proyectos FOSS para este tipo de herramientas, se comentan aquí los más significativos.

gvSIG

Esta aplicación nace como una parte más del proyecto de migración a tecnologías abiertas gvPONTIS puesto en marcha por parte de la Conselleria d'Infrastructures i Transports de la Generalitat Valenciana.

Actualmente, en paralelo a una gran actividad de desarrollo, se ha iniciado un proceso de mayor apertura hacia la comunidad, con una mejora de la documentación técnica para desarrolladores y un sistema de control de versiones público donde los usuarios puedan obtener el código fuente actualizado del producto.

Muy brevemente, gvSIG se posiciona como un potente visor (2D y 3D) de cartografía tanto local como remota (destacando en el soporte a estándares OGC) así como una herramienta de publicación de cartografía tanto en papel como en servidores de mapas, y por último contando con gran variedad de herramientas de análisis tanto vectorial como raster. A esto cabe añadir las funcionalidades de análisis aportadas por SEXTANTE.

Por último, el proyecto además del producto principal para escritorio, ha lanzado una versión para dispositivos móviles llamada gvSIG Mobile que permite realizar trabajos relacionados con la visutalización y edición de cartografía en campo utilizando ordenadores de mano o smartphones.

GRASS

Este proyecto es el más veterano de entre todos los expuestos en este texto. Es realmente anterior al nacimiento del FOSS ya que surgió como un proyecto del ejercito norteamericano, más concretamente del Construction Engineering Research Laboratory(CERL) que comenzó el proyecto ante la necesidad de gestionar la gran cantidad de recursos naturales a cargo del ejército en los Estados Unidos.

Se trata de un software que aunque ya tiene bastantes años sigue de actualidad por su continuo desarrollo, aunque principalmente orientado a ambientes académicos. Esto se debe a varias causas, por un lado hasta hace bien poco sólo podía utilizarse en entornos UNIX y por otro lado su interfaz de usuario es poco "amigable" con usuarios noveles (se podría asemejar a la interfaz de ArcINFO Workstation).

Esto ha cambiado en parte hace poco debido a que QGis ha añadido las funcionalidades de GRASS en forma de extensión tanto en su versión Windows como en Linux. Esto convierte a QGis como un verdadero interfaz de usuario básico para GRASS.

La nueva versión 6.3 de GRASS incorpora un mejorado soporte de redes tanto 2D como 3D, con un nuevo interfaz gráfico, mejoras en el visor 3D tanto de geometrías vectoriales como de datos raster (voxels). Se está trabajando también en enlaces hacia otros lenguajes para permitir utilizar GRASS como un componente GIS «trasero» para desarrollos realizados en Python o Perl.

MapWindow

Este proyecto promovido por la Universidad de Idaho es tanto una aplicación de escritorio para la visualización y análisis de información geográfica como una API con un control ActiveX para realizar aplicaciones específicas. Está orientado al desarrollo en la plataforma .Net para Windows. Se distribuye bajo la licencia Mozilla 1.1 y por tanto puede utilizarse tanto en proyectos abiertos como cerrados.

La aplicación de escritorio, como es habitual en proyectos FOSS facilita la adición de funcionalidad a través de extensiones o plugins.

Durante el último año, el proyecto no ha adquirido nuevas características pero se han corregido multitud de errores y mejorado la documentación y la internacionalización del proyecto.

Quantum GIS

QGis pretende ofrecer a usuarios con necesidades básicas un entorno sencillo y agradable. Programado con la biblioteca de interfaz de usuario QT, durante bastante tiempo fue el único editor PostGIS para Windows y destaca por su sencillez y velocidad. Se presenta además como un interfaz "amigable" para trabajar con bases de datos GRASS. Es posible abordar no sólo operaciones de visualización sino también de análisis tanto raster como vectorial incluso en Windows. En este último caso se dispone de las funcionalidades de GRASS compiladas nativamente (sin emulación) para Windows por primera vez.

Recientemente se ha lanzado la versión 1.0 destacando la inclusión de enlaces para poder programar en Python y nuevas herramientas de GRASS.

SAGA

Esta herramienta se ha desarrollado principalmente en Gottingen, Alemania. Se trata de un GIS de escritorio para Windows y Linux con una clara separación entre su interfaz de programación (API) y su interfaz de usuario. De hecho la primera tiene una licencia LGPL y la segunda es GPL. Esto permite realizar módulos "cerrados" sin incumplir ninguna licencia. En la nueva versión de SAGA (2.0) se ha reescrito la interfaz de usuario para poder ser ejecutado en diferentes plataformas con lo que ya no es un producto exclusivo para usuarios de Windows.

Este software destaca por su orientación a la realización de análisis de imágenes y modelos digitales del terreno especialmente.

Open JUMP

JUMP (Java Unified Mapping Platform) fue uno de los primeros proyectos de cliente GIS de escritorio en el lenguaje Java. Destaca por hacer uso de la biblioteca JTS para poder realizar algunas operaciones de análisis espacial, así como el soporte del formato GML y el protocolo WMS desde sus aparición.

Este proyecto fue liderado por Vivid Solutionspero dada la política de aceptación de contribuciones externas por parte de la empresa motivó la aparición de un nuevo proyecto derivado (llamado fork en el ámbito FOSS) conocido como The JUMP Pilot Project(JPP) que pretende coordinar de forma más democrática las contribuciones de diferentes equipos de desarrollo para evitar duplicidad de esfuerzos.

Esto último es especialmente importante, ya que es destacable la cantidad de proyectos derivados que han surgido a partir de él: DeeJUMP, PirolJUMP, SkyJUMP, Open JUMP Viatoris,... En el wiki de OpenJUMPse pueden ver más detalles sobre la "familia" de proyectos basados en Open JUMP. En España destaca el proyecto Kosmo, desarrollado por la empresa SAIG, que pretende incorporar a la plataforma JUMP otros desarrollos de interés realizados en otros proyectos.

OSSIM

Proyecto no muy conocido, nacido hace más de 10 años en el ámbito de los programas de inteligencia y defensa americanos, está dedicado especialmente al análisis de imágenes raster. Se compone tanto de bibliotecas como de herramientas de consola y gráficas por lo que se puede considerar una verdadera tecnología sobre la que se han construido diversos tipos de aplicaciones como el proyecto Minerva

El desarrollo actual se centra especialmente en OSSIM Planet, un visor 3D que permite la publicación de información tridimensional de forma colaborativa y distribuida.

OrbisGIS

OrbisGIS es un proyecto reciente, impulsado por el Instituto de Ciencias y Técnicas de la Ciudad (IRSTV) francés con la intención de ofrecer una herramienta de análisis potente y versátil. La aplicación está enfocada principalmente a desarrolladores e investigadores con un alto perfil técnico, ya que ofrece una consola de programación y consulta (SQL) en la propia interfaz de usuario, capaz de realizar consultas tanto a orígenes de datos vectoriales como orígenes de datos raster.

uDig

Este proyecto nace, al igual que JUMP bajo la financiación del proyecto para la Infraestructura de Datos Espaciales de Canadá, Geoconnections.Ha sido desarrollado por la empresa canadiense Refractions Research Incen el lenguaje Java sobre la plataforma para desarrollo de aplicaciones RCP proporcionada por el proyecto Eclipse. Tiene como principal objetivo ofrecer un cliente de escritorio que soporte el mayor número de fuentes de datos tanto locales como remotas y especialmente las basadas en protocolos OGC como WMS y WFS.

Con un avance no muy rápido, recientemente se han añadido soporte para el lenguaje de consultas CQL, corrección de errores, mejoras en la interfaz, soporte para Mac OS X Leopard, creación de capas «en memoria» (scratch layers). La versión 1.1 fue lanzada finalmente tras 14 versiones candidatas. Recientemente uDig está ganando en funcionalidad gracias a que está estableciendo colaboraciones con otros proyectos con los que unir esfuerzos como JGrass o SEXTANTE.

World Wind

Proyecto FOSS de visualización 3D promovido por NASA y homólogo a Google Earth pero con una orientación mucho más "científica" que éste. La licencia con la que se distribuye es específica de NASA, que aproximadamente se puede asimilar a LGPL.

Aunque no dispone de la cartografía de Google Earth, mediante un plugin se puede adquirir la cartografía servida por Microsoft Live. Se trata en definitiva de una aplicación orientada a la visualización de información de todo tipo (también información temporal) de forma atractiva para usuarios finales, aunque efectivamente no ha tenido el éxito del globo de Google.

Aunque la versión inicial se escribió en C# (y por tanto sólo funcionaba en Windows), durante 2007 se ha lanzado un nuevo kit de desarrollo (SDK) para el lenguaje de programación Java que permite realizar aplicaciones de visualización de información geográfica en 3D de forma realmente sencilla, utilizando la tecnología de WorldWind como soporte. Este nuevo desarrollo permite utilizar WorldWind en todo tipo de plataformas convirtiéndolo más bien en una biblioteca sobre la que poco a poco van apareciendo soluciones específicas.

Clientes ligeros

Con la proliferación de Internet, la aparición de los servidores de mapas se produjo de forma conjunta a la de aplicaciones web que exponían los contenidos servidos por estos productos. Al principio la mayor parte de ellas se materializaban como desarrollos ex profeso y por tanto se resolvían los mismos problemas una y otra vez.

Esta situación derivó como es natural hacia proyectos que intentan proporcionar un conjunto de componentes comunes en general en forma de documentos HTML y aplicaciones escritas en JavaScript que proporcionan al desarrollador una base sobre la que realizar su aplicación específica. También han ido apareciendo proyectos que se basan en mayor o menor medida en código de servidor, básicamente PHP o Java.

Algunos proyectos han surgido como complemento al servidor de mapas UMN MapServer, estando íntimamente ligados a él y funcionando solamente de forma integrada con UMN MapServer. Dada la diversificación de los servidores de mapas esta dependencia está desapareciendo de los clientes.

Durante el último año, cabe destacar la convergencia de muchos de estos proyectos, compartiendo componentes entre ellos. De este modo, proyectos como Ka-Map, MapBuilder o MapBender están integrando (o analizando) Open Layers para ofrecer funcionalidades al estilo de google maps. Esta situación ha derivado en la descontinuación del proyecto MapBuilder, por ejemplo.

OpenLayers

OpenLayers es un cliente Web-GIS ligero construido con clases de JavaScript, sin dependencia de servidores de mapas concretos. Ofrece un interfaz de usuario simplificado que ataca a servicios WMS y WFS de forma transparente para el usuario y desarrollador. Las características por las que destacó OpenLayers en su difusión en la comunidad es la simplicidad de uso, el soporte de tiles y caché y el acceso a los mapas de Google Maps y Yahoo Maps.

Actualmente la comunidad de desarrolladores de Open Layers es una de las más activas de los proyectos de SIG libre, a pesar de contar con un grupo de desarrolladores no muy numeroso.

Fue desarrollado inicialmente por la compañía estadounidense MetaCarta, siendo liberado posteriormente. Actualmente lo promueven además de MetaCarta, Schuyler Erle, OpenGeo y camptocamp.

Ka-Map

API programada en JavaScript principalmente con algunos componentes que deben alojarse en el servidor escritos en PHP para aprovechar las funcionalidades del servidor de mapas UMN MapServer (conocido como MapScript).

Esta biblioteca permite generar aplicaciones que hacen uso intensivo del teselado (tiling) de la cartografía así como de tecnologías asíncronas que aceleran enormemente la carga de los mapas. Cabe destacar la posibilidad de utilizar precache en el servidor contra MapServer, basándose en un conjunto finito de niveles de escala y teselado, convirtiendo el acceso a mapas en un acceso a ficheros ya existentes (al igual que sucede en Google Maps).

Ka-Map fue desarrollado inicialmente por DM Solutions, que es una de las principales organizaciones desarrolladoras de UMN MapServer, como complemento a este servidor de mapas, incorporándose posteriormente Ominiverdi.

Los desarrolladores de Ka-Map colaboran en otros proyectos, principalmente OpenLayers, con quien se está en proceso de fusión para utilizar sus componentes de mapas JavaScript en lo que será Ka-Map 2.0.

Durante el último año destaca la creación de un nuevo interfaz de usuario, un interfaz experimental WPS y autenticación de usuario.

Mapbender

Cliente Web-GIS construido con JavaScript, que ofrece un interfaz de usuario configurable no dependiente de ningún servidor de mapas concreto. Su orientación es la de un geoportal cliente de servicios OGC. Actualmente soporta servicios WMS, WFS(-T) y WMC. Incluye un soporte bastante completo de usuarios, grupos y servicios OGC (OWS). Una característica diferenciadora de Mapbender es la capacidad de edición en cliente sobre navegador, utilizando WFS-T.

Ha sido desarrollado por un conjunto de programadores y empresas que se han aglutinado en gran medida alrededor de la organización WhereGroup, ubicada en Bonn, Alemania. El líder del proyecto (Arnulf Christl) es actualmente presidente y miembro del Consejo de Dirección de OSGeo, del OGC Architecture Board y destacado activista FOSS4G.

Durante el último año, destaca la incorporación de soporte KML, nuevas plantillas de interfaz, mejora de WFS, FeatureEncoding, translucencia, personalización, interfaz de catálogo, módulo de búsqueda o un árbol de directorio contraíble.

También destacan los cambios en los procedimientos de publicación, documentación de código o ciclos de publicación.

MapFish

MapFish, desarrollado principalmente por CampToCamp, viene a cubrir el hueco dejado por MapBuilder (un proyecto recientemente discontinuado por su comunidad de desarrolladores), con una orientación un tanto diferente. Por un lado en realidad se trata de dos componentes uno de cliente y otro de servidor.

El componente de servidor, programado en Python, PHP o Java, se puede utilizar (no es obligatorio) para tareas de impresión y edición de la cartografía entre otras (dependiendo de la implementación).

Pero donde MapFish destaca es en su vertiente de cliente. El proyecto trata de integrar OpenLayers con la biblioteca de componentes para JavaScript llamada ExtJS. De este modo, se pueden crear aplicaciones mucho más ricas en interfaz que las realizadas con OpenLayers hasta el momento. Parece que se van a separar por completo los dos componentes, y el cliente se relanzará como proyecto nuevo con el nombre GeoExtJS.

Bibliotecas de componentes

JTS (y ports)

Java Topology Suite (JTS) es una biblioteca que proporciona soporte a funciones topológicas 2D, cumpliendo la especificación Simple Features Specification for SQL de OpenGIS. JTS se utiliza en un gran número de proyectos GIS basados en Java, como JUMP, gvSIG, Geotools, GeoServer, ... por lo que se ha constituido en un proyecto de referencia en el mundo Java-GIS en lo que a operaciones de creación, validación, integración o consulta de topología se refiere.

Una de las características relevantes de JTS es que ofrece operadores (funciones) y predicados espaciales de forma robusta (se garantiza numéricamente la respuesta correcta). Los operadores espaciales permiten realizar funciones espaciales entre dos geometrías devolviendo nuevas geometrías (Buffer(), Union(), ...); los predicados espaciales ofrecen respuestas booleanas a preguntas relacionadas con la topología de geometrías (Intersects(), Touches(), ...).

JTS viene siendo desarrollado por Vivid Solutions en paralelo con otro proyecto relacionado, JCS (Java Conflation Suite), que es un API para la combinación de dos datasets geospaciales en uno con poca intervención manual.

Al estar desarrollado 100% en Java, JTS ha sido portado a otros entornos para poder ser utilizado fácilmente desde otros lenguajes de programación. Destaca el proyecto GEOS (Geometry Engine - Open Source), resultado de la migración de JTS a C++, utilizado (hasta el momento) en proyectos como PostGIS o GRASS. Este proyecto además recientemente se ha unido a la fundación OSGeo y por tanto se encuentra en incubación.

Otro port bastante difundido es el dirigido a .NET, conocido como NTS (.NET Topology Suite). Existe también otro port de JTS a .NET, conocido como GeoTools.NET, que no es (como algunas veces se asegura) un port del proyecto GeoTools.

JTS fue financiado por diversos organismos públicos canadienses, destacando el programa GeoConnections (para apoyar la expansión de la IDE canadiense -CGDI-). Fue desarrollado inicialmente por Vivid Solutions (al igual que JUMP).

GDAL/OGR

Geospatial Data Abstraction Library (GDAL) es una biblioteca y un conjunto de utilidades de línea de comandos para la traducción de formatos ráster geoespaciales, desarrollada en C++ y soportada en una amplia gama de plataformas (Linux, Windows, MacOS X y Windows CE -en menor medida-).

Actualmente GDAL es la bilioteca de acceso a datos geospaciales ráster referente en el panorama FOSS, siendo utilizada por un enorme abanico de proyectos (MapServer, gvSIG, GRASS, QGIS, ...).

GDAL es un proyecto que contiene un subproyecto conocido como OGR. OGR Simple Features Library es una biblioteca de acceso y un conjunto de utilidades de línea de comandos para acceso de lectura (y en algunas ocasiones de escritura) a formatos de ficheros vectoriales.

GDAL/OGR nace del resultado del esfuerzo personal de Frank Warmerdam, que ha ido enriqueciendo la biblioteca básicamente con sucesivas financiaciones y aportaciones variadas. Lógicamente, GDAL/OGR ha pasado a formar parte de OSGeo, siendo ya un proyecto graduado, pasando del modelo conocido como dictador benevolente a un proyecto con un comité de dirección. Tanto GDAL como OGR son proyectos bastante activos que van incorporando nuevas características de manera continua. Con el paso a OSGeo, se ha conseguido despersonalizar esta biblioteca para conformar una comunidad abierta con órganos de decisión en consecuencia.

Destaca la fuerte interrelación con proyectos como MapServer (con los que se comparten desarrolladores), así como con GRASS o QGIS. También se puede resaltar la utilización de GDAL en proyectos como gvSIG, OSSIM, MapGuide/FDO, GeoTools, PostGIS, GEOS. Motivado por la licencia que presenta, GDAL es utilizado actualmente por los principales productos GIS propietarios.

Proj.4

PROJ4 es una biblioteca de gestión de proyecciones cartográficas surgida como una reprogramación de antiguas utilidades del USGS (United States Geological Service), implementada en C por Gerald Evenden en 1990 para este organismo. PROJ4 se utiliza fundamentalmente para funciones de reproyección entre diferentes sistemas de coordenadas o referencia.

PROJ.4 es una biblioteca de referencia dentro del panorama FOSS para sistemas de información geográfica, siendo el motor de reproyección de los principales proyectos existentes (GDAL, MapServer, PostGIS, gvSIG, GRASS, GeoTools, etc.).

Actualmente esta biblioteca está mantenida principalmente por Frank Warmerdam, responsable también de GDAL/OGR, ya que a pesar de que Gerald Evenden continúa ligado al proyecto desde el punto de vista cartográfico, no participa en el desarrollo de código. G. Evenden mantiene una versión simplificada bajo el proyecto libproj4.

PROJ4 se mantiene bastante estable, a lo largo del último año se ha limitado a corrección de bugs, y la adición de un par de nuevas proyecciones y mejoras en desplazamientos de datum.

GeoTools

GeoTools es una biblioteca Java para la manipulación de información geospacial, dirigido a ser utilizado en otras aplicaciones Java tanto servidoras como clientes. No se trata por lo tanto de una aplicación final de usuario, sino de los componentes básicos para construirlas. Ofrece acceso a numerosos formatos de datos vectoriales (Shapefiles, PostGIS, MySQL, Oracle, ArcSDE, Geomedia, ...) y ráster (GeoTIFF, ArcGrid, ...), así como el cumplimiento de varias especificaciones OpenGIS (WFS, SLD, Filter Encoding, ...).

GeoTools está colaborando con el proyecto GeoAPI para implementar los interfaces definidos en este proyecto.

GeoTools es la base de otros proyectos, destacando principalmente GeoServer y uDIG. El proyecto presenta un modelo de desarrollo muy abierto, los líderes del desarrollo (un comité de dirección del proyecto) colaboran activamente en otros proyectos relacionados: GeoServer, uDIG, GeoAPI (orientado a ofrecer interfaces de acceso basadas en estándares ISO/OGC de modelos de geometrías) o GeoWidgets (creación de widgets o componentes de usuario para aplicaciones GIS, independientes del toolkit gráfico).

GeoTools es un proyecto con más de 10 años de existencia; surgido a partir de un proyecto embrionario de la Universidad de Leeds, ha evolucionado hacia un proyecto abierto, habiéndose integrado en OSGeo.

Las mejoras recientes más destacables son la adición del modelo de geometrías simple y filtros de GeoAPI, CQL (Common Query Language), integración con OpenOffice, soporte Raster, NetCDF, DB2 o MrSID y la creación de widgets Swing.

Batik

Batik es una biblioteca Java que ofrece soporte para el manejo de datos SVG (Scalable Vector Graphics). No se trata por tanto de una biblioteca exclusiva de SIG, pero dada la amplia utilización de SVG como formato para cartografía vectorial, es muy utilizada por todo tipo de proyectos SIG, tanto bibliotecas (GeoTools) como productos de escritorio (gvSIG, Jump, ...) o servidores (deegree, GeoServer,...). Batik permite utilizar datos SVG para visualización, generación o manipulación.

Batik es un subproyecto del proyecto Apache XML Graphics, junto con Apache FOP y Apache XML Graphics Commons, subproyectos que suelen ser utilizados conjuntamente con Batik. De hecho se comparten desarrolladores entre los diferentes subproyectos.

Durante el último año, básicamente se han corregido bugs y se ha añadido soporte parcial de SVG 1.2 (en Batik 2.0 se espera tenerlo completo).

WKB4J

Es una biblioteca muy específica para la lectura de información en formato WKB (Well-Known Binary) de un origen de datos y traducirlo a un modelo de geometrías basadas en objetos Java. Su uso más habitual es el parseo de información desde PostGIS, ya que es mucho más rápido que el parseo de WKT (Well-Kown Text). Permite la traducción hacia JTS, PostGIS Java y OpenMap.

El proyecto está muy parado, pero su utilización por parte de otros proyectos no decae.

FDO

FDO es el otro gran proyecto aportado por Autodesk al unirse al mundo del software libre. Se trata de una biblioteca de acceso a datos vectoriales y raster utilizada por MapGuide Open Source. Coincide en objetivos con la biblioteca OGR al pretender establecer una capa de abstracción sobre diferentes formatos de datos. Dispone de diferentes providers como ArcSDE, Oracle (en la versión de pago) o incluso la propia GDAL. Al igual que MapGuide, se distribuye bajo LGPL. Escrita en C++, funciona tanto en Windows como en Linux.

Actualmente FDO, además de Autodesk, está promovido por una comunidad externa a esta compañía.

MonoGIS

Proyecto español promovido por la empresa TAO (ahora T-Systems). Se construye aprovechando algunos de los proyectos FOSS más relevantes del panorama .NET como Geotools.NET, Net Topology Suite y OGR/GDAL. En la actualidad está disponible el API de desarrollo y un servidor WMS. Se distribuye bajo una licencia LGPL.

Como su nombre indica, se ha desarrollado sobre la plataforma Mono, la versión libre de la plataforma .Net y por tanto puede funcionar tanto en Windows como en Linux.

Esta biblioteca está siendo utilizada por un proyecto aparentemente en abandono llamado Appomattox para construir una aplicación de escritorio orientada especialmente al escritorio Gnome de Linux, aunque puede funcionar en Windows.

Conclusiones

A lo largo de este texto se han revisado los proyectos más importantes en la actualidad dentro del panorama de aplicaciones libres para la geomática, tanto aquellas que funcionan en el lado del servidor como las que consumen sus servicios como clientes ligeros y pesados.

Se puede apreciar que el panorama es amplio y variado. Existen proyectos maduros y consagrados pero que siguen en continuo desarrollo, así como nuevos proyectos que vienen a cubrir nichos no abordados anteriormente y otros que se abandonan en favor de revitalizar otros proyectos.

Esta diversidad refleja que existe espacio para la innovación, sin dejar de lado la solidez para poder afrontar cualquier necesidad, en ámbitos de la mayor exigencia. No hay más que ver los casos de éxito de implantación de muchas de las soluciones propuestas en este artículo para darse cuenta de que el software libre para la geomática es una realidad no sólo en el ámbito amateur o universitario sino también en el empresarial y el de la administración pública.


Relaciones entre proyectos FOSS4G

Como se puede ver en la figura anterior, algunos proyectos son clave en el panorama FOSS4G, como GDAL o GeoTools ya que son utilizados por muchas de las aplicaciones tanto de escritorio como de servidor. Por otro lado, y aunque se puede decir que existen lo que se conocen como tribus relacionadas con los lenguajes de programación (principalmente C y Java) esto no excluyen interesantes interacciones entre proyectos en ambos lenguajes, surgidas principalmente por la madurez y contrastada eficiencia de algunos de ellos, llevando a los equipos de desarrollo a hacer el esfuerzo de compatibilizar componentes en ambos lenguajes para conseguir más prestaciones en sus aplicaciones.

  • No labels