---
title: "Traiter plusieurs fichiers d'entrée dans une seule opération de mappage de données"
date: "2013-01-29"
categories: 
  - "applications"
  - "data-integration"
tags: 
  - "data-mapping"
  - "mapforce"
description: Découvrez comment traiter efficacement plusieurs fichiers d'entrée pour la mise en correspondance de données grâce à Altova MapForce. Ce guide aborde les caractères génériques, les fonctions de chemin de fichier et les techniques de filtrage.
---
Status: #blog

Tags:  #data-mapping #mapforce

Categories: [ETL](/blog/fr/category/etl.md) | [data-integration](/blog/fr/category/data-integration.md)
# Traiter plusieurs fichiers d'entrée dans une seule opération de mappage de données

Les tâches typiques de conversion de données nécessitent le traitement de nombreux fichiers d'entrée qui arrivent par lots. [Altova MapForce](https://www.altova.com/fr/mapforce.html) intègre des fonctionnalités qui vous permettent de gérer des groupes de fichiers avec une intervention minimale. Par exemple, nous avons récemment copié un ensemble de fichiers à partir de la carte mémoire d'un appareil photo numérique doté d'un système de géolocalisation. Chaque fichier .LOG est un fichier CSV contenant les coordonnées GPS pour un itinéraire spécifique.

![Liste des fichiers sources pour la conversion de données](https://lh4.ggpht.com/-Y_WZhryIjkY/UPl5wriQH7I/AAAAAAAAA9Q/EsluCIUq068/clip_image001%25255B3%25255D.png?imgmax=800 "Directory list of source files for data conversion")

Nous avons rapidement conçu une méthode de conversion pour transformer les données CSV au format .gpx, basé sur XML, et nous avons traité les trois fichiers simultanément pour générer trois fichiers de sortie en une seule opération

![Liste des fichiers de sortie générés automatiquement](https://lh3.ggpht.com/-_QzOFmBto78/UPl5xBjlsjI/AAAAAAAAA9Y/DIJBSZ6AdMw/clip_image002%25255B3%25255D.png?imgmax=800 "List of automatically generated output files")

<!--more-->

Tout d'abord, nous avons utilisé un caractère générique dans le nom du fichier d'entrée, dans la boîte de dialogue des propriétés, pour le composant d'entrée de la transformation. Cela indique à MapForce de traiter individuellement chaque fichier du répertoire de travail qui correspond au caractère générique.

![Utilisation d'un caractère générique pour le fichier d'entrée de la configuration](https://lh3.ggpht.com/-iqz0XDhHvLQ/UPl5xo-viaI/AAAAAAAAA9g/TO9klug7KLc/clip_image003%25255B3%25255D.png?imgmax=800 "Using a wildcard for the mapping input file")

Si vous concevez une conversion complexe, ou si les fichiers d'entrée sont très volumineux, vous pouvez utiliser un seul nom de fichier unique pour définir la correspondance, puis passer à un caractère générique une fois que vous êtes satisfait du résultat de la correspondance.

**Fonctions de chemin d'accès aux fichiers**

La bibliothèque de fonctions MapForce intégrée comprend des fonctions de gestion de chemins de fichiers que nous pouvons utiliser pour gérer les noms des fichiers de sortie. Si nous définissons un seul fichier de sortie, celui-ci sera mis à jour avec les nouvelles données à chaque fois que nous traitons un fichier d'entrée successif.

![Fonctions de chemin d'accès aux fichiers dans la bibliothèque de fonctions MapForce](https://lh5.ggpht.com/-JxIKHZXrzEo/UPl5xzHgSnI/AAAAAAAAA9o/6APxltAkffU/clip_image004%25255B3%25255D.png?imgmax=800 "File path functions in the MapForce function library")

Vous pouvez combiner les fonctions de chemin de fichier avec d'autres fonctions de manipulation de chaînes de caractères pour un contrôle total sur les noms et les emplacements des fichiers de sortie. Nous avons choisi de conserver les fichiers de sortie dans le même répertoire que les fichiers d'entrée, mais de créer des noms de fichiers plus descriptifs, et d'utiliser l'extension de fichier .gpx.

La portion du script présentée ci-dessous utilise la fonction de concaténation de chaînes de caractères, ainsi que des fonctions de manipulation de chemins de fichiers, pour générer le fichier de sortie 1211190converted.gpx à partir du fichier 1211190.LOG, et ainsi de suite.

![Utilisation de fonctions de cheminement avec une fonction de chaîne de caractères](https://lh4.ggpht.com/-l6ypssdA9Mg/UPl5ydkZBjI/AAAAAAAAA9w/2IfnpeT0TDY/clip_image005%25255B3%25255D.png?imgmax=800 "Using path functions with a string function")

Vous pouvez également utiliser des fonctions de chemin de fichier pour générer des chaînes de caractères et les insérer comme résultat. Le schéma XML pour les fichiers .gpx contient un élément de description des métadonnées. Nous avons choisi d'insérer le nom du fichier d'entrée dans les métadonnées afin de lier explicitement le fichier de sortie aux données d'origine. Cette stratégie rend le fichier de sortie auto-documenté et peut faciliter le débogage si vous devez retracer un résultat inattendu jusqu'à sa source originale.

La portion du code présentée ci-dessous insère le nom du fichier source dans une chaîne de caractères, puis associe cette chaîne à l'élément de métadonnées `<desc>`

![Associer le nom du fichier aux données de sortie](https://lh4.ggpht.com/-_NjzoK77594/UPl5zLiSFyI/AAAAAAAAA94/3E_Qvk6srt8/clip_image006%25255B3%25255D.png?imgmax=800 "Mapping the file name as output data")

La description résultante se trouve à la ligne 4 du.. [Aperçu de la sortie de la cartographie](https://www.altova.com/fr/mapforce/mapping-output.html):

**[Image : Aperçu des données de sortie avec le nom du fichier.]**

**Filtrage des données d'entrée**

La partie essentielle de cette opération de mappage des données nécessitait un filtre appliqué au fichier d'entrée. Les fichiers journaux GPS des caméras sont enregistrés conformément à la spécification de la National Marine Electronics Association (NMEA). Un extrait de l'un des fichiers d'entrée est présenté ci-dessous :

![Exemple de données provenant du journal GPS de la caméra](https://lh6.ggpht.com/-My1iWbnP1Fs/UPl5z4xF7tI/AAAAAAAAA-I/dmH9bWwphCI/clip_image008%25255B3%25255D.png?imgmax=800 "Sample data from the camera GPS log")

Après la première ligne, chaque point enregistré est décrit par deux phrases NMEA, où le type de phrase est identifié dans le premier champ. Chaque phrase GGA comprend l'heure, la latitude, la longitude, l'altitude, et des données supplémentaires concernant la qualité de la position. Chaque phrase RMC contient l'heure, la latitude, la longitude et la date.

Une phrase RMC contient les données minimales nécessaires pour générer un fichier .gpx `<trkpt>` élément, nous pouvons donc utiliser un filtre pour ne sélectionner que les lignes souhaitées dans les données d'entrée, comme illustré ici :

![Filtrer les données d'entrée pour extraire les lignes](https://lh5.ggpht.com/-u3MGw07n5Jg/UPl50MRDs2I/AAAAAAAAA-M/Jdm8sOiyLko/clip_image009%25255B3%25255D.png?imgmax=800 "Filtering the input data to extract rows")

Si le type de message présent dans le premier champ d'une ligne contient "$GPRMC", cette ligne est traitée. Sinon, la ligne est ignorée.

Les données réelles contenues dans le fichier d'entrée nécessitaient également certaines manipulations. Pour chaque latitude et longitude, nous avons dû combiner plusieurs champs de la source qui définissaient les degrés, les minutes et les secondes, et les convertir en degrés décimaux. Nous avons également combiné les champs de date et d'heure et avons enregistré le résultat au format ISO 8601, comme requis par le format .gpx, par exemple 2012-11-19T20:43:23Z. Nous avons défini chacune de ces conversions sous forme de fonctions utilisateur afin de regrouper leur complexité et de les séparer de la partie principale du programme de cartographie.

Cette cartographie offre également l'opportunité de réutiliser la fonction utilisateur `getElevationUS` que nous avons définie dans la publication précédente [Ne soyez pas surpris : Altova MissionKit résout une énigme de format de nombres](https://www.altova.com/blog/2013/01/expect-unexpected-altova-missionkit.html). Cette fois, nous avons arrondi les données d'altitude à trois décimales, ce qui représente le millimètre le plus proche.

La partie principale de la conversion des données Camerlog vers le format GPX, avec les fonctions utilisateur, se présente comme suit :

![Le cœur du processus de mappage des données réside dans l'utilisation de fonctions définies par l'utilisateur](https://lh6.ggpht.com/-2HVaK82dfyo/UPl50fC_aHI/AAAAAAAAA-Y/1rMavSy31hM/clip_image010%25255B3%25255D.png?imgmax=800 "Core of the data mapping with user functions")

Voici un exemple de fichier de sortie qui présente un élément `<trk>`, un élément `<trkseg>`, ainsi que plusieurs éléments `<trkpt>`.

![Exemple de données de sortie](https://lh6.ggpht.com/-HQudomQ_V9o/UPl51JbUgXI/AAAAAAAAA-g/OH2DiYSvrZU/clip_image011%25255B3%25255D.png?imgmax=800 "Sample output data")

Le menu "Sortie" de MapForce propose une sélection qui permet de valider les fichiers de sortie par rapport au schéma XML .gpx :

![Résultats de la validation](https://lh6.ggpht.com/-9PvYWtWIYh0/UPl51dQrWfI/AAAAAAAAA-o/1NI8SHJzfLg/clip_image012%25255B3%25255D.png?imgmax=800 "Validation results")

**Si vous souhaitez utiliser** [**Altova MapForce**](https://www.altova.com/fr/download-trial.html) **pour traiter des fichiers d'entrée par lots et effectuer vos propres conversions de données,** [**cliquez ici pour télécharger une version d'essai gratuite](https://www.altova.com/fr/download-trial.html).****
