Servizio web utilizzato come tabella di consultazione per migliorare i dati del GPS

I dati di altitudine registrati dai dispositivi GPS sono notoriamente imprecisi, soprattutto in zone collinari come l'esempio della Russian River Valley menzionato nel nostro precedente articolo.

Il tracciato altimetrico finale, estratto dal file GPX della Russian River Valley, desta sospetti per diverse ragioni. Innanzitutto, il grafico mostra che siamo scesi a quasi 15 metri al di sotto del livello del mare. È difficile credere a questa cosa, dato che stavamo percorrendo la sponda del fiume, a soli circa 16 chilometri dall'Oceano Pacifico.

In secondo luogo, ci stavamo dirigendo principalmente verso ovest, seguendo il corso del fiume a valle, ma la traccia indica una tendenza prevalentemente in salita.

Possiamo valutare i dati di altitudine GPS registrati confrontandoli con le informazioni disponibili presso l'United States Geological Survey (USGS). La USGS gestisce un servizio web che accetta coordinate di latitudine e longitudine e restituisce dati di altitudine misurati dalla NASA, la cui accuratezza è stata valutata sulla base di oltre 13.000 punti di riferimento presenti negli Stati Uniti continentali.

Utilizzando il servizio web per l'altitudine all'interno di una mappatura in Altova MapForce, potremo estrarre ogni punto dal file GPX, inviare le coordinate al servizio web USGS e creare un nuovo file GPX con i dati di altitudine corretti.

Questa soluzione implementa il servizio web come una tabella di ricerca, secondo il modello descritto nel post del blog "Modelli di mappatura dei dati". Ogni insieme di coordinate, identificato da latitudine e longitudine, corrisponde esattamente a un unico valore di altitudine. Come una tabella di ricerca locale, i punti dati di origine sono univoci, ma i valori di output potrebbero essere duplicati.

Possiamo iniziare a familiarizzare con il servizio web USGS aprendo il file WSDL in XMLSpy. Questo è particolarmente utile per consultare la documentazione integrata.

XMLSpy può anche generare una richiesta SOAP per il servizio web, consentendo così di identificare e testare facilmente i parametri necessari.

Per il primo test, abbiamo utilizzato le coordinate in cui l'altitudine indicata era inferiore al livello del mare. L'elemento "Source_Layer" specifica quale set di mappe interrogare per ottenere il risultato. Abbiamo selezionato una mappa che copre la metà occidentale degli Stati Uniti dall'elenco disponibile all'indirizzo http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php

XMLSpy può inviare la richiesta al fornitore del servizio web e aprire automaticamente il risultato.

Secondo i dati del GPS, la profondità era di 12 metri sotto il livello del mare, mentre l'USGS (United States Geological Survey) riporta che l'altitudine reale era di oltre 33 metri sopra il livello del mare.

Avremmo potuto richiedere l'altitudine in piedi, ma abbiamo scelto di non farlo perché lo schema GPX definisce il valore dell'altitudine in metri. Comunque, intendiamo applicare il foglio di stile StyleVision per la localizzazione sui dati finali.

Mappatura dei dati tramite un servizio web

A volte, è utile creare una mappatura MapForce semplice e semplificata per testare un servizio web prima di inviargli un grande set di dati. Lo screenshot qui sotto mostra una mappatura semplice per il servizio web "getElevation", che utilizza stringhe di testo come parametri e un file di testo per l'output.

Cliccando sul pulsante "Output di MapForce", viene eseguita la mappatura utilizzando i parametri specificati. Ecco il risultato:

Inizieremo la versione di produzione della mappatura MapForce utilizzando due copie dello schema GPX, e collegheremo tutti gli elementi dalla sorgente alla destinazione, ad eccezione dell'altitudine.

Successivamente, copiamo semplicemente la definizione del servizio web, insieme ai suoi parametri, dalla versione di test alla versione di produzione, e colleghiamo i valori X e Y del servizio web rispettivamente alla longitudine e alla latitudine presenti nel file GPX di origine.

Sul lato dell'output del servizio web, colleghiamo semplicemente il risultato all'elemento di altitudine del componente di output. (Abbiamo arrotondato l'altitudine in metri a due cifre decimali perché un livello di precisione maggiore ci sembra eccessivo: non stiamo misurando i movimenti delle placche tettoniche!)

Quando eseguiamo la nuova versione della mappatura, le coordinate provenienti da ciascun elemento vengono fornite al servizio web, e il valore di altitudine riportato viene inserito nell'elemento sul lato di output.

Possiamo confrontare il file GPX convertito, con i nuovi dati di altitudine, con il file originale utilizzando Altova DiffDog. Le differenze vengono evidenziate in modo chiaro nella visualizzazione a griglia. Durante la conversione, sono stati inoltre eliminati alcuni zeri finali irrilevanti dai valori di latitudine e longitudine.

Possiamo anche visualizzare il file convertito utilizzando il foglio di stile StyleVision SPS, che include funzionalità di localizzazione.

Come ci si aspetterebbe seguendo un fiume a valle, il percorso non scende al di sotto del livello del mare e la tendenza generale è in discesa!

I dati di altitudine registrati dai dispositivi GPS sono intrinsecamente meno precisi rispetto alle coordinate x-y. Inoltre, durante il movimento, colline e altri ostacoli possono bloccare la linea di vista verso uno o più satelliti GPS, causando la perdita dei loro segnali radio.

La mappa sottostante illustra un tratto del percorso nella Russian River Valley. Il punto contrassegnato con un puntino rosso indica una posizione in cui il GPS ha registrato un'altitudine di -12,8 metri, mentre l'USGS ha rilevato +33,28 metri. La collina Wild Hog Hill, situata direttamente a ovest, si eleva per oltre 335 metri, oscurando ampie porzioni di cielo e bloccando molto probabilmente i segnali dei satelliti GPS.

Come ultimo elemento di interesse, abbiamo convertito i dati di altitudine provenienti da File GPX per un'escursione nel New Hampshire e ho utilizzato XMLSpy per rappresentare graficamente i dati di altitudine del USGS in verde, sovrapponendoli alla traccia originale dei dati di altitudine ottenuti tramite GPS.

Non è difficile capire quale forma rappresenta in modo più accurato il pendio di una montagna della Nuova Inghilterra, eroso dal tempo.

Se desiderate utilizzare gli strumenti presenti in Altova MissionKit per creare la propria mappatura dei dati, utilizzando un servizio web come tabella di riferimento Clicca qui per scaricare una versione di prova gratuita.