---
title: "Service web utilisé comme table de consultation pour affiner les données GPS"
date: "2012-06-20"
categories: 
  - "data-integration"
tags: 
  - "altova-xmlspy"
  - "charts"
  - "data-mapping"
  - "diffdog"
  - "file-comparison"
  - "mapforce"
  - "missionkit"
  - "stylevision"
  - "web-services"
  - "wsdl"
description: Cet article explique comment améliorer la précision des données d'altitude GPS en utilisant le service web de l'USGS comme une table de référence, grâce à des techniques de cartographie des données.
---
Status: #blog

Tags:  #altova-xmlspy #charts #data-mapping #diffdog #file-comparison #mapforce #missionkit #stylevision #web-services #wsdl

Categories: [data-integration](/blog/fr/category/data-integration.md)
# Service web utilisé comme table de consultation pour affiner les données GPS

Les données d'altitude enregistrées par les appareils GPS sont notoirement imprécises, en particulier dans les terrains accidentés comme celui de la vallée de la Russian River, que nous avions mentionné dans [un article précédent](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html).

Le profil d'altitude final, extrait du fichier GPX de la vallée de la Russian River, suscite des interrogations pour plusieurs raisons. Tout d'abord, le graphique indique que nous avons descendu à une altitude d'environ 15 mètres en dessous du niveau de la mer. C'est difficile à croire, étant donné que nous suivions la berge de la rivière, à seulement environ 16 kilomètres de l'océan Pacifique.

![Graphique Altova StyleVision](https://lh5.ggpht.com/-RyKmstA4f98/T-HOw4cQf4I/AAAAAAAAA1I/__oEl7-5bUk/clip_image001%25255B3%25255D.png?imgmax=800 "Altova StyleVision Chart") Deuxièmement, nous nous dirigeions principalement vers l'ouest, en suivant le cours de la rivière vers l'aval, mais la trace indique une pente principalement ascendante.

Nous pouvons évaluer les données d'altitude GPS enregistrées en les comparant aux informations disponibles auprès du United States Geological Survey (USGS). Le USGS propose un service en ligne qui accepte les coordonnées de latitude et de longitude, et qui renvoie des données d'altitude mesurées par la NASA, dont la précision a été évaluée à l'aide de plus de 13 000 points de référence situés sur le territoire continental des États-Unis.

L'utilisation du service web d'altitude dans une transformation [Altova MapForce](https://www.altova.com/fr/mapforce.html) nous permettra d'extraire chaque point du fichier GPX, d'envoyer les coordonnées au service web de l'USGS, et de créer un nouveau fichier GPX contenant des données d'altitude corrigées.

<!--more-->

Cette solution correspond au modèle de table de correspondance utilisé pour les services web, tel que décrit dans l'article de blog intitulé "[Modèles de mappage de données](https://www.altova.com/blog/2012/06/data-mapping-patterns.html)". Chaque ensemble de coordonnées, identifié par sa latitude et sa longitude, correspond exactement à une seule valeur d'altitude. Tout comme une table de correspondance locale, les points de données sources sont uniques, mais les valeurs de sortie peuvent être dupliquées.

Nous pouvons commencer à nous familiariser avec le service web de l'USGS en ouvrant le fichier WSDL dans XMLSpy. Cela est particulièrement utile pour consulter la documentation intégrée.

![Examiner un fichier WSDL en mode texte dans XMLSpy](https://lh6.ggpht.com/-x9YnOlGaefU/T-HOxNqsHkI/AAAAAAAAA1Q/_qQdDkJrzX4/clip_image002%25255B3%25255D.png?imgmax=800 "Reviewing a WSDL in XMLSpy text view")

XMLSpy peut également générer une requête SOAP pour le service web, ce qui permet d'identifier et de tester facilement les paramètres nécessaires.

![Requête SOAP générée par XMLSpy](https://lh6.ggpht.com/--sibDXwVNF8/T-HOxmci9hI/AAAAAAAAA1Y/KUv5-B89JJ8/clip_image003%25255B3%25255D.png?imgmax=800 "SOAP request generated by XMLSpy")

Pour le premier test, nous avons utilisé les coordonnées où l'altitude indiquée était inférieure au niveau de la mer. L'élément Source\_Layer spécifie quel ensemble de données cartographiques doit être interrogé pour obtenir le résultat. Nous avons sélectionné une carte couvrant la moitié ouest des États-Unis dans la liste disponible à l'adresse [http://gisdata.usgs.gov/XMLWebServices2/Elevation\_Service\_Methods.php](http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php)

![Requête SOAP avec paramètres dans XMLSpy](https://lh6.ggpht.com/-3oYTJSX8V0w/T-HOx2xpomI/AAAAAAAAA1g/mFUacQiAX0o/clip_image004%25255B3%25255D.png?imgmax=800 "SOAP request with parameters in XMLSpy")

XMLSpy peut envoyer la requête au fournisseur de services web et ouvrir automatiquement le résultat.

 

![Réponse SOAP visualisée dans XMLSpy](https://lh6.ggpht.com/-SQvGvjeqwnU/T-HOyeyDPCI/AAAAAAAAA1o/EJnfZXMsXCU/clip_image005%25255B3%25255D.png?imgmax=800 "SOAP response viewed in XMLSpy")

Là où le GPS indiquait une profondeur de 12 mètres sous le niveau de la mer, l'USGS (United States Geological Survey) a rapporté que l'altitude réelle était de plus de 33 mètres au-dessus du niveau de la mer.

Nous aurions pu demander l'altitude en pieds, mais nous avons choisi de ne pas le faire, car le format GPX définit la valeur de l'altitude en mètres. De toute façon, nous prévoyons d'appliquer la feuille de style [StyleVision](https://www.altova.com/fr/stylevision.html) pour la [localisation](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) des données finales.

**Cartographie des données avec un service web**

Parfois, il est utile de créer une transformation MapForce simple et simplifiée pour tester un service web avant de lui envoyer un grand ensemble de données. La capture d'écran ci-dessous montre une transformation simple pour le service web "getElevation", utilisant des constantes de type chaîne de caractères pour les paramètres et un fichier texte pour la sortie.

![Cartographie des tests de services web dans MapForce](https://lh5.ggpht.com/-VZuHV13mkDQ/T-HOyduSq5I/AAAAAAAAA1w/Ljkg-tSkQwk/clip_image006%25255B3%25255D.png?imgmax=800 "Web service test mapping in MapForce")

Le bouton "Sortie MapForce" permet de lancer la transformation avec les paramètres spécifiés. Voici le résultat :

![Résultat du mappage de test MapForce](https://lh5.ggpht.com/-ENG6c5uitZ8/T-HOy3C4nPI/AAAAAAAAA14/0zCeHpE6ZO0/clip_image007%25255B3%25255D.png?imgmax=800 "Output of the MapForce test mapping")

Nous allons commencer la version de production de la transformation MapForce en utilisant deux copies du schéma GPX, et nous connecterons tous les éléments de la source à la destination, à l'exception de l'altitude.

![Cartographie partielle des fichiers GPX dans MapForce](https://lh6.ggpht.com/-SbmDoTbcEwo/T-HOzMe4htI/AAAAAAAAA2A/KBqYrPAT4aA/clip_image008%25255B3%25255D.png?imgmax=800 "Partial GPX mapping in MapForce")

Ensuite, nous copions simplement la définition du service web, avec ses paramètres, de l'environnement de test à la version de production, et nous établissons une connexion entre les variables X_Value et Y_Value du service web et les coordonnées de longitude et de latitude du fichier GPX source.

![L'appel au service web MapForce permet d'affiner les données d'altitude au format GPX](https://lh6.ggpht.com/-mjks13bElcc/T-HOzfuX3MI/AAAAAAAAA2I/KXSffKCwi-g/clip_image009%25255B3%25255D.png?imgmax=800 "MapForce Web service call refines GPX elevation data")

Du côté de la sortie du service web, nous connectons simplement le résultat à l'élément d'altitude du composant de sortie. (Nous avons arrondi l'altitude en mètres à deux décimales, car une précision supérieure me semble excessive – nous ne mesurons pas ici les mouvements des plaques tectoniques !)

Lorsque nous exécutons la nouvelle version de la cartographie, les coordonnées de chaque élément <trkpt> sont transmises au service web, et la valeur d'altitude renvoyée est intégrée dans <ele> du côté de la sortie.

![Résultat de la cartographie MapForce au format GPX, avec des données d'altitude mises à jour](https://lh5.ggpht.com/-vn8sNaJY74Q/T-HOzgpx6lI/AAAAAAAAA2Q/2FuKiNwGmd4/clip_image010%25255B3%25255D.png?imgmax=800 "Output of the MapForce GPX mapping with updated elevation")

Nous pouvons comparer le fichier GPX converti, avec les nouvelles données d'altitude, au fichier original en utilisant [Altova DiffDog](https://www.altova.com/fr/diffdog/diff-merge-tool.html). Les différences sont clairement mises en évidence dans la vue en grille. De plus, quelques zéros inutiles ont été supprimés des valeurs de latitude et de longitude lors de la conversion.

![Comparaison des fichiers GPX originaux et mis à jour effectuée par DiffDog](https://lh5.ggpht.com/-2KgbPgsJsa8/T-HO0TwCP4I/AAAAAAAAA2Y/CrTQV9WDUXc/clip_image011%25255B3%25255D.png?imgmax=800 "DiffDog comparison of the original and updated GPX files")

Nous pouvons également visualiser le fichier converti à l'aide de la feuille de style StyleVision SPS, qui intègre des fonctionnalités de localisation.

![Représentation graphique de StyleVision des données GPX mises à jour](https://lh3.ggpht.com/-vSWj8_nctng/T-HO0yFa0HI/AAAAAAAAA2g/sHHvELJqhiU/clip_image012%25255B3%25255D.png?imgmax=800 "StyleVision chart of the updated GPX data")Comme on peut s'y attendre en suivant un cours d'eau en aval, le tracé ne descend pas en dessous du niveau de la mer, et la tendance générale est à la descente !

Les données d'altitude enregistrées par les appareils GPS sont intrinsèquement moins précises que les coordonnées x-y. De plus, en vous déplaçant, les collines et autres obstacles peuvent bloquer la ligne de visée vers un ou plusieurs satellites GPS, ce qui entraîne la perte de leurs signaux radio.

La carte ci-dessous illustre une portion du parcours dans la vallée de la rivière russe. Le point rouge indique un endroit où le GPS a enregistré une altitude de -12,8 mètres, alors que l'USGS a rapporté +33,28 mètres. La colline de Wild Hog, située directement à l'ouest, culmine à plus de 335 mètres, obstruant de vastes portions du ciel et bloquant très probablement les signaux des satellites GPS.

![Carte topographique de la colline Wild Hog](https://lh5.ggpht.com/-3qCQGD1C36s/T-HO1Ua6bhI/AAAAAAAAA2o/Mp4-wETUD2Y/clip_image013%25255B3%25255D.png?imgmax=800 "Terrain map of Wild Hog Hill")En dernier point à noter, nous avons converti les données d'altitude provenant de.. [Fichier GPX pour une randonnée dans le New Hampshire](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) et j'ai utilisé XMLSpy pour représenter graphiquement les données d'altitude de l'USGS en vert, en les superposant à la trace d'altitude originale obtenue par GPS.

![Graphique XMLSpy présentant les données d'altitude originales et les données d'altitude mises à jour](https://lh6.ggpht.com/-rmK0R4VS9ko/T-HO1r7-KfI/AAAAAAAAA2w/BhJxiujYmpE/clip_image014%25255B3%25255D.png?imgmax=800 "XMLSpy chart of original and updated elevation data")

Il n'est pas difficile de déterminer quelle forme représente plus fidèlement un versant montagneux ancien et érodé de la Nouvelle-Angleterre.

**Si vous souhaitez utiliser les outils de** [**Altova MissionKit**](https://www.altova.com/fr/missionkit/software-development-tools.html) **pour créer vos propres correspondances de données en utilisant un service web comme table de référence,** [**cliquez ici pour télécharger une version d'essai gratuite](https://www.altova.com/fr/download-trial/)>**.**
