Servicio web como tabla de consulta para refinar los datos de GPS
Los datos de altitud registrados por los dispositivos GPS son notoriamente imprecisos, especialmente en terrenos accidentados como el ejemplo del Valle del Río ruso mencionado en nuestra publicación anterior.
El perfil de elevación final, extraído del archivo GPX del Valle del Río ruso, es sospechoso por varias razones. En primer lugar, el gráfico muestra que descendimos casi 15 metros por debajo del nivel del mar. Esto es difícil de creer, ya que estábamos viajando a lo largo de la orilla del río, a solo unos 16 kilómetros del Océano Pacífico.
En segundo lugar, nos dirigíamos principalmente hacia el oeste, siguiendo el curso del río aguas abajo, pero el trazado muestra una tendencia predominantemente ascendente.
Podemos evaluar los datos de altitud registrados por el GPS comparándolos con la información disponible del Servicio Geológico de los Estados Unidos (USGS). El USGS ofrece un servicio web que acepta coordenadas de latitud y longitud y devuelve datos de altitud medidos por la NASA, cuya precisión ha sido evaluada basándose en más de 13.000 puntos de referencia en los Estados Unidos continentales.
Utilizar el servicio web de elevación en una herramienta de mapeo Altova MapForce nos permitirá extraer cada punto del archivo GPX, enviar las coordenadas al servicio web de la USGS y crear un nuevo archivo GPX con datos de elevación corregidos.
Esta solución se ajusta al patrón de "tabla de consulta" (look-up table) para servicios web, tal como se describe en la entrada del blog "Patrones de mapeo de datos". Cada conjunto de coordenadas, identificado por latitud y longitud, tiene exactamente un valor de altitud correspondiente. Al igual que una tabla de consulta local, los puntos de datos de origen son únicos, pero los valores de salida pueden estar duplicados.
Podemos empezar a familiarizarnos con el servicio web de la USGS abriendo el archivo WSDL en XMLSpy. Esto es especialmente útil para leer la documentación integrada.

XMLSpy también puede generar una solicitud SOAP para el servicio web, lo que facilita la identificación y la prueba de los parámetros necesarios.

Para la primera prueba, utilizamos las coordenadas donde la altitud reportada estaba por debajo del nivel del mar. El elemento "Source_Layer" especifica qué conjunto de mapas se utilizará para obtener el resultado. Seleccionamos un mapa que cubre la mitad occidental de los Estados Unidos de la lista disponible en http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php

XMLSpy puede enviar la solicitud al proveedor del servicio web y abrir automáticamente el resultado.

Según los datos del GPS, la ubicación se encontraba a 12 metros por debajo del nivel del mar, mientras que el Servicio Geológico de los Estados Unidos (USGS) informa que la altitud real era de más de 33 metros por encima del nivel del mar.
Podríamos haber solicitado la altitud en pies, pero decidimos no hacerlo porque el esquema GPX define el valor de la altitud en metros. De todas formas, nuestra intención es aplicar la hoja de estilo StyleVision para la localización en los datos finales.
Mapeo de datos mediante un servicio web
A veces, es útil crear un mapeo MapForce pequeño y simplificado para probar el servicio web antes de enviarle un conjunto de datos grande. La captura de pantalla que se muestra a continuación ilustra un mapeo sencillo para el servicio web "getElevation", que utiliza constantes de texto para proporcionar los parámetros y un archivo de texto para la salida.

Al hacer clic en el botón "Salida de MapForce", se ejecuta la transformación con los parámetros especificados. Aquí está el resultado:

Comenzaremos la versión de producción de la herramienta de mapeo MapForce utilizando dos copias del esquema GPX, y conectaremos todos los elementos desde la fuente hasta el destino, excepto la altitud.

A continuación, simplemente copiamos la definición del servicio web, junto con sus parámetros, de la versión de prueba a la versión de producción, y conectamos los valores X e Y del servicio web con la longitud y la latitud en el archivo GPX de origen.

En la parte de salida del servicio web, simplemente conectamos el resultado al elemento de elevación del componente de salida. (Redondeamos la elevación en metros a dos decimales porque creemos que ser más preciso sería excesivo; ¡no estamos midiendo los movimientos de las placas tectónicas aquí!)
Cuando ejecutamos la nueva versión del sistema de mapeo, las coordenadas de cada elemento

Podemos comparar el archivo GPX convertido, con los nuevos datos de altitud, con el archivo original utilizando Altova DiffDog. Las diferencias se resaltan claramente en la vista de cuadrícula. Además, durante la transformación, se eliminaron algunos ceros finales irrelevantes de los valores de latitud y longitud.

También podemos representar gráficamente el archivo convertido utilizando la hoja de estilos StyleVision SPS, que cuenta con funciones de localización.
Como se esperaría al seguir un río aguas abajo, la ruta no desciende por debajo del nivel del mar, y la tendencia general es descendente.
Los datos de altitud registrados por los dispositivos GPS son, por naturaleza, menos precisos que las coordenadas x-y. Además, al moverse, las colinas y otros obstáculos pueden bloquear la línea de visión hacia uno o varios satélites GPS, y sus señales de radio se pierden.
El mapa que se muestra a continuación ilustra una sección del recorrido por el Valle del Río ruso. El punto rojo indica una ubicación donde el GPS registró una altitud de -12,8 metros, pero el Servicio Geológico de los Estados Unidos (USGS) reportó +33,28 metros. La colina Wild Hog Hill, situada directamente al oeste, se eleva más de 335 metros, obstruyendo grandes secciones del cielo y, muy probablemente, bloqueando las señales de los satélites GPS.
Como último detalle, convertimos los datos de altitud del archivo GPX de la ruta de senderismo en New Hampshire y utilizamos XMLSpy para graficar la altitud del USGS en verde, superponiéndola a la trayectoria original de la altitud registrada por el GPS.

No es difícil determinar qué forma representa de manera más precisa la ladera erosionada de una montaña en Nueva Inglaterra.
Si desea utilizar las herramientas en Altova MissionKit para crear su propio mapeo de datos utilizando un servicio web como tabla de consulta Haga clic aquí para descargar una versión de prueba gratuita..