---
title: "Usługa internetowa jako baza danych do precyzji danych GPS"
date: "2012-06-20"
categories: 
  - "data-integration"
tags: 
  - "altova-xmlspy"
  - "charts"
  - "data-mapping"
  - "diffdog"
  - "file-comparison"
  - "mapforce"
  - "missionkit"
  - "stylevision"
  - "web-services"
  - "wsdl"
description: W tym artykule omówiono, jak poprawić dokładność danych dotyczących wysokości uzyskanych z systemu GPS, wykorzystując usługę internetową USGS jako tabelę odniesienia, a także jak poprawić dokładność poprzez zastosowanie technik mapowania danych.
---
Status: #blog

Tags:  #altova-xmlspy #charts #data-mapping #diffdog #file-comparison #mapforce #missionkit #stylevision #web-services #wsdl

Categories: [data-integration](/blog/pl/category/data-integration.md)
# Usługa internetowa jako baza danych do precyzji danych GPS

Dane wysokościowe rejestrowane przez urządzenia GPS są znane ze swojej niedokładności, szczególnie w terenach pagórkowatych, takich jak przykład Doliny Rzeki Rosy, o którym wspomnieliśmy w [poprzednim wpisie](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html).

Profil wysokości, wygenerowany na podstawie pliku GPX z regionu Russian River Valley, budzi podejrzenia z kilku powodów. Po pierwsze, wykres pokazuje, że opadaliśmy niemal 15 metrów poniżej poziomu morza. Trudno w to uwierzyć, ponieważ poruszaliśmy się wzdłuż brzegu rzeki, zaledwie około 16 kilometrów od Oceanu Spokojnego.

![Wykres Altova StyleVision](https://lh5.ggpht.com/-RyKmstA4f98/T-HOw4cQf4I/AAAAAAAAA1I/__oEl7-5bUk/clip_image001%25255B3%25255D.png?imgmax=800 "Altova StyleVision Chart") Po drugie, generalnie zmierzaliśmy na zachód, podążając w dół rzeki, ale trasa wskazuje głównie wzniesienie.

Możemy ocenić dane dotyczące wysokości uzyskane za pomocą GPS, porównując je z informacjami dostępnymi od United States Geological Survey (USGS). USGS oferuje usługę internetową, która przyjmuje współrzędne geograficzne (szerokość i długość) i zwraca dane dotyczące wysokości, zmierzone przez NASA, a których dokładność została oceniona na podstawie ponad 13 000 punktów kontrolnych na terenie Stanów Zjednoczonych.

Wykorzystanie usługi internetowej do pobierania wysokości w mapowaniu w programie [Altova MapForce](https://www.altova.com/pl/mapforce.html) pozwoli nam na wyodrębnienie każdego punktu z pliku GPX, przesłanie współrzędnych do usługi internetowej USGS i utworzenie nowego pliku GPX z poprawionymi danymi wysokościowymi.

<!--more-->

To rozwiązanie odpowiada wzorcowi "tabeli wyszukiwania" (Look-Up Table), opisanemu w artykule blogowym zatytułowanym "[Wzorce mapowania danych](https://www.altova.com/blog/2012/06/data-mapping-patterns.html)". Każdy zestaw współrzędnych, zidentyfikowany przez szerokość i długość geograficzną, ma dokładnie jedną odpowiadającą mu wartość wysokości. Podobnie jak w przypadku lokalnej tabeli wyszukiwania, punkty danych źródłowych są unikalne, ale wartości wyjściowe mogą być powtarzane.

Możemy zapoznać się z usługą internetową USGS, otwierając plik WSDL w programie XMLSpy. Jest to szczególnie przydatne do przeglądania zawartej w nim dokumentacji.

![Przeglądanie pliku WSDL w trybie tekstowym w programie 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 może również generować żądanie SOAP dla usługi internetowej, co umożliwia łatwą identyfikację i testowanie wymaganych parametrów.

![Żądanie SOAP wygenerowane przez program XMLSpy](https://lh6.ggpht.com/--sibDXwVNF8/T-HOxmci9hI/AAAAAAAAA1Y/KUv5-B89JJ8/clip_image003%25255B3%25255D.png?imgmax=800 "SOAP request generated by XMLSpy")

W pierwszym teście wykorzystaliśmy współrzędne obszarów, w których wysokość terenu była poniżej poziomu morza. Element "Source_Layer" określa, z którego zbioru danych mapowych należy pobrać wyniki. Wybraliśmy mapę obejmującą zachodnią część Stanów Zjednoczonych z listy dostępnej pod adresem [http://gisdata.usgs.gov/XMLWebServices2/Elevation\_Service\_Methods.php](http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php)

![Żądanie SOAP z parametrami w programie XMLSpy](https://lh6.ggpht.com/-3oYTJSX8V0w/T-HOx2xpomI/AAAAAAAAA1g/mFUacQiAX0o/clip_image004%25255B3%25255D.png?imgmax=800 "SOAP request with parameters in XMLSpy")

XMLSpy może wysyłać żądania do dostawcy usługi internetowej i automatycznie otwierać wyniki.

 

![Odpowiedź SOAP wyświetlana w programie XMLSpy](https://lh6.ggpht.com/-SQvGvjeqwnU/T-HOyeyDPCI/AAAAAAAAA1o/EJnfZXMsXCU/clip_image005%25255B3%25255D.png?imgmax=800 "SOAP response viewed in XMLSpy")

Według danych GPS, głębokość tego miejsca wynosiła 12 metrów pod poziomem morza, natomiast USGS podaje, że rzeczywista wysokość tego miejsca to ponad 33 metry nad poziomem morza.

Moglibyśmy podać wysokość w stopach, ale zdecydowaliśmy się tego nie robić, ponieważ schemat GPX określa wartość wysokości w metrach. W każdym razie planujemy zastosować arkusz stylów [StyleVision](https://www.altova.com/pl/stylevision.html) do [lokalizacji](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) danych końcowych.

**Mapowanie danych za pomocą usługi internetowej**

Czasami warto stworzyć proste, uproszczone mapowanie w MapForce, aby przetestować usługę internetową przed przesłaniem do niej dużego zbioru danych. Zrzut ekranu poniżej pokazuje proste mapowanie dla usługi internetowej "getElevation", w której użyto stałych tekstowych do przekazywania parametrów, a jako wyjście służy plik tekstowy.

![Mapowanie testów usług internetowych w programie MapForce](https://lh5.ggpht.com/-VZuHV13mkDQ/T-HOyduSq5I/AAAAAAAAA1w/Ljkg-tSkQwk/clip_image006%25255B3%25255D.png?imgmax=800 "Web service test mapping in MapForce")

Kliknięcie przycisku "Wygeneruj wynik" w MapForce uruchamia proces transformacji danych z wykorzystaniem podanych parametrów. Poniżej znajduje się wynik:

![Wynik testowania mapowania w MapForce](https://lh5.ggpht.com/-ENG6c5uitZ8/T-HOy3C4nPI/AAAAAAAAA14/0zCeHpE6ZO0/clip_image007%25255B3%25255D.png?imgmax=800 "Output of the MapForce test mapping")

Rozpoczęcie pracy nad produkcyjną wersją mapowania w MapForce rozpoczniemy od dwóch kopii schematu GPX i połączymy wszystkie elementy z źródła do miejsca docelowego, z wyjątkiem wysokości.

![Częściowe mapowanie plików GPX w programie MapForce](https://lh6.ggpht.com/-SbmDoTbcEwo/T-HOzMe4htI/AAAAAAAAA2A/KBqYrPAT4aA/clip_image008%25255B3%25255D.png?imgmax=800 "Partial GPX mapping in MapForce")

Następnie, kopiujemy definicję usługi internetowej wraz z jej parametrami z wersji testowej do wersji produkcyjnej i łączymy zmienne X_Value i Y_Value w usłudze internetowej z współrzędnymi długości i szerokości geograficznej w pliku GPX.

![Usługa MapForce udostępnia funkcję, która pozwala na precyzyjne przetwarzanie danych wysokościowych w formacie 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")

Po stronie wyjściowej usługi internetowej, po prostu łączymy wynik z elementem reprezentującym wysokość w komponencie wyjściowym. (Zaokrągliliśmy wartość wysokości w metrach do dwóch miejsc po przecinku, ponieważ podawanie dokładności do jednego metra wydaje się przesadą – przecież nie mierzymy tutaj ruchów płyt tektonicznych!)

Po uruchomieniu nowej wersji algorytmu, współrzędne z każdego elementu <trkpt> są przekazywane do usługi internetowej, a wartość wysokości, która zostanie zwrócona, jest umieszczana w elemencie <ele> po stronie wyjściowej.

![Wynik mapowania w formacie GPX, zaktualizowany o dane wysokościowe](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")

Możemy porównać przekonwertowany plik GPX z nowymi danymi wysokościowymi z oryginalnym plikiem, korzystając z programu [Altova DiffDog](https://www.altova.com/pl/diffdog/diff-merge-tool.html). Różnice są wyraźnie zaznaczone w widoku tabelarycznym. Podczas konwersji usunięto również kilka nieistotnych zer na końcu wartości współrzędnych geograficznych (szerokości i długości).

![Porównanie plików GPX w wersji oryginalnej i zaktualizowanej za pomocą narzędzia 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")

Możemy również wyświetlić przekonwertowany plik w formie graficznej, korzystając z arkusza stylów StyleVision SPS, który oferuje funkcje lokalizacji.

![Wykres StyleVision przedstawiający zaktualizowane dane GPX](https://lh3.ggpht.com/-vSWj8_nctng/T-HO0yFa0HI/AAAAAAAAA2g/sHHvELJqhiU/clip_image012%25255B3%25255D.png?imgmax=800 "StyleVision chart of the updated GPX data") Jak można się spodziewać, podążając w dół rzeki, trasa nie opada poniżej poziomu morza, a ogólny trend jest zbieżny!

Dane dotyczące wysokości, rejestrowane przez urządzenia GPS, są z natury mniej precyzyjne niż współrzędne X i Y. Ponadto, podczas przemieszczania się, wzgórza i inne przeszkody mogą zasłaniać widoczność jednego lub więcej satelitów GPS, co powoduje utratę sygnałów radiowych.

Poniższa mapa przedstawia fragment trasy w dolinie rzeki Russian. Czerwona kropka oznaczana miejsce, w którym urządzenie GPS zarejestrowało wysokość -12,8 metra, podczas gdy USGS (Geological Survey) podał wartość +33,28 metra. Wzgórze Wild Hog Hill, położone bezpośrednio na zachód, wznosi się na ponad 335 metrów, zasłaniając duże fragmenty nieba i prawdopodobnie blokując sygnały satelitarne GPS.

![Mapa terenu wzgórza 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")Jako ostatni punkt, który warto zauważyć, przekształciliśmy dane wysokościowe z [Plik GPX z trasą wędrówki po stanie New Hampshire](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) i użyłem programu XMLSpy, aby nałożyć na oryginalną ścieżkę wysokościową zarejestrowaną przez GPS, wykres wysokości terenu USGS, przedstawiony w kolorze zielonym.

![Wykres XMLSpy przedstawiający oryginalne i zaktualizowane dane wysokościowe](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")

Nie jest trudno rozpoznać, który z tych kształtów dokładniej oddaje wygląd starego, erodowanego zbocza góry na Nowej Anglii.

**Jeśli chcą Państwo wykorzystać narzędzia z pakietu** [**Altova MissionKit**](https://www.altova.com/pl/missionkit/software-development-tools.html) **do tworzenia własnych mapowań danych, wykorzystując usługę internetową jako tabelę odniesienia,** [**kliknij tutaj, aby pobrać bezpłatną wersję próbną**](https://www.altova.com/pl/download-trial/).**.**
