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.

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.

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

To rozwiązanie odpowiada wzorcowi "tabeli wyszukiwania" (Look-Up Table), opisanemu w artykule blogowym zatytułowanym "Wzorce mapowania danych". 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.

XMLSpy może również generować żądanie SOAP dla usługi internetowej, co umożliwia łatwą identyfikację i testowanie wymaganych parametrów.

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

XMLSpy może wysyłać żądania do dostawcy usługi internetowej i automatycznie otwierać wyniki.

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

Kliknięcie przycisku "Wygeneruj wynik" w MapForce uruchamia proces transformacji danych z wykorzystaniem podanych parametrów. Poniżej znajduje się wynik:

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.

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.

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 są przekazywane do usługi internetowej, a wartość wysokości, która zostanie zwrócona, jest umieszczana w elemencie po stronie wyjściowej.

Możemy porównać przekonwertowany plik GPX z nowymi danymi wysokościowymi z oryginalnym plikiem, korzystając z programu Altova DiffDog. 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).

Możemy również wyświetlić przekonwertowany plik w formie graficznej, korzystając z arkusza stylów StyleVision SPS, który oferuje funkcje lokalizacji.

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.

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

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 do tworzenia własnych mapowań danych, wykorzystując usługę internetową jako tabelę odniesienia, kliknij tutaj, aby pobrać bezpłatną wersję próbną..