miércoles, 13 de junio de 2018

¿Por qué Python es el futuro del SIG web?



Tomado de:   Beatriz Ramos López

El mundo GIS presentó a Python como un lenguaje de scripting relativamente fácil, pero con el tiempo se ha convertido en omnipresente, ofreciendo soluciones para muchos usuarios diferentes. Gestión de datos, mapeo, análisis, administración del sistema, lo que usted llama: las posibilidades de Python son infinitas. Siga leyendo para averiguar cómo se puede utilizar a su ventaja y mejorar su carrera como un profesional geoespacial.

1.   Los lenguajes de programación en SIG están aquí para quedarse
En los últimos seis meses, se ha producido una adopción más amplia de los lenguajes de programación en la industria de SIG. Alguien en el DevSummit de Esri lo resumió perfectamente diciendo que Esri ha abrazado múltiples lenguajes de programación en un único flujo de trabajo. ¿Qué significa esto? Esto significa que usted puede hacer su trabajo con uno o varios lenguajes de programación (o ampliarlo si prefiere una GUI). Por supuesto, no tienes que hacer esto. Recientemente recibí un correo electrónico de alguien que me preguntaba acerca de las posibilidades de usar Python para hacer SIG y si realmente era necesario aprenderlo. La respuesta es no: Python no es un reemplazo para un SIG, sino una extensión. Y también lo son R y JavaScript. Sin embargo, muchos trabajos geoespaciales requieren que construya aplicaciones y / o domine varios lenguajes de programación.
2.   Python ahora trasciende la dicotomía de scripting / programación
Mi primer artículo sobre Python para este blog se llamó "Python programming: a beginners guide". Alguien me preguntó si el uso de herramientas preconfiguradas aplicadas a los datos GIS te convertía en un programador. Bastante, no lo creo. El uso de una herramienta de búfer en arcpy no te convierte en programador, pero si utilizas tal herramienta dentro de un script de aplicación más grande, esto califica como escribir una aplicación en lugar de un script. Y la creación de aplicaciones es lo que la programación se trata. Sin embargo, con respecto a Python como un lenguaje, la distinción entre el guion y la programación no siempre es muy clara.
Lo que es interesante, sin embargo, es que en los últimos seis meses, he empezado a usar herramientas Python que superan el GIS de escritorio (y por lo tanto la dicotomía de scripting / programación). Especialmente la API de Python de Esri combinada con los portátiles de Jupyter ha sido una gran nueva herramienta que es mucho más que una serie de herramientas de SIG preconfiguradas y ofrece una gran introducción al concepto de web de GIS de Esri, ya sea ArcGIS Online o Portal de ArcGIS. Lo que me lleva al siguiente punto:
3.   Python es ideal para operaciones de sistema, gestión de datos, análisis y visualización
Lo que quiero decir con esto es que puedes usar Python como lo harías con Window's File Explorer para administrar datos, cargarlo, procesarlo y visualizarlo como quieras. Después de trabajar con los portátiles Jupyter, que le permiten hacer todas estas operaciones a través de un navegador, me pregunté si se trataba de los nuevos IDE para escribir scripts y aplicaciones. Los portátiles Jupyter ofrecen capacidades impresionantes que superan a las de los IDEs, principalmente porque integran código con imágenes, como gráficos y, en el caso de Python API de Esri, mapas 2D y 3D. Son ideales para organizar y probar el código en trozos pequeños y hacer que los resultados se devuelvan al instante, literalmente en la misma página en la que escribes el código. Esto no es posible con un IDE, que devuelve los resultados de código en un shell y no se puede eliminar a menos que reinicie el IDE.
Añadir leyenda
4.   SIG ha abrazado a Python 3
Una diferencia importante entre arcpy para ArcMap y arcpy para ArcGIS Pro es la versión de Python utilizada en el fondo. La mayoría de las discusiones sobre las diferencias entre los dos ignoran el hecho de que Python 3 es realmente un rediseño de ciertas partes del lenguaje, por lo que tiene un número de versión diferente y se considera una actualización importante. Esto explica por qué un paquete de sitio como arcpy para ArcMap (que usa Python 2.7) tiene comandos y herramientas idiosincrásicas, mientras que la nueva API de Python para ArcGIS está estructurada y se lee más como Python puro, haciéndola más accesible para los desarrolladores de Python nuevos en GIS. Usar y aprender. Esto puede ayudar a Esri a atraer a más desarrolladores no GIS a usar su plataforma y herramientas.
Añadir leyenda
5.   SIG ha abrazado Anaconda
Seamos realistas, el control de versiones y la gestión de paquetes con Python es un desafío. Tener una aplicación que hace esto por ti te hace la vida más fácil y esto es lo que Anaconda hace. También le proporciona la aplicación Jupyter Notebook que se mencionó anteriormente. Mientras que al principio era sospechoso sobre su utilidad, ahora prefiero Anaconda a usar virtualenv cuando uso Python 3. También trabaja muy bien si usted tiene Python 2.7 instalado, que viene con ArcMap (el truco no es agregar Anaconda a usted PythonPath como no Para mezclar ambos entornos en la misma máquina). Esri también se dio cuenta de que sería más conveniente ofrecer arcpy a través de Anaconda en lugar de enviarlo directamente con ArcMap o Pro. Esto se hará cargo de las próximas versiones de software.
6.   SIG ha abrazado la pila SciPy
Esri ahora envía la pila SciPy con cada instalación de ArcMap y Pro para que usted no tenga que instalar los paquetes usted mismo. Aunque los paquetes individuales de esta pila están orientados hacia la comunidad científica, los analistas y cartógrafos de SIG pueden utilizarlos para su ventaja, por ejemplo, incluyendo parcelas simples de la biblioteca matplotlib. Si usas pandas y Numpy juntos, tienes algo similar a lo que ofrece el lenguaje R. Nuevamente, los portátiles Jupyter son el entorno perfecto para escribir todo su código, comentarios, resultados y gráficos.
En cuanto al marketing, es interesante ver que Esri ha adoptado el eslogan "La Ciencia de Dónde" para enfatizar sus raíces científicas. La colaboración con Continuum Analytics (la compañía detrás de Anaconda), el envío de la pila SciPy con ArcGIS y la creación del puente ArcGIS para usuarios de R son iniciativas recientes para unir a diferentes comunidades a través de la tecnología.
7.   GeoPython es un emocionante nuevo evento para desarrolladores geoespaciales de Python

GeoPython es una conferencia europea de Python para la comunidad geoespacial. Aquí, los nuevos proyectos de la comunidad de código abierto, así como los vendedores propietarios, se comparten. Si no visitó el evento, podría estar interesado en el repositorio Github que muestra todos los proyectos que se presentaron en la última edición, a principios de este año en mayo.
Añadir leyenda
8.   La fuente abierta amplía el GIS propietario y viceversa


Esto es principalmente una repetición de los dos últimos puntos, pero hay más: hay muchas herramientas de código abierto que amplían GIS comerciales. Muchos de éstos se distribuyen a través del índice del paquete de PyPI Python, aunque Github está tomando su lugar lentamente. Le sorprenderá la cantidad de resultados de búsqueda cuando busque "GIS", "Geo" o "esri". Un paquete de código abierto llamado ArcREST ofrece un conjunto de herramientas python para ayudar a trabajar con ArcGIS REST API para ArcGIS Server (AGS), ArcGIS Online (AGOL) y ArcGIS WebMap JSON. Además, si utiliza Anaconda como gestor de paquetes, puede buscar paquetes utilizando la nube Anaconda o navegar a través de los paquetes predeterminados de 1000+ que vienen con su instalación.
9.   Python habilita GIS Web
Aunque el GIS de escritorio no desaparecerá pronto, el SIG web es la ola del futuro. Python es una gran herramienta para crear flujos de trabajo usando Web GIS, que es otra razón para comenzar a aprenderlo. En lugar de depender de las aplicaciones de escritorio, puede reproducir gran parte de su funcionalidad fuera de dicha aplicación, por ejemplo, utilizando un cuaderno de Jupyter y aprovechar las funcionalidades, datos y herramientas que necesita utilizando las API web, crear sus propios flujos de trabajo y compartirlos con otros. Python puede usarse como el lenguaje que une todo esto y las posibilidades son infinitas.