Este artículo pretende analizar cuáles son los principales lenguajes de programación GIS hoy en día.
Características como la popularidad del lenguaje de programación, sus aplicaciones reales, la curva de aprendizaje y el soporte que tenga son factores clave a considerar en este tipo de ranking.
La programación GIS es indispensable para realizar análisis geoespaciales complejos, integrar software y datos, compartir y visualizar información espacial en la web e incluso para desarrollar herramientas específicas y especializadas para propósitos determinados.
En esencia, tener conocimientos de lenguajes de programación GIS es fundamental hoy en día.
La importancia de la programación GIS
El mundo de la programación es complejo a la vez que dinámico, ya que se encuentra en constante cambio, adaptación y evolución para poder dar respuesta a las necesidades de múltiples sectores profesionales.
En el sector geoespacial esto no es una excepción. Debido a su polifacética aproximación, existen multitud de soluciones, aplicaciones y funcionalidades que pueden encuadrarse dentro de lo que se podría denominar como desarrollo o programación GIS.
La captura, gestión, análisis, explotación y visualización de la información geográfica digital son procesos fundamentales que requieren de una serie de necesidades tecnológicas distintas.
En muchos casos, diversas tecnologías y lenguajes de programación resultan ser complementarios y forman parte integral de alguno de los procesos descritos y, por ello, se convierten en imprescindibles.
A continuación, se muestra un listado de los lenguajes de programación más populares y utilizados en proyectos GIS y el sector geoespacial.
Lenguajes de programación para GIS
SQL
El lenguaje SQL (de Structured Query Language) o lenguaje estructurado de consultas, es sin duda el primer lenguaje de programación que deberías aprender al trabajar con GIS. Forma parte integral e indispensable del uso de las bases de datos, también espaciales.
Este lenguaje de consulta fue desarrollado por la empresa IBM en los años 70 y su uso está altamente expandido. De hecho, es el lenguaje de manipulación de datos más popular hoy en día.
Prácticamente todos los Sistemas Gestores de Bases de Datos tienen soporte para este lenguaje, entre otros: MySQL, PostgreSQL, Oracle, SQLite, MariaDB, Microsoft SQL Server… Incluso dentro de los clientes GIS de escritorio más populares pueden realizarse consultas SQL para seleccionar datos, manipular o modificar información geográfica.
SQL es probablemente el lenguaje de programación GIS que primero deberías aprender, ya que sin él será imposible almacenar, gestionar, actualizar o consultar adecuadamente la información geográfica que forme parte de las soluciones GIS que integre.
El gestor de bases de datos SQL más potente y utilizado en proyectos GIS es PostgreSQL junto con la extensión espacial PostGIS. Puedes ampliar información en este artículo acerca de qué es PostGIS y sus principales características.
Se trata, en general, de un lenguaje sencillo debido a su corta y sencilla gramática que resulta relativamente fácil de aprender. De hecho, con SQL vas a indicar qué acciones quieres realizar sobre la base de datos y los registros que ésta contiene.
No obstante, con SQL también se pueden llegar a realizar consultas complejas sobre nuestros datos (sean espaciales o no) almacenados en una base de datos relacional y operar con ellos para obtener análisis en profundidad.
Python
Python es el lenguaje de programación GIS más popular hoy en día.
Se trata de un lenguaje de alto nivel cuya sintaxis es fácilmente legible (cosa que facilita su aprendizaje y lectura) y que está orientado a objetos.
La programación orientada a objetos es un paradigma de programación donde cada elemento o entidad se trata como un objeto definido mediante “etiquetas” y al cual se le pueden atribuir características definitorias o incluir bajo clases determinadas.
Sus principales aplicaciones son el desarrollo de scripts para automatización de tareas, el análisis y la visualización de datos y como parte fundamental del desarrollo web en la parte del servidor.
Python es un lenguaje muy popular que ha adquirido un papel preponderante a lo largo de los últimos años dentro del mundo de la programación por su versatilidad, facilidad de aprendizaje y por la irrupción del Big Data y el Data Science donde adquiere un rendimiento indiscutible.
Existen multitud de librerías que extienden su funcionalidad y eso ha permitido aumentar su uso de forma exponencial.
Python ha sido adoptado e integrado como lenguaje de programación por los dos GIS de escritorio más populares como QGIS y también por ArcGIS mediante los respectivos módulos PyQGIS y ArcPy.
Echa un vistazo a nuestro artículo acerca de cómo crear mapas con Python para visualización y análisis de datos espaciales.
Además, Python también se utiliza en la programación web, más precisamente en el desarrollo de la parte de servidor o backend. Se utiliza frecuentemente en la construcción de API REST para la comunicación entre el cliente web y la base de datos.
JavaScript
JavaScript es el lenguaje de programación para entornos web por excelencia.
La unión de HTML, CSS y JavaScript es imprescindible para adentrarse en el diseño y la programación de páginas y aplicaciones web.
De forma breve, JavaScript permite dotar de funcionalidad e interacción con el usuario en navegadores web y a su vez permite comunicarse con el servidor. Por ello, es la solución ideal para implementar en proyectos de web mapping donde la interacción y la navegación son esenciales.
Para facilitar su implementación y el desarrollo de visores de mapas web, existen multitud de librerías específicas para tal fin como OpenLayers, Leaflet, CARTO… entre muchas otras.
En este otro artículo puedes obtener información detallada acerca de las principales plataformas y librerías JavaScript para web mapping.
JavaScript, además, puede extenderse al entorno servidor mediante el cada vez más popular Node.js, por lo que su uso no se restringe exclusivamente al frontend o la parte cliente de cualquier aplicación.
Por todo ello, JavaScript es un lenguaje obligatorio si quieres realizar proyectos web además de ser relativamente fácil de aprender y tener la capacidad de ofrecer una infinidad de opciones.
Java
No nos confundamos: Java poco tiene que ver con JavaScript. Lo cierto es que este lenguaje de programación es algo más complejo que los anteriores y su curva de aprendizaje es notablemente más difícil.
Sin embargo, se trata de un lenguaje altamente implementado y muy popular debido a su gran flexibilidad, conteniendo multitud de APIs disponibles, extensiones y una gigantesca comunidad detrás.
Java se utiliza principalmente en el backend o el entorno servidor de muchas aplicaciones GIS. De hecho, Geoserver, el popular servidor de mapas para aplicaciones web está construido sobre este lenguaje.
Recomendamos que Java, a no ser que lo conozcas previamente, lo dejes apartado momentáneamente para centrarte en otros lenguajes más sencillos. Sin embargo, no deberías perderlo de vista pues es una opción muy interesante que puede que termines necesitando en un momento u otro.
R
El lenguaje de programación R se sitúa en otro escenario distinto a los anteriores. Su capacidad y principal propósito es el análisis, el procesado y la visualización de datos desde un punto de vista estadístico.
Su evolución es asombrosa y ha pasado de ser un lenguaje reducido al uso por parte de la comunidad científica o investigadora, a convertirse en un lenguaje tremendamente popular respaldado por una dinámica comunidad tras él. Al igual que ocurre con Python, esto es debido en parte al ascenso meteórico de la Ciencia de Datos y el Big Data.
Puedes obtener buenos ejemplos para aprender R con el siguiente listado de libros gratuitos de R para GIS y análisis de datos espaciales.
El “core” de R es relativamente pequeño. Sin embargo, existen infinidad de librerías específicamente diseñadas para dotar de mayores ventajas a este lenguaje ante distintas necesidades y sectores. Por supuesto, muchas de ellas son librerías de R orientadas a GIS en su totalidad.
El sector geoespacial no es una excepción. De hecho, R permite incorporar algunas de estas librerías que van a permitir automatizar tareas en cuanto a la gestión de información espacial. Efectivamente, R puede usarse en la práctica casi como un auténtico GIS de escritorio de gran potencialidad por su capacidad de análisis y cálculo.
Es importante destacar que R contiene aspectos de análisis espacial y visualización de datos GIS tanto de formato vectorial como ráster. Esto lo convierte en una opción nada despreciable para llevar a cabo análisis complejos, generación de gráficos, informes y vistas de mapas sencillos.
Si quieres ver un ejemplo de cómo utilizar R y sus capacidades para GIS y teledetección, puedes revisar este artículo donde mostramos cómo calcular el NDVI con R mediante ejemplos y detalles.
Además, R puede interactuar con QGIS de forma similar a como lo hace Python, otro punto más a su favor para incorporarlo a la lista de lenguajes de programación GIS imprescindibles.