Aquí es donde llovió hoy en Australia, un poco alrededor de Perth, bastante en Queensland y para los observadores atentos un poco en Cape York para mantener felices a los camarones y cocodrilos. La leyenda muestra la precipitación en mm.<\/P>
<\/P>
El Australian Bureau of Meteorology<\/A> publica datos meteorológicos descargables; mi escenario es que estoy interesado en republicar las observaciones de pluviómetros a un servicio de entidades alojado, que está en el mapa arriba. Después de investigar un poco encontré que los datos están disponibles vía FTP<\/A> con un esquema descrito en esta guía del usuario<\/A>. Los datos se actualizan diariamente. Aunque no estoy redistribuyendo los datos en este blog, mencionaré que están licenciados bajo términos de Creative Commons<\/A>, así que puedes implementar mi ejemplo si lo deseas.<\/P><\/P>Aunque la tasa de actualización es diaria, cada archivo puede contener observaciones que abarcan más de 24 horas y de múltiples sensores en un sitio. De todos modos, lo que quería era que las observaciones diarias se enviaran a un servicio de entidades en mi portal; podría igualmente enviar los datos a ArcGIS Online.<\/P><\/P>Estas sincronizaciones periódicas desde la web<\/STRONG> están por todas partes en GIS. Los custodios de datos facilitan la obtención manual<\/EM> de datos, voy a mostrarte lo simple que es automatizar<\/EM> sincronizaciones con Data Interoperability. Usualmente describo Data Interoperability como la tecnología de integración de aplicaciones 'sin código' de Esri. Para ser completamente honesto, en este ejemplo recurrí a algo de Python en los FME Workbenches que creé, así que debo retractarme de la afirmación sin código<\/STRONG>, pero puedo decir que es bajo código<\/STRONG>. Puedes verlo tú mismo en los Workbenches.<\/P><\/P>Comencé pensando que haría el proceso programado como una herramienta web y lo programaría con Notebook Server. Eso podría ser lo más divertido de construir pero me di cuenta que no era necesario para mi caso de uso. Volví a un patrón sobre el que ya había blogueado antes<\/A>, es decir, usar el Programador de tareas de Windows, pero esta vez en un servidor. ¿Por qué no usar el enfoque del software de escritorio? Bueno, para aprovechar una máquina con probablemente muy alta disponibilidad que sé puede programar fuera de mis horas normales de trabajo.<\/P><\/P>Aquí está el Workbench que hace el trabajo de descargar los archivos del producto BoM y enviar entidades al servicio de entidades alojado en mi portal:<\/P><\/P><\/P><\/P>Y no puedo resistirme, aquí está el Python, no tan aterrador. Sería innecesario si los nombres de archivo en el sitio FTP fueran estables, podría haber usado un transformador FTPCaller<\/STRONG>, pero tienen marcas de fecha como parte del nombre, fue más fácil manejar eso con algo de Python. Mientras descargaba los datos también los limpié un poco (eliminando comillas dobles envolventes y caracteres de nueva línea) y luego envié todas las observaciones al flujo.<\/P><\/P><\/P><\/P><\/P>Dado que las fuentes de datos no cambian hice todos los parámetros privados, esto simplifica el comando para programar. Todo lo que necesito hacer es poner el Workbench en el servidor y asegurarme que se ejecute. En la descarga posterior encontrarás tres archivos FMW:<\/P><\/P>MakeRainGauges.fmw<\/STRONG><\/P>RefreshRainGauges.fmw<\/STRONG><\/P>RefreshRainGauges - Server Copy.fmw<\/STRONG><\/P><\/P>MakeRainGauges crea una clase de entidad geodatabase que usé en Pro para instanciar mi servicio de entidades alojado. RefreshRainGauges está construido a partir de MakeRainGauges y solo difiere en que escribe al servicio de entidades, con truncamiento inicial. Ese es el Workbench que quiero programar. RefreshRainGauges - Server Copy solo difiere de RefreshRainGauges en su configuración Python, para usar Python 3.6+. No usé ese nombre en el servidor, solo para incluirlo en la descarga posterior.<\/P><\/P>En mi servidor portal hubo una pequeña configuración (tengo una sola máquina con todo instalado, no olvides instalar y licenciar Data Interoperability!). RefreshRainGauges usa una conexión web a mi portal. En este blog<\/A> describo cómo crear una conexión web para portal. Esto debe copiarse al servidor para el usuario arcgis<\/STRONG> que ejecutará el proceso programado. La forma más sencilla es s\/>article\/>making-database-and-web-connections-public" rel="nofollow noopener noreferrer">método #2 en este artículo<\/A>. Con sesión iniciada en el servidor como arcgis, primero creé un acceso directo al escritorio a "C:\\Program Files\\ESRI\\Data Interoperability\\Data Interoperability AO11\\fmeworkbench.exe"<\/STRONG>, inicié Workbench, luego importé el archivo XML de conexión web y probé leer el servicio de entidades. También copié RefreshRainGauges a una carpeta y lo edité para ajustar el entorno Python según convenga al servidor (el ejemplo fue construido con Pro 2.7 Beta pero el servidor está ejecutando Enterprise 10.8.1). Ejecutando el espacio de trabajo interactivamente, la parte superior del registro revela el comando a programar:<\/P><\/P> Línea de comando para ejecutar este espacio de trabajo:<\/<STRONG>
Aunque la tasa de actualización es diaria, cada archivo puede contener observaciones que abarcan más de 24 horas y de múltiples sensores en un sitio. De todos modos, lo que quería era que las observaciones diarias se enviaran a un servicio de entidades en mi portal; podría igualmente enviar los datos a ArcGIS Online.<\/P>
Estas sincronizaciones periódicas desde la web<\/STRONG> están por todas partes en GIS. Los custodios de datos facilitan la obtención manual<\/EM> de datos, voy a mostrarte lo simple que es automatizar<\/EM> sincronizaciones con Data Interoperability. Usualmente describo Data Interoperability como la tecnología de integración de aplicaciones 'sin código' de Esri. Para ser completamente honesto, en este ejemplo recurrí a algo de Python en los FME Workbenches que creé, así que debo retractarme de la afirmación sin código<\/STRONG>, pero puedo decir que es bajo código<\/STRONG>. Puedes verlo tú mismo en los Workbenches.<\/P><\/P>Comencé pensando que haría el proceso programado como una herramienta web y lo programaría con Notebook Server. Eso podría ser lo más divertido de construir pero me di cuenta que no era necesario para mi caso de uso. Volví a un patrón sobre el que ya
Aquí está el Workbench que hace el trabajo de descargar los archivos del producto BoM y enviar entidades al servicio de entidades alojado en mi portal:<\/P>
Y no puedo resistirme, aquí está el Python, no tan aterrador. Sería innecesario si los nombres de archivo en el sitio FTP fueran estables, podría haber usado un transformador FTPCaller<\/STRONG>, pero tienen marcas de fecha como parte del nombre, fue más fácil manejar eso con algo de Python. Mientras descargaba los datos también los limpié un poco (eliminando comillas dobles envolventes y caracteres de nueva línea) y luego envié todas las observaciones al flujo.<\/P><\/P><\/P><\/P><\/P>Dado que las fuentes de datos no cambian hice todos los parámetros privados, esto simplifica el comando para programar. Todo lo que necesito hacer es poner el Workbench en el servidor y asegurarme que se ejecute. En la descarga posterior encontrarás tres archivos FMW:<\/P><\/P>MakeRainGauges.fmw<\/STRONG><\/P>RefreshRainGauges.fmw<\/STRONG><\/P>RefreshRainGauges - Server Copy.fmw<\/STRONG><\/P><\/P>MakeRainGauges crea una clase de entidad geodatabase que usé en Pro para instanciar mi servicio de entidades alojado. RefreshRainGauges está construido a partir de MakeRainGauges y solo difiere en que escribe al servicio de entidades, con truncamiento inicial. Ese es el Workbench que quiero programar. RefreshRainGauges - Server Copy solo difiere de RefreshRainGauges en su configuración Python, para usar Python 3.6+. No usé ese nombre en el servidor, solo para incluirlo en la descarga posterior.<\/P><\/P>En mi servidor portal hubo una pequeña configuración (tengo una sola máquina con todo instalado, no olvides instalar y licenciar Data Interoperability!). RefreshRainGauges usa una conexión web a mi portal. En
"C:\\Program Files\\ESRI\\Data Interoperability\\Data Interoperability AO11\\fme.exe" C:\\Users\\arcgis\\Desktop\\RefreshRainGauges.fmw<\/<STRONG>
<\/<p>
El resto es simple, solo crea una tarea básica, la parte más difícil fue decidir a qué hora ejecutar el comando (veo datos cambiando hasta tan tarde como la 1AM UTC así que opté por las 6PM hora local en mi servidor, que está en US West). Asegúrate que la tarea se ejecute si arcgis no ha iniciado sesión, y el usuario arcgis necesitará derechos para trabajos por lotes (o ser administrador, lo cual puedo hacer en mi máquina VM pero probablemente no te permitan hacerlo).<\/<p>
Eso es todo, mantenimiento automatizado de datos que puedo compartir con cualquiera!  ; Termino con una captura del registro del procesamiento desde la sincronización anoche:<\/<p>
<\/<p><\/<BODY ><\/<HTML >
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.