ArcGIS API
Novedades de ArcGIS API for Python v1.8.3
Por Atma Mani
La versión 1.8.3 de ArcGIS API for Python está aquí
La API de Python está diseñada para servir a un amplio espectro de usuarios, desde administradores de SIG hasta desarrolladores de Python y científicos de datos. Nuestros usuarios han confiado en la API y la utilizan para administrar su GIS web, publicar, actualizar y clonar una amplia variedad de datos GIS, crear modelos analíticos sofisticados y automatizar sus flujos de trabajo de misión crítica. En los últimos años, la API ha pasado de ser una pequeña biblioteca pintoresca a una con varios módulos diferentes. ¡Ahora tenemos más de 2300 métodos y funciones!
Resumen del artículo: Se ha lanzado la versión 1.8.3 de ArcGIS API for Python. Esta versión agrega una gran cantidad de nuevas funciones y capacidades.
- ¿No tienes tiempo para leer el artículo completo? Desplácese hasta el final para ver una descripción general de 1 diapositiva.
- ¿Quieres la lista completa de nuevas funciones? Puede obtenerlos en las notas de la versión.
- ¿Listo para probar la nueva API? Puede actualizar escribiendo conda upgrade -c esri arcgis en el indicador de anaconda.
La imagen de arriba (presentada en la charla Python Libraries for Spatial Data Science) resume algunas de las capacidades clave de la API. En la versión 1.8.3, hemos intentado mejorar cada uno de estos aspectos y este blog es un resumen de las características principales.
Mejoras en el marco
Una de las mejoras más importantes que realizamos entre bastidores fue la migración de los módulos de comunicación HTTP para usar solicitudes (un módulo de terceros popular) desde el módulo urllib incorporado. No hay cambios en sus scripts, excepto que ahora y en el futuro podemos brindar un mejor soporte a algunos de sus sistemas de autenticación complejos y personalizados. Para el análisis JSON, cambiamos a UltraJSON. Combinados, pudimos mejorar la compatibilidad con funciones fundamentales como las cargas de varias partes y, al mismo tiempo, obtener mejoras de rendimiento. Aparte de esto, hemos agregado soporte para Python 3.8, JupyterLab 1x, 2x y Pandas v1.0.
Administración GIS
ArcGIS Notebooks y Notebook Server desempeñan un papel clave a la hora de habilitar la capacidad de ciencia de datos espaciales de la plataforma ArcGIS. El módulo arcgis.gis.nb se ha mejorado, lo que le permite administrar servidores de portátiles. Ahora puede inspeccionar las instancias que se están ejecutando y sus propiedades. Este módulo también permite poderosos flujos de trabajo, como ejecutar cuadernos a pedido y programar cuadernos. En el futuro, planeamos admitir la administración de diferentes versiones de elementos del cuaderno.
Ha habido numerosas pequeñas actualizaciones y correcciones en otras partes de la API de administración de GIS. Al crear usuarios, por ejemplo, ahora puede usar valores predeterminados inteligentes que usted, como administrador, haya definido para su organización. Una nueva clase AGOLUsageReports permite una mejor compilación de informes de uso en ArcGIS Online, algo que nuestros usuarios han estado pidiendo.
En el frente de la seguridad, la API ahora admite la autenticación mediante claves API. Este es un nuevo mecanismo de inicio de sesión dirigido a los desarrolladores de SIG y aprenderá más sobre él en los próximos meses.
Gestión de contenido
¡Nos complace presentar el nuevo módulo `arcgis.apps.dashboard` que permite a los usuarios crear aplicaciones de ArcGIS Dashboards usando Python! Muchos científicos de datos quieren un medio que sea más simple que los portátiles para comunicar sus resultados y esperamos que este módulo pueda ayudarlos a componer rápidamente dichas aplicaciones.
La migración y clonación de contenido es un flujo de trabajo muy importante para nuestros usuarios, y nos complace presentar un nuevo flujo de trabajo "GroupMigrationManager" que permite a los administradores de grupo migrar contenido de un grupo a otro en todas las organizaciones. Los usuarios a largo plazo de la API estarían familiarizados con la función `clone_items` que es nativa de la API de Python. Se ha mejorado para admitir una gran cantidad de nuevos tipos de aplicaciones junto con varias correcciones de errores.
Esta versión también agrega nuevos flujos de trabajo de publicación, como publicar directamente desde el contenido depositado en un almacén de datos y la capacidad de establecer los identificadores de elementos deseados para ciertos flujos de trabajo y entornos.
En los frentes OGC y FOSS4G, hemos agregado un nuevo submódulo `arcgis.mapping.ogc` para trabajar con capas OGC. ¡Otro desarrollo interesante es la capacidad de leer directamente objetos GeoPandas GeoDataFrame en memoria en ArcGIS! La API ahora admite la lectura de archivos de geopaquete y formatos de archivos en columnas más nuevos como pluma. Estamos investigando algunos de estos nuevos patrones para aumentar el rendimiento de los objetos DataFrame habilitados espacialmente (SeDF).
Análisis especial
Hablemos de DataFrames habilitados espacialmente (SeDF). Ahora puede pasar objetos SeDF como entradas a herramientas de análisis espacial. Esto le permite habilitar fácilmente los flujos de trabajo de ingeniería de datos para utilizar las potentes herramientas de análisis espacial disponibles como herramientas listas para usar en su SIG web. Otra característica es la capacidad de desinfectar los nombres de las columnas antes de guardar el DataFrame. Los objetos SeDF ahora admiten una nueva propiedad de "renderizador" para almacenar información de simbología o dibujo. Cuando lee una capa de entidades, el renderizador ahora recogerá la simbología definida en esa capa web y la utilizará para visualizar la capa en un mapa. Puede anularlo con sus símbolos personalizados en cualquier momento.
Ahora, casi todas las herramientas web de la API de Python admiten el procesamiento asincrónico. El procesamiento asíncrono le permite enviar tareas grandes y de larga ejecución al servidor y recuperar un objeto GPJob. Básicamente, esto libera el kernel de Python, lo que le permite ejecutar comandos posteriores mientras el servidor sigue trabajando en el trabajo enviado. Puede sondear el objeto de trabajo en cualquier momento para conocer el estado o cancelar el trabajo.
Análisis ráster
Si bien el ráster es parte de la sección de análisis espacial que se describió anteriormente, se realizó una gran cantidad de trabajo que pensamos que justifica una nueva sección propia. Como noticias importantes, agregamos dos nuevas clases: `Raster` y` RasterCollection` que le permiten trabajar con una amplia variedad de datos de imágenes de manera transparente. Puede leer y trabajar con datos ráster basados en archivos locales, así como con los publicados como capas de imágenes (servicios). Cuando lee datos ráster locales, la API elige ArcPy como motor de procesamiento y si lee un servicio de imágenes, usa ArcGIS Image Server como motor de back-end. Esto permite a los usuarios trabajar con una API que no importa dónde se almacenan y procesan los datos en el back-end.
Se han agregado una gran cantidad de nuevas funciones de ráster y herramientas de análisis de ráster distribuidas para aplicaciones como análisis de tendencias, análisis multidimensional, detección de cambios, etc.
Aprendizaje profundo
Una característica importante de la API es su capacidad para entrenar modelos de aprendizaje profundo para aplicaciones geoespaciales utilizando el módulo `arcgis.learn`. La API ahora admite más de 30 modelos para varios flujos de trabajo avanzados. Estos modelos pueden funcionar con una amplia variedad de datos, como imágenes planimétricas y orientadas, nube de puntos, características, tabulares, datos de series de tiempo y texto no estructurado. Esta versión agrega modelos para flujos de trabajo clave, como detección de bordes, detección de cambios, extracción de carreteras y traducción de imágenes.
Un nuevo modelo de visión por computadora permite a los usuarios pasar de mapas en papel escaneados a capas vectoriales georreferenciadas. Esta versión desafía el mito algo común en la industria geoespacial de que el aprendizaje profundo es más adecuado solo para datos de imágenes al avanzar con modelos que funcionan con datos tabulares y de series de tiempo. El modelo `FullyConnectedNetwork` le permite alimentar capas tabulares y ráster en una red neuronal profunda, lo que le permite aprender y modelar incluso los patrones más complejos. El `TimeSeriesModel` le permite realizar pronósticos de series de tiempo.
La nueva clase `MLModel` le permite integrar modelos de aprendizaje automático de la popular biblioteca scikit-learn y el nuevo submódulo` arcgis.learn.text ` ahora alberga una serie de modelos para el procesamiento del lenguaje natural (NLP). ¿Qué tiene que ver la PNL con los SIG, preguntas? Para empezar, puede extraer direcciones e información de ubicación de texto no estructurado, predecir las partes que faltan de una dirección incompleta y corregir automáticamente los errores en las direcciones para que sean adecuadas para la codificación geográfica.
Para simplificar la instalación de las bibliotecas y los marcos necesarios para iluminar el aprendizaje profundo, hemos agregado nuevos instaladores de aprendizaje profundo para ArcGIS Pro y Enterprise y un nuevo metapaquete conda para una instalación independiente.
Una adición importante en esta versión es la disponibilidad de modelos de aprendizaje profundo listos para usar en Esri Living Atlas. Dado que estos modelos han sido entrenados previamente por Esri, puede omitir la tarea tediosa y con gran cantidad de datos de limpiar y preparar grandes volúmenes de datos necesarios para entrenar sus modelos o adquirir el hardware necesario para tales tareas. Puede descargar los modelos y proceder a realizar la inferencia.
Mapeo y visualización
El widget de mapa de los cuadernos de Jupyter ahora se puede vincular con otros widgets de mapa en el mismo cuaderno. Por lo tanto, puede sincronizar la navegación entre dos o más widgets, lo que le permite cargar y visualizar diferentes capas una al lado de la otra para la misma extensión. Una vez vinculado, cualquier interacción en uno de los mapas vinculados hará que otros mapas sigan su ejemplo, como se muestra en la animación a continuación.
No está limitado a vincular solo mapas 2D. La navegación sincronizada funciona igual de bien entre los modos 2D y 3D de los widgets, lo que le permite ver fácilmente la representación en perspectiva y planimétrica de la misma área de estudio.
A estas alturas, debe estar familiarizado con la capacidad de tomar capturas de pantalla de sus widgets de mapas. Si bien las capturas de pantalla incorporan una versión estática del mapa como una imagen en el cuaderno, con esta versión, puede incorporar versiones interactivas en vivo del mapa. Por lo tanto, cuando exporta su computadora portátil como un archivo HTML, ahora tiene la capacidad de elegir si incrustar sus mapas como imágenes estáticas o como mapas web dinámicos. Cuando el mapa en un cuaderno no es lo suficientemente grande para apreciar completamente la geografía, puede usar la función de exportación a HTML existente para generar una página web de tamaño completo de su mapa.
¿Mencioné que puede cargar archivos ráster basados en archivos locales en el widget de mapa? Sí, ahora puede simplemente agregar la nueva clase Ráster como una capa a sus mapas y visualizar fácilmente sus imágenes y datos ráster.
¿Fans de JupyterLab IDE? Ahora admitimos las versiones 1x y 2x de lab y ahora puede buscar la extensión "arcgis" dentro del laboratorio e instalarla sin sudar. JupyterLab es una interfaz nueva y genial y te recomiendo que la pruebes si aún no lo has hecho.
Documentación
El año 2020 ha sido un año muy activo para nosotros en cuanto a documentación. Comenzamos la misión de revisar algunas de nuestras guías más antiguas y reemplazarlas con cuadernos completos de estilo tutorial. Hasta ahora, hemos reescrito las guías para el análisis de redes, geoenriquecimiento, orthomapping y los módulos de geometría. Notarás que estas guías comienzan proporcionando suficiente información básica seguida de un diagrama de diseño que describe qué son las diferentes partes del módulo y cómo funcionan con el resto de la API. Estas guías también están numeradas en partes, lo que demuestra una progresión clara para nuestros nuevos usuarios.
También nos hemos embarcado en un proyecto a largo plazo para mejorar la referencia de API agregando fragmentos contextuales para parámetros, palabras clave de referencia cruzada, agregando imágenes esquemáticas para ciertas herramientas y ejemplos de scripts de Python.
La experiencia "pruébalo en vivo" ahora se ha migrado a un nuevo hogar en ArcGIS Online. Cuando haga clic en el botón "Pruébelo en vivo" en los cuadernos de muestra, se le dirigirá a un cuaderno que se ejecuta en ArcGIS Online. Simplemente inicie sesión con sus credenciales y pruebe las muestras.
Conclusión
¡Guauu! Fue un largo viaje a través de los diversos módulos de la API y solo he cubierto las características clave. ¿Qué tal si les dejo con una descripción general de una sola diapositiva de lo anterior?
¿Tienes sed de más detalles? Consulte nuestras notas de lanzamiento muy detalladas.
2020 ha sido un desafío para cada uno de nosotros de muchas maneras únicas y diferentes. Estoy orgulloso de nuestro equipo que se unió y logró todo lo anterior. Nos apasiona lo que hacemos y estamos decididos a ofrecerle una API de Python de primera clase para el análisis geoespacial.
De parte de todos los que formamos parte del equipo de la API de Python, gracias por ser nuestros usuarios. Le deseamos unas felices y seguras vacaciones.
Acerca del Autor
Atma Mani es ingeniero principal y principal de productos de ArcGIS API for Python en Esri. Tiene más de 13 años de experiencia trabajando para instituciones de investigación privadas, académicas y gubernamentales, aplicando diferentes facetas de la tecnología geoespacial. Tiene una licenciatura en Ingeniería de la Facultad de Ingeniería de la Universidad de Anna, India y una maestría de la Universidad del Norte de Iowa.