---
title: "Webservice als naslagtabel om GPS-gegevens te verfijnen"
date: "2012-06-20"
categories: 
  - "data-integration"
tags: 
  - "altova-xmlspy"
  - "charts"
  - "data-mapping"
  - "diffdog"
  - "file-comparison"
  - "mapforce"
  - "missionkit"
  - "stylevision"
  - "web-services"
  - "wsdl"
description: Dit artikel beschrijft hoe u GPS-hoogtegegevens kunt verfijnen met behulp van de webdienst van de USGS als een referentietabel, waardoor de nauwkeurigheid wordt verbeterd door middel van datamappingtechnieken.
---
Status: #blog

Tags:  #altova-xmlspy #charts #data-mapping #diffdog #file-comparison #mapforce #missionkit #stylevision #web-services #wsdl

Categories: [data-integration](/blog/nl/category/data-integration.md)
# Webservice als naslagtabel om GPS-gegevens te verfijnen

Hoogtegegevens die door GPS-apparaten worden geregistreerd, zijn berucht om hun onnauwkeurigheid, vooral in heuvelachtig gebied, zoals het voorbeeld van de Russian River Valley dat we in [een eerdere post](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html) noemden.

De hoogteprofielgegevens die zijn afgeleid van het GPX-bestand van de Russian River Valley zijn om verschillende redenen verdacht. Ten eerste toont de grafiek aan dat we bijna 15 meter onder zeeniveau zijn gedaald. Dat is moeilijk te geloven, aangezien we langs de oever van de rivier reden, slechts ongeveer 16 kilometer verwijderd van de Stille Oceaan.

![Altova StyleVision-grafiek](https://lh5.ggpht.com/-RyKmstA4f98/T-HOw4cQf4I/AAAAAAAAA1I/__oEl7-5bUk/clip_image001%25255B3%25255D.png?imgmax=800 "Altova StyleVision Chart") Ten tweede gingen we voornamelijk naar het westen, langs de rivier richting de monding, maar de routekaart laat een overwegend stijgende helling zien.

We kunnen de geregistreerde GPS-hoogtedata evalueren door deze te vergelijken met informatie die beschikbaar is van de United States Geological Survey (USGS). De USGS biedt een webdienst aan die breedte- en lengtegraden accepteert en hoogtedata teruggeeft die zijn gemeten door NASA en waarvan de nauwkeurigheid is beoordeeld op basis van meer dan 13.000 controlepunten in de Verenigde Staten.

Door de hoogtedienst in een [Altova MapForce](https://www.altova.com/nl/mapforce.html) mapping te gebruiken, kunnen we elk punt uit het GPX-bestand extraheren, de coördinaten naar de USGS-webdienst sturen en een nieuw GPX-bestand genereren met gecorrigeerde hoogtedata.

<!--more-->

Deze oplossing komt overeen met het "zoektafel"-patroon voor webdiensten, zoals beschreven in de blogpost "[Data Mapping Patterns](https://www.altova.com/blog/2012/06/data-mapping-patterns.html)". Elke set coördinaten, gedefinieerd door breedte- en lengtegraad, heeft precies één bijbehorende hoogte waarde. Net als bij een lokale zoektafel zijn de brongegevens uniek, maar de uitvoerwaarden kunnen wel worden herhaald.

We kunnen vertrouwd raken met de USGS-webdienst door het WSDL-bestand te openen in XMLSpy. Dit is vooral handig om de ingebouwde documentatie te bekijken.

![Het bekijken van een WSDL-bestand in de tekstweergave van 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 kan ook een SOAP-verzoek genereren voor de webservice, waardoor het eenvoudig is om de benodigde parameters te identificeren en te testen.

![SOAP-verzoek gegenereerd door XMLSpy](https://lh6.ggpht.com/--sibDXwVNF8/T-HOxmci9hI/AAAAAAAAA1Y/KUv5-B89JJ8/clip_image003%25255B3%25255D.png?imgmax=800 "SOAP request generated by XMLSpy")

Voor de eerste test hebben we de coördinaten gebruikt waar de hoogte lager was dan de zeespiegel. Het element "Source\_Layer" specificeert welke kaartset gebruikt moet worden om het resultaat op te vragen. We hebben een kaart geselecteerd die het westelijke deel van de Verenigde Staten bestrijkt, uit de lijst die te vinden is op [http://gisdata.usgs.gov/XMLWebServices2/Elevation\_Service\_Methods.php](http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php)

![Een SOAP-verzoek met parameters in XMLSpy](https://lh6.ggpht.com/-3oYTJSX8V0w/T-HOx2xpomI/AAAAAAAAA1g/mFUacQiAX0o/clip_image004%25255B3%25255D.png?imgmax=800 "SOAP request with parameters in XMLSpy")

XMLSpy kan het verzoek naar de aanbieder van de webservice sturen en het resultaat automatisch openen.

 

![Het SOAP-antwoord wordt bekeken in XMLSpy](https://lh6.ggpht.com/-SQvGvjeqwnU/T-HOyeyDPCI/AAAAAAAAA1o/EJnfZXMsXCU/clip_image005%25255B3%25255D.png?imgmax=800 "SOAP response viewed in XMLSpy")

Waar het GPS-systeem een diepte van 12 meter onder zeeniveau registreerde, meldt de USGS dat de werkelijke hoogte meer dan 33 meter boven zeeniveau was.

We hadden de hoogte in voet kunnen opvragen, maar hebben dat niet gedaan, omdat het GPX-schema de hoogte in meters definieert. We zijn van plan om in elk geval het [StyleVision](https://www.altova.com/nl/stylevision.html) stijlsjabloon te gebruiken voor [lokalisatie](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) van de uiteindelijke data.

**Data-mapping met een webservice**

Soms is het handig om een kleine, vereenvoudigde MapForce-mapping te maken om de webservice te testen voordat er een grote hoeveelheid data wordt verzonden. De onderstaande screenshot toont een eenvoudige mapping voor de webservice "getElevation", waarbij stringconstanten worden gebruikt om parameters aan te geven en een tekstbestand wordt gebruikt voor de uitvoer.

![Webservice-testmapping in MapForce](https://lh5.ggpht.com/-VZuHV13mkDQ/T-HOyduSq5I/AAAAAAAAA1w/Ljkg-tSkQwk/clip_image006%25255B3%25255D.png?imgmax=800 "Web service test mapping in MapForce")

Door op de knop "MapForce Output" te klikken, wordt de transformatie uitgevoerd met de opgegeven parameters. Hier is het resultaat:

![Resultaat van de testmapping in MapForce](https://lh5.ggpht.com/-ENG6c5uitZ8/T-HOy3C4nPI/AAAAAAAAA14/0zCeHpE6ZO0/clip_image007%25255B3%25255D.png?imgmax=800 "Output of the MapForce test mapping")

We beginnen met de productieversie van de MapForce-mapping met twee kopieën van het GPX-schema, en we verbinden alle elementen van de bron naar de bestemming, met uitzondering van de hoogte.

![Gedeeltelijke GPX-mapping in MapForce](https://lh6.ggpht.com/-SbmDoTbcEwo/T-HOzMe4htI/AAAAAAAAA2A/KBqYrPAT4aA/clip_image008%25255B3%25255D.png?imgmax=800 "Partial GPX mapping in MapForce")

Vervolgens kopiëren we eenvoudigweg de definitie van de webservice, samen met de bijbehorende parameters, van de testomgeving naar de productieomgeving. Daarnaast verbinden we de variabelen X_Value en Y_Value in de webservice met de lengte- en breedtegraad in het bron-GPX-bestand.

![De MapForce webservice verfijnt de hoogtedata in GPX-bestanden](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")

Aan de uitvoerkant van de webservice verbinden we simpelweg het resultaat met het element voor de hoogte in het uitvoercomponent. (We hebben de hoogte in meters afgerond op twee decimalen, omdat een nauwkeurigheid tot op één tiende geen toegevoegde waarde heeft – we meten hier immers niet de bewegingen van tektonische platen!)

Wanneer we de nieuwe versie van de mapping uitvoeren, worden de coördinaten van elk <trkpt>-element aan de webservice verzonden, en de gerapporteerde hoogte wordt vervolgens ingevoegd in <ele> aan de uitvoerkant.

![De uitvoer van de MapForce GPX-mapping, met bijgewerkte hoogtedata](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")

We kunnen het geconverteerde GPX-bestand vergelijken met nieuwe hoogtedata ten opzichte van het originele bestand met behulp van [Altova DiffDog](https://www.altova.com/nl/diffdog/diff-merge-tool.html). De verschillen worden duidelijk gemarkeerd in de weergave. Tijdens de conversie zijn ook enkele irrelevante nullen verwijderd uit de breedte- en lengtegraden.

![DiffDog: Vergelijking van het originele en het bijgewerkte GPX-bestand](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")

We kunnen het geconverteerde bestand ook visualiseren met behulp van het StyleVision SPS-stijlsheet, dat functies voor lokalisatie biedt.

![Weergave van de bijgewerkte GPX-gegevens in StyleVision](https://lh3.ggpht.com/-vSWj8_nctng/T-HO0yFa0HI/AAAAAAAAA2g/sHHvELJqhiU/clip_image012%25255B3%25255D.png?imgmax=800 "StyleVision chart of the updated GPX data") Zoals verwacht bij het volgen van een rivier richting de monding, daalt de route niet onder zeeniveau en de algemene trend is dalend!

Hoogtegegevens die door GPS-apparaten worden geregistreerd, zijn inherent minder nauwkeurig dan x-y-coördinaten. Bovendien kunnen heuvels en andere obstakels, doordat u in beweging bent, het zicht op één of meerdere GPS-satellieten blokkeren, waardoor hun radiosignalen verloren gaan.

De kaart hieronder toont een deel van de route door de Russian River Valley. De rode stip markeert een punt waar de GPS een hoogte van -12,8 meter registreerde, terwijl de USGS een hoogte van +33,28 meter rapporteerde. De heuvel Wild Hog Hill, direct ten westen, stijgt meer dan 335 meter en blokkeert grote delen van de lucht, en blokkeert waarschijnlijk ook GPS-satelliet signalen.

![Topografische kaart van Wild Hog Hill](https://lh5.ggpht.com/-3qCQGD1C36s/T-HO1Ua6bhI/AAAAAAAAA2o/Mp4-wETUD2Y/clip_image013%25255B3%25255D.png?imgmax=800 "Terrain map of Wild Hog Hill") Als laatste opmerkelijk punt hebben we de hoogtedata uit het [GPX-bestand voor de wandeling in New Hampshire](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) omgezet en XMLSpy gebruikt om de hoogtedata van de USGS in groen weer te geven als een overlay op de oorspronkelijke GPS-hoogtelijn.

![XMLSpy-grafiek met de originele en de bijgewerkte hoogtedata](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")

Het is niet moeilijk om te zien welke vorm een oude, door erosie aangetaste helling in New England beter weergeeft.

**Als u de tools in wilt gebruiken** [**Altova MissionKit**](https://www.altova.com/nl/missionkit/software-development-tools.html) **om uw eigen datamapping te maken, waarbij een webservice als naslagtabel wordt gebruikt** [Klik hier om een gratis proefversie te downloaden](https://www.altova.com/nl/download-trial/)**.**
