El uso de Python en SIG

Curso de ArcGIS Pro | Curso de QGIS | Curso de ArcGIS 10

El uso de Python con SIG ha aumentado sustancialmente en las últimas dos décadas, particularmente con la introducción de la serie Python 2.0 en el año 2000, que incluía muchas nuevas características de programación que facilitaron mucho la implementación del lenguaje. Desde entonces, Python no sólo ha sido utilizado dentro de SIG comerciales como los productos de Esri, sino también en plataformas de código abierto, incluyendo como parte de QGIS y GRASS. De hecho, Python es hoy en día el lenguaje más utilizado por los usuarios y programadores de SIG.

Grandes empresas como Esri han adoptado Python porque es un lenguaje relativamente fácil que muchos usuarios han aceptado plenamente. [1]

Beneficios del uso de Python en SIG

El principal beneficio para Python es la reducción del comportamiento redundante. Por ejemplo, hacer análisis de múltiples vistas tomaría algún tiempo si uno sólo usara la plataforma nativa de GRASS o QGIS. Sin embargo, al integrar ciclos simples que procesan puntos de partida y reglas simples que afectan a la vista, muchas áreas pueden ser aplicadas en un solo proceso.

Además, esto ahora también abrió la posibilidad para muchos usuarios de SIG de crear programas específicos dentro de sus aplicaciones más grandes para permitir la ejecución por lotes, permitir la compilación dinámica, acceder a una amplia gama de herramientas de código abierto, la asignación fácil de memoria y otras utilidades. [2]

La mayoría de los usuarios de SIG utilizan Python como un script en lugar de aplicar sus características de estilo de programación imperativa u orientada a objetos. En otras palabras, Python se aplica a menudo para resolver problemas específicos pero limitados como parte de una aplicación o análisis más amplio. Sin embargo, el lenguaje está en constante evolución, por lo general basado en las aportaciones de la comunidad de usuarios, lo que ha sido parte de la filosofía inicial del lenguaje. [3]

Reconociendo que muchos usuarios simplemente quieren un script fácil de usar dentro de un programa, esto ha llevado a su desarrollo simplificado. De hecho, la principal ventaja de Python en relación a otros lenguajes, como C, C++, y otros lenguajes de nivel superior, es que Python es relativamente fácil de aprender, con una sintaxis que se parece más al lenguaje y las funciones humanas, con las que los usuarios a menudo tienen problemas, como la recolección de basura automatizada.

Sin embargo, Python, con sus numerosas librerías, es relativamente potente, a pesar de su fácil sintaxis, y hoy en día ha permitido la creación de nuevos tipos de aplicaciones, como SIG para dispositivos móviles, integración de funciones de mapeo con programas web, y otras áreas que requieren servicios basados en servidores y en la nube para muchas herramientas nuevas. [4]

Python permite el acceso a bibliotecas bien conocidas como Google Maps y otros programas populares de Google, por ejemplo. En efecto, Python ha permitido a una amplia gama de programadores integrar más fácilmente una variedad de software y crear herramientas de SIG y cartografía integradas con otras herramientas y dispositivos populares.

Esto ayuda a explicar en gran medida el gran crecimiento de los dispositivos móviles y otras aplicaciones que utilizan herramientas SIG y cartografía que se observa en la actualidad.

Futuro de Python en GIS

El futuro de los SIG con Python sigue siendo un reto. Por ejemplo, mientras Python 3.x ha estado en desarrollo, muchos programas han sido escritos en la serie Python 2.x, proporcionando algunos retos para que el código antiguo funcione con las versiones más nuevas de Python que han estado en desarrollo. Hay debilidades en el lenguaje. Como ejemplo, Python fue diseñado inicialmente para ser más bien un lenguaje de scripting, donde muchos programadores todavía lo aplican como tal.

El lenguaje es un lenguaje interpretado, lo que lo hace lento en comparación con C/C++, ya que la compilación no se realiza antes del tiempo de ejecución. Sin embargo, puede ser desplegado como un programa orientado a objetos, que es más típico para aplicaciones de software más grandes. El lenguaje no informa fácilmente sobre los errores dentro del código hasta que se ejecuta, lo que hace a veces más difícil corregir los errores de programación que lo que podría ser el caso en otro lenguaje.

La ocultación de información, común a muchos lenguajes, no es explícita, lo que lleva a una codificación más onerosa y extra en programadores experimentados para construir herramientas con Python que se ajusten a la sofisticación de algunos otros lenguajes. El hecho de que Python trate de hacer más fácil para muchos el uso del lenguaje ha hecho a veces más difícil para otros utilizar técnicas de programación comunes vistas en otros lenguajes. [5]

Sin embargo, la filosofía detrás de Python es que la simplicidad es siempre la mejor. Puede que esta no sea una filosofía útil para todos, pero ha significado que Python tiene una comunidad de usuarios mucho mayor, lo que ha llevado a muchas de las principales empresas de software a adoptar Python incluso cuando otras partes de su software están construidas en otros lenguajes.

Referencias

[1] For more on the versions of Python and the user community, including its history, see:  Telles, M.A. (2006) Python power!: the comprehensive guide. Boston, MA, Thomson Course Technology PTR.

[2] For more on the benefits of Python, see:  Payne, J. (2010) Beginning Python: Using Python 2.6 and Python 3.1. Indianapolis, IN, John Wiley & Sons Inc.

[3] For more on the Python user community, see:  Payment, S. (2015) Getting to know Python. Code power : a teen programmer’s guide. First edition. New York, Rosen Central.

[4] For more on applications built and building using Python, see:  Bahgat, K. (2015) Python geospatial development essentials: utilize python with open source libraries to build a lightweight, portable, and customizable GIS desktop application. [Online]. Birmingham, England; Mumbai [India, Packt Publishing.

[5] For more on weaknesses of Python, see:  Shein, E. (2015) Python for beginners. Communications of the ACM. [Online] 58 (3), 19–21.

Traducido desde: GISLounge