martes, 26 de marzo de 2024

FME DESKTOP: EXTRAER, TRANSFORMAR Y CARGAR

  •  Volvemos tras una temporada en blanco provocada por cambios profesionales y personales con una herramienta del desarrollador canadiense Safe Software. Conocida por casi todas las personas que se dedican a la manipulación de datos GIS y de aprendizaje complejo: se trata de la aplicación FME. A priori la base de su funcionamiento es actuar como una herramienta ETL (por sus siglas en Inglés) (Extract, Transform and Load).

  • Este tipo de software ha cobrado mucho protagonismo a consecuencia del auge del Big Data donde la integración de datos es primordial o "combinar flujos de información enorme de numerosos repositorios en algo útil". Como plataforma para estos menesteres a parte de FME DesktopSafe Sofware proporciona servicios similares a nivel organización (FME Server) y alojamiento en la nube (FME Cloud)
  • Los usuarios pueden obtener/importar (mas de 350 formatos distintos) información de diversas fuentes de información simultáneamente (geoespaciales, BBDD, hojas de calculo, CAD, BIM, imagenes raster etc), manipular sus datos (depurándolos a medida realizando diversas operaciones con ellos) para despues cambiar su formato/esquema/contenido (mediante los llamados transformadores; dispone de cientos de ellos) y cargarla en otro espacio compatible de destino para la explotación de los mismos. Para resumir sus capacidades podemos apuntar que permite:
    1. Filtrar los datos por atributos.
    2. Crear clases a partir de determinados atributos.
    3. Separar datos según criterios preestablecidos.
    4. Generar entidades a partir de coordenadas.
    5. Transformación entre varios formatos (CAD, ráster, BIM, CSV, etc.).
    6. Cambiar el contenido de los datos, como su estructura (por ejemplo, sus atributos).
    7. Integración de datos de diversas fuentes.
    8. Fusionar tablas de datos entre ellas o con sus respectivas geometrías.
    9. Actualización de bases de datos espaciales.
    10. Creación de flujos de trabajo y automatizaciones.
    11. Fijar tareas que se repetirán periódicamente.
    12. Trabajo con metadatos.
    13. Validación de los datos.
    14. Reproyectar geodatos entre sistemas de coordenadas.
  •  Todos estos procesos son automatizables y se llevan a cabo sin necesidad de escribir una sola línea de código  aunque son permiten la integración con lenguajes como Python o SQL. Se permite la computación en paralelo de datos (dividir las tareas en otras mas pequeñas para buscar soluciones mas sencillas) mediante una interface gráfica (imagen inferior):
  • La herramienta FME Desktop dispone de varios modulos cada uno con su funcionalidad: 
  1. FME Data Inspector: Utilidad que permite ver con rapidez datos en cualquiera de los formatos admitidos por FME. Utilizado para obtener vista previa antes de la traducción o para verificarlos después de la misma.
  2. FME Quick Translator: Para ejecutar traducciones simples que no implican ninguna personalización y obtener resultados rápidos.
  3. FME Workbench:  Herramienta principal del paquete (en la que nos centraremos principalmente en este post) que permite la creación de espacios de trabajo y traducciones/escritura de datos complejas (con posibilidad de re_estructurar la info) a partir de varias fuentes de entrada y con posibilidad de salidas multiples.
  • El uso del software tiene un comportamiento escalable; es decir se pueden acometer desde las tareas mas simples que podemos realizar con cualquier software de escritorio GIS hasta verdaderos entramados/confluencias de datos y analísis para llegar al producto final deseado.
  • Así podemos crear un espacio de trabajo inicial (workspace) sencillo; como muestra, en el que se nos reclama los formatos de entrada y salida (Readers & Writers). En este caso se trata de un fichero de lineas en formato  *.kmz (Google Earth) en EPSG:4326 que transformamos a un lienzo de Autocad *.dwg con EPSG:25830 una operación muy común realizada constantemente (ver imagen inferior).
  • La conversión de datos es rápida y se pueden personalizar los campos y atributos que se transmiten de la lectura a la escritura. Posee una ventana de logs donde se notifican posibles errores/warnings y todos los "flujos internos" del proceso. El interface del programa recuerda a otros software de parametrización de procesos como en el diseño 3d (Grasshopper, Dynamo, Modelbuilder de Arcgis etc). De este modo podemos reutilizar los procesos ya programados para emplearlos en otros algoritmos con fuentes de origen diferentes.  En la captura inferior el espacio de trabajo generado con el numero de entidades procesadas y la edición del fichero visualizado en Autocad Civil 3D.
  • Pero lo más interesante es que se pueden interponer en el flujo de la conversión de datos una serie de transformadores que manipulen/evaluen y cambien las magnitudes tratadas. Para ello vamos a ver un sencillísimo ejemplo (recordemos que esto es una toma de contacto; luego cada cual tendrá que investigar y aplicar el recurso a lo que necesite). En la imagen inferior podeis visualizar el caso en cuestión donde se proponen un Lector (1) y un Escritor (5) y tres Transformadores de los mas comunes (2-3 y 4).
  • El fichero de inicio se trata de un archivo Esri *. shapefile con los cables submarinos mas importantes del mundo junto con su información asociada (al cual se asigna/declara un Reader). El fichero de destino será un archivo de G.E. *.kml en el que se habrán realizado ciertas operaciones mediante los transformadores interpuestos antes de ser escrito/exportado por  medio de un Writer
  • Primero seleccionamos los campos/atributos que nos interesa tratar en el fichero de inicio (User Attributes) dejando el nombre, ancho de banda, km de longitud y año de puesta en marcha.
  • Posteriormente interponemos el primer transformador que será un "Tester": nos permitirá establecer discriminación de los datos respecto a un valor determinado, la existencia o no de una característica, una operacion booleana, matemática o condicional. En este caso establecemos una prueba de que pasarán el Test todos los elementos que tengan mas de 5000 kms de largo y un ancho de banda de + de 3000 Gygabites:
  • Podemos ver que existen en total 281 elementos lineales (en este caso). Que pasen el criterio son exactamente 35 entidades y que no cumplen son el resto 246 entidades. A partir podemos seguir trabajando con el flujo de ambos o alguno (que nos interese) de los datos arrojados por el Tester. En este caso tomaremos los elementos que cumplen el criterio y los trataremos con un Attribute_Renamer para renombar los atributos al castellano por ejemplo..
  • Los transformadores disponen de un buscador que se activa cuando clickamos sobre el Canvas de FME y escribimos cualquier cosa. Con solo poner un palabra o el inicio de la misma (nombre del transformador) nos dirige hacia los mismos (tambien existe una lista de todos los Transformadores; bien clasificados alfabéticamente, o por categorías). El buscador te orienta sobre la utilidad de cada recurso; que es lo que hace o lo que podemos obtener con su uso. Hay una cantidad brutal de estos elementos pero al final se suelen emplear siempre los mismos; la verdad (yo manejo entre 35-40 para mis menesteres)
  • Incluimos un KmlpropertySetter para establecer como se mostrarán las entidades en Google Earth antes de ser exportadas por el Writer final. Que campos mostrará el arbol de navegación, cuales magnitudes  y como  serán mostradas en el Popup cuando pinchemos sobre las entidades y con qué prioridad. El tipo de geometria a mostrar, si las entidades están ancladas al suelo son otros aspectos tambien contemplados:
  • Por último solo queda correr todo el proceso (Run>cinta de opciones) para obtener los resultados deseados. Hay que visualizar el arbol de logs/warnings para ver que no hay ningun error posible. Imaginad que podemos realizar exportaciones a distintos formatos a la vez con distintas operaciones de discriminación y guardar el algoritmo programado para otra ocasión similar; como ya habiamos comentado antes. En la imagen adjunta el resultado final visualizado en Google Earth/FME:
  • Esto ha sido un uso sencillo del dia a dia (recordemos que GE importa directamente ficheros *.shp pero no pueden manipularse los datos recibidos). El potencial real de FME se centra en tratar BBDD enormes de programas/formatos GIS que necesitan de tratamiento profundo/depuración antes de efectuar la conversión final. Aprovecho para dejaros un Webinar de Youtube donde se puede ver de una forma mas dinámica las funcionalidades de este interesante y complejo software (difícil de tragar pero de gran proyección si somos capaces de buscarle la utilidad en nuestro flujo de trabajo).
  • En fin otro recurso mas en este caso de GIS para que lo investigueis si os cuadra. Muy contento de volver a publicar entradas en mi Blog (son ya casi 9 años y 63 publicaciones). A veces el estado de ánimo, la motivación o las circunstancias personales no acompañan o no son las mejores --> pero supongo que el que es inquieto y cansino como yo;  ya se sabe, la burra siempre vuelve al trigo.
  • Hasta la proxima.
  • By Rah.

2 comentarios:

  1. Bienvenido de vuelta! Tus posts son magistrales, en las dos principales acepciones de la palabra. Gracias por tu tiempo y por acercarnos temas y herramientas de todo tipo.

    ResponderEliminar