Procesar múltiples archivos de entrada en un único mapeo de datos

Las tareas típicas de conversión de datos requieren el procesamiento de numerosos archivos de entrada que llegan en lotes. Altova MapForce incluye funciones que le permiten gestionar grupos de archivos con una intervención mínima. Por ejemplo, recientemente copiamos un conjunto de archivos de la tarjeta de memoria de una cámara digital con soporte GPS. Cada archivo .LOG es un archivo CSV que contiene las coordenadas GPS de una ruta específica.

Diseñamos rápidamente un sistema de conversión para transformar los datos en formato CSV a formato .gpx basado en XML, y procesamos los tres archivos para generar tres archivos de salida en una sola ejecución:

Primero, utilizamos un carácter comodín en el nombre del archivo de entrada, dentro del cuadro de diálogo de propiedades, para el componente de entrada del mapeo. Esto indica a MapForce que procese individualmente cada archivo del directorio de trabajo que coincida con el comodín.

Si está diseñando una conversión compleja, o si los archivos de entrada son muy grandes, puede utilizar un único nombre de archivo para desarrollar la configuración de la conversión, y luego cambiar a un comodín cuando esté satisfecho con el resultado de la configuración.

Funciones para la gestión de rutas de archivos

La biblioteca de funciones integrada de MapForce incluye funciones de rutas de archivo que podemos utilizar para gestionar los nombres de los archivos de salida. Si definimos un único archivo de salida, este se actualizará con nuevos datos cada vez que procesemos una nueva entrada.

Puede combinar las funciones de ruta de archivo con otras funciones de texto para tener un control total sobre los nombres y las ubicaciones de los archivos de salida. Decidimos mantener los archivos de salida en el mismo directorio que los archivos de entrada, pero creamos nombres de archivo más descriptivos y utilizamos la extensión de archivo .gpx.

La sección del proceso que se muestra a continuación utiliza la función de concatenación de cadenas junto con funciones de rutas de archivo para generar el archivo de salida "1211190converted.gpx" a partir de "1211190.LOG", y así sucesivamente.

También puede utilizar funciones de rutas de archivo para generar cadenas de texto e insertarlas como resultado. El esquema XML para los archivos .gpx contiene un elemento de descripción de metadatos. Decidimos insertar el nombre del archivo de entrada en los metadatos para vincular explícitamente el archivo de salida a los datos originales. Esta estrategia hace que el archivo de salida sea autodescriptivo y puede ayudar en la depuración si necesita rastrear un resultado inesperado hasta la fuente original.

La sección del mapeo que se muestra a continuación inserta el nombre del archivo de origen en una cadena de texto y asocia esa cadena a los metadatos <desc> elemento:

La descripción resultante se encuentra en la línea 4 de la vista previa de los resultados de la geolocalización:

[Imagen de una vista previa de los datos de salida, con un nombre de archivo]

Filtrado de datos de entrada

El elemento central de esta asignación de datos requería un filtro en el archivo de entrada. Los archivos de registro GPS de la cámara se registran de acuerdo con la especificación de la Asociación Nacional de Electrónica Marina (NMEA). Una parte de uno de los archivos de entrada se muestra a continuación:

Después de la primera línea, cada punto registrado se describe mediante dos frases NMEA, donde el tipo de frase se identifica en el primer campo. Cada frase GGA incluye la hora, la latitud, la longitud, la altitud y datos adicionales sobre la calidad de la posición. Cada frase RMC contiene la hora, la latitud, la longitud y la fecha.

Una sentencia RMC contiene los datos mínimos que necesitamos para generar un archivo .gpx <trkpt> elemento, por lo que podemos utilizar un filtro para seleccionar solo aquellas líneas de la entrada, como se muestra aquí:

Si el tipo de mensaje en el primer campo de una fila contiene "$GPRMC", se procesa. De lo contrario, la fila se ignora.

Los datos reales del archivo de entrada también requerían cierta manipulación. Para cada latitud y longitud, tuvimos que combinar varios campos del archivo de origen que definían grados, minutos y segundos, y convertirlos a grados decimales. También fue necesario combinar los campos de fecha y hora, y registrar el resultado en formato ISO 8601, tal como lo exige el formato .gpx, por ejemplo, 2012-11-19T20:43:23Z. Definimos cada una de esas conversiones como funciones de usuario para encapsular su complejidad y separarlas del programa principal de mapeo.

Este mapeo también ofrece la oportunidad de reutilizar la función de usuario "getElevationUS" que definimos en la publicación anterior Prepárese para lo inesperado: Altova MissionKit resuelve un misterio de formato numérico. En esta ocasión, redondeamos los datos de elevación a tres decimales, lo que representa el milímetro más cercano.

La sección principal del mapeo de datos de Camerlog a GPX, que incluye funciones definidas por el usuario, se ve así:

Aquí se muestra uno de los archivos de salida, que contiene un elemento <trk>, un elemento <trkseg> y varios elementos <trkpt>.

El menú de salida de MapForce ofrece una opción que permite validar los archivos de salida con el esquema XML .gpx:

Si desea utilizar Altova MapForce para procesar archivos de entrada por lotes y aplicar sus propias configuraciones de mapeo de datos Haga clic aquí para descargar una versión de prueba gratuita..