---
title: "Servicio web como tabla de consulta para refinar los datos de GPS"
date: "2012-06-20"
categories: 
  - "data-integration"
tags: 
  - "altova-xmlspy"
  - "charts"
  - "data-mapping"
  - "diffdog"
  - "file-comparison"
  - "mapforce"
  - "missionkit"
  - "stylevision"
  - "web-services"
  - "wsdl"
description: Este artículo analiza cómo mejorar los datos de altitud obtenidos por GPS utilizando el servicio web de la USGS como una tabla de referencia, lo que permite aumentar la precisión mediante técnicas de mapeo de datos.
---
Status: #blog

Tags:  #altova-xmlspy #charts #data-mapping #diffdog #file-comparison #mapforce #missionkit #stylevision #web-services #wsdl

Categories: [data-integration](/blog/es/category/data-integration.md)
# 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](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html).

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.

![Gráfico de Altova StyleVision](https://lh5.ggpht.com/-RyKmstA4f98/T-HOw4cQf4I/AAAAAAAAA1I/__oEl7-5bUk/clip_image001%25255B3%25255D.png?imgmax=800 "Altova StyleVision Chart") 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](https://www.altova.com/es/mapforce.html) 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.

<!--more-->

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](https://www.altova.com/blog/2012/06/data-mapping-patterns.html)". 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.

![Revisar un WSDL en la vista de texto de 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 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.

![Solicitud SOAP generada por XMLSpy](https://lh6.ggpht.com/--sibDXwVNF8/T-HOxmci9hI/AAAAAAAAA1Y/KUv5-B89JJ8/clip_image003%25255B3%25255D.png?imgmax=800 "SOAP request generated by XMLSpy")

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](http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php)

![Solicitud SOAP con parámetros en XMLSpy](https://lh6.ggpht.com/-3oYTJSX8V0w/T-HOx2xpomI/AAAAAAAAA1g/mFUacQiAX0o/clip_image004%25255B3%25255D.png?imgmax=800 "SOAP request with parameters in XMLSpy")

XMLSpy puede enviar la solicitud al proveedor del servicio web y abrir automáticamente el resultado.

 

![Respuesta SOAP visualizada en XMLSpy](https://lh6.ggpht.com/-SQvGvjeqwnU/T-HOyeyDPCI/AAAAAAAAA1o/EJnfZXMsXCU/clip_image005%25255B3%25255D.png?imgmax=800 "SOAP response viewed in XMLSpy")

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](https://www.altova.com/es/stylevision.html) para la [localización](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) 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.

![Mapeo de pruebas de servicios web en MapForce](https://lh5.ggpht.com/-VZuHV13mkDQ/T-HOyduSq5I/AAAAAAAAA1w/Ljkg-tSkQwk/clip_image006%25255B3%25255D.png?imgmax=800 "Web service test mapping in MapForce")

Al hacer clic en el botón "Salida de MapForce", se ejecuta la transformación con los parámetros especificados. Aquí está el resultado:

![Resultado del mapeo de pruebas realizado con MapForce](https://lh5.ggpht.com/-ENG6c5uitZ8/T-HOy3C4nPI/AAAAAAAAA14/0zCeHpE6ZO0/clip_image007%25255B3%25255D.png?imgmax=800 "Output of the MapForce test mapping")

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.

![Mapeo parcial de archivos GPX en MapForce](https://lh6.ggpht.com/-SbmDoTbcEwo/T-HOzMe4htI/AAAAAAAAA2A/KBqYrPAT4aA/clip_image008%25255B3%25255D.png?imgmax=800 "Partial GPX mapping in MapForce")

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.

![La llamada al servicio web de MapForce mejora los datos de altitud en formato 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")

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 <trkpt> se envían al servicio web, y el valor de elevación reportado se inserta en <ele> en la parte de salida.

![Salida del mapeo GPX generado por MapForce, con información de elevación actualizada](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")

Podemos comparar el archivo GPX convertido, con los nuevos datos de altitud, con el archivo original utilizando [Altova DiffDog](https://www.altova.com/es/diffdog/diff-merge-tool.html). 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.

![Comparación de los archivos GPX originales y actualizados realizada con 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")

También podemos representar gráficamente el archivo convertido utilizando la hoja de estilos StyleVision SPS, que cuenta con funciones de localización.

![Gráfico de StyleVision con los datos GPX actualizados](https://lh3.ggpht.com/-vSWj8_nctng/T-HO0yFa0HI/AAAAAAAAA2g/sHHvELJqhiU/clip_image012%25255B3%25255D.png?imgmax=800 "StyleVision chart of the updated GPX data") 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.

![Mapa del terreno de 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")
Como último detalle, convertimos los datos de altitud del archivo GPX de la ruta de senderismo en [New Hampshire](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) y utilizamos XMLSpy para graficar la altitud del USGS en verde, superponiéndola a la trayectoria original de la altitud registrada por el GPS.

![Gráfico de XMLSpy que muestra los datos de elevación originales y los datos de elevación actualizados](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")

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**](https://www.altova.com/es/missionkit/software-development-tools.html) **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.**](https://www.altova.com/es/download-trial/)**.**
