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.
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.
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 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.
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". 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.

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.

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

XMLSpy peut envoyer la requête au fournisseur de services web et ouvrir automatiquement le résultat.

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 pour la localisation 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.

Le bouton "Sortie MapForce" permet de lancer la transformation avec les paramètres spécifiés. Voici le résultat :

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.

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.

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

Nous pouvons comparer le fichier GPX converti, avec les nouvelles données d'altitude, au fichier original en utilisant Altova DiffDog. 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.

Nous pouvons également visualiser le fichier converti à l'aide de la feuille de style StyleVision SPS, qui intègre des fonctionnalités de localisation.
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.
En dernier point à noter, nous avons converti les données d'altitude provenant de.. Fichier GPX pour une randonnée dans le New Hampshire 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.

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 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>.