Mostrando entradas con la etiqueta Smartsheet. Mostrar todas las entradas
Mostrando entradas con la etiqueta Smartsheet. Mostrar todas las entradas

sábado, 8 de octubre de 2016

Capas GIS y "Excel Dashboards" (Parte II)

A continuación se detalla los pasos esbozados en la entrada anterior, a un nivel más técnico, con toda la información necesaria para implementar el proceso, tanto en ArcGIS como en Excel:

1. Crear un modelo en ArcToolBox (o un script en Python) que convierta los datos de  partida a formato Personal Geodatabase. La herramienta que usaremos aquí será "Copy Feature", pero podría ser cualquier otra que transfiera los datos de partida a nuestra "personal geodatabase", la cual tendremos que haber creado anteriormente. En este punto, y antes de ejecutar la herramienta nos aseguraremos de que el archivo (capa) de salida, reemplaza a la previamente existente, marcando la opción de sobrescribir los ficheros de salida dentro de "Opciones de Geoprocesamiento". Esto es importante ya que el Excel tomará la información de la Base de Datos y buscara la tabla con el nombre que le especifiquemos de origen.



2. Crear un Excel, y asignarle como datos de origen el archivo .mdb creado en el paso anterior. Seleccionar Tabla como formato a mostrar.




3. Si en el paso primero construimos una ArcToolBox, crear un script que ejecute la herramienta, y guardarla con la extensión .py. Si anteriormente elegimos la opción de crear la herramienta como un Script en Python, este paso no es requerido. Esto es necesario porque como ya veremos en el siguiente punto, definiremos una tarea programada dentro de Windows que llame a nuestra herramienta, y un ArcToolbox no puede ser ejecutada de esta manera. El script sería algo como:

   import arcpy  
  arcpy.ImportToolbox(r" RutaDeLaHerramienta\NombreDeLaHerramienta.tbx", "TBX")           arcpy.Model_TBX()

4. Ir a las tareas programadas de Windows y definir la ejecución del script con la frecuencia deseada, por ejemplo todos los días a primera hora de la mañana, así los cambios realizados la jornada anterior en la base de datos GIS, serán reflejados al día siguiente en nuestro archivo .mdb



5. El último paso sería actualizar los datos en el Excel, para ello la forma más sencilla es en el menú de tablas de origen de datos externos/propiedades de conexión, marcaremos actualizar datos cuando se abra el archivo. En caso de que tus conocimientos en Python sean más avanzados, podrás crear otro script, o ampliar el código del primero, para llamar a la función RefreshAll() utilizando la extensión para Windows de Python.



Esto hará que cada vez que abramos nuestro excel se carguen los datos de nuestra Geodatabase, que a su vez está alimentada por nuestra base de datos GIS.

Este sería una visión resumida del proceso en su conjunto:



Una vez realizada la "conexión" entre nuestra fuente de datos GIS y nuestra hoja de cálculo, solo queda pensar que información queremos visualizar, y de qué manera. 

Como comentamos en la entrada anterior una excelente manera de hacer más accesible la información será con el uso de los cada vez más extendidos "Excel Dashboards" en los cuales podremos incluir "Pivot Tables" y "Slicers" entre otros elementos, para facilitar la visualización y el análisis de la información alfanumérica.

En el ejemplo que se muestra a continuación, la información representada es relativa a las tuberías de una red de drenaje urbano de aguas residuales. La red está organizada en diferentes áreas de captación (Slicer de la derecha), y puede ser filtrada por diferentes atributos como el diámetro de la tubería, el material o el año de instalación. La información puede ser representada a modo de gráfico, que se actualiza automáticamente cuando el filtro es modificado.






Capas GIS y "Excel Dashboards" (Parte I)

Como comentaba en la entrada anterior, una de las opciones para presentar los datos contenidos en una base de datos GIS, es utilizando Microsoft Excel. Dentro de este programa, y más concretamente en las últimas versiones, existen multitud de herramientas de análisis de datos, y de representación de los mismos.

Entre estas múltiples opciones vamos a profundizar un poco más en la creación de los denominados Dashboards, y la creación de gráficos dinámicos y slicers asociados a estos datos.

El primer factor a tener en cuenta es el origen de los datos, y si queremos que el resultado sea dinámico o no. Con dinámico quiero decir que si es necesario para el objeto de nuestro trabajo, que la información se actualicen al mismo tiempo que se actualiza la información en el GIS, o por el contrario simplemente necesitamos una instantánea de nuestro GIS en un momento determinado.

El segundo supuesto no supone un gran problema para alguien con unos mínimos conocimientos en SIG, simplemente tendremos que exportar los datos de la tabla de atributos de la capa que queramos analizar, y abrirla en Excel, es más, si el formato en el que estamos trabajando es shapefile, podremos abrir directamente el archivo .dbf.





En caso de encontrarnos en el primer supuesto, que bajo mi punto de vista es el que siempre tendríamos que seguir, la cosa se complica ligeramente, ya que tenemos que encontrar la forma de vincular el excel que conformará nuestro dashboard, con los datos de origen. Dentro de Excel existe la opción de importar datos de muy diversas fuentes (incluidas Bases de Datos Oracle o incluso Esri GeoDatabase).





En esta entrada no utilizaremos estas funcionalidades, que a decir verdad es la forma más óptima, por dos motivos, el primero es que necesitaríamos un perfil más técnico a nivel de bases de datos para configurar la conexión, y el segundo es porque el origen de nuestros datos puede ser diverso, lo cual nos llevaría a establecer la conexión con diversas proveedores de datos.

Así pues, mi propuesta para crear Dashboards a partir de datos GIS, y mantener el vínculo con los datos de origen es la que explicaré a continuación de manera resumida para desarrollarla de una manera más detallada en la siguiente entrada:


  1. Crear un modelo en ArcToolBox (o un script en Python) que convierta los datos de  partida a formato Personal Geodatabase.
  2. Crear un Excel, y asignarle como datos de origen el archivo .mdb creado en el paso anterior.
  3.  Si en el paso primero construimos una ArcToolBox, crear un script que ejecute la herramienta, y guardarla con la extensión .py. Si creamos un script en Python, este paso no es necesario.
  4. Ir a las tareas programadas de Windows y definir la ejecución del script con la frecuencia deseada, por ejemplo todos los días a primera hora de la mañana, así los cambios realizados la jornada anterior en la base de datos GIS, serán reflejados al día siguiente en nuestro archivo .mdb
  5. El último paso sería actualizar los datos en el Excel, para ello la forma más sencilla es en el menú de tablas de origen de datos externos/propiedades de conexión, marcaremos actualizar datos cuando se abra el archivo
  6. Esto hará que cada vez que abramos nuestro excel se carguen los datos de nuestra Geodatabase, que a su vez está alimentada por nuestra base de datos GIS
En la próxima entrada hablaré más en detalle en la parte técnica del proceso (script, toolboxes, etc.), incluyendo algunos ejemplos básicos en la representación de la información en forma de Excel Dashboard (o Smartsheets).