利用Web服务作为查找表,以优化GPS数据

GPS设备记录的 elevation (海拔) 数据通常非常不准确,尤其是在像俄勒冈州俄勒冈河谷(如我们在之前的文章中提到的例子)这样的丘陵地形中。

从俄勒冈河谷(Russian River Valley)的GPX文件中提取出的海拔数据图存在一些可疑之处。首先,该图显示我们下降到几乎低于海平面50英尺。这很难令人相信,因为我们当时正沿着河岸行驶,距离太平洋仅约10英里。

其次,我们主要向西行驶,沿着河流向下游方向前进,但轨迹显示,大部分路段都是向上坡。

我们可以通过将记录的GPS海拔数据与美国地质调查局(USGS)提供的信息进行比较来进行评估。USGS提供一个网络服务,该服务接受经纬度坐标,并返回由美国国家航空航天局(NASA)测量的海拔数据,并通过对美国大陆13000多个控制点进行评估,确保数据的准确性。

Altova MapForce 映射中使用海拔数据 Web 服务,可以让我们从 GPX 文件中提取每个点,将坐标发送到美国地质调查局 (USGS) 的 Web 服务,并创建一个新的 GPX 文件,其中包含经过校正的海拔数据。

该解决方案将Web服务与文档中描述的“查找表”模式进行匹配 数据映射模式 博客文章。每组由纬度和经度标识的坐标,都对应着一个唯一的海拔值。就像一个本地查找表,原始数据点是唯一的,但输出值可能会重复。

我们可以通过在 XMLSpy 中打开 WSDL 文件,开始了解 USGS 的 Web 服务。 这种方法尤其适用于阅读其中嵌入的文档。

XMLSpy 还可以生成用于 Web 服务的 SOAP 请求,从而方便用户识别和测试所需的参数。

在第一次测试中,我们使用了那些标高低于海平面的坐标。Source_Layer 元素指定了用于查询结果的地图集。我们从以下链接中的地图列表中选择了一个覆盖美国西部一半的地图:http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php

XMLSpy 可以向 Web 服务提供商发送请求,并自动打开结果。

GPS数据显示该位置的海拔为低于海平面12米,但美国地质调查局(USGS)的报告显示,该位置的实际海拔实际上高于海平面33米以上。

我们本可以要求以英尺为单位提供海拔高度,但我们没有这样做,因为 GPX 数据格式定义的海拔值是以米为单位的。 无论如何,我们计划在最终数据上应用 StyleVision 样式表进行 本地化

使用Web服务进行数据映射

有时,为了在向 Web 服务发送大量数据之前对其进行测试,创建一个小型、简化的 MapForce 映射会很有用。下图展示了一个简单的 MapForce 映射,用于“getElevation” Web 服务,其中使用字符串常量作为参数,并将输出结果保存到文本文件中。

点击“MapForce 输出”按钮,将使用提供的参数执行数据映射。以下是结果:

我们将从两个GPX模式副本开始,构建MapForce的正式版本。我们将连接源数据中的所有元素到目标,除了海拔数据。

接下来,我们只需将测试环境中的Web服务定义及其参数复制到生产环境,并将Web服务中的X_Value和Y_Value分别连接到源GPX文件中包含的经度和纬度。

在Web服务的输出端,我们只需将结果连接到输出组件中的“海拔”元素即可。(我们把海拔高度(以米为单位)保留两位小数,因为精确到个位似乎有些过度——我们这里不是在测量板块的上升和下降!)

当我们执行新的地图版本时,每个 标签中的坐标会被传递给 Web 服务,然后,Web 服务返回的海拔值会被填入输出端的 标签中。

我们可以使用 Altova DiffDog 软件,将转换后的 GPX 文件与新的高程数据进行比较,并与原始文件进行对比。差异会在网格视图中清晰地突出显示。此外,在转换过程中,经度和纬度值中一些无关的尾部零也被去除了。

我们还可以使用StyleVision SPS样式表,该样式表具有本地化功能,从而对转换后的文件进行可视化呈现。

正如您所期望的,沿着河流向下行驶,轨迹不会低于海平面,总体趋势是向下倾斜!

GPS设备记录的 elevation (海拔) 数据本质上不如 x-y 坐标那样精确。此外,在移动过程中,山丘和其他障碍物可能会阻挡对一个或多个 GPS 卫星的视线,导致无法接收到它们的无线信号。

以下地图展示了俄罗斯河谷旅行的其中一段。红色圆点标记了一个地点,GPS记录的该地点的海拔高度为-12.8米,但美国地质调查局(USGS)报告的该地点的海拔高度为+33.28米。位于正西方向的“野猪山”海拔超过1100英尺,遮挡了很大一部分天空,并且很可能阻挡了GPS卫星信号。

作为最后一点补充,我们转换了来自新罕布什尔徒步路线的GPX文件中的高程数据,并使用XMLSpy将美国地质调查局(USGS)的高程数据以绿色绘制在原始GPS高程轨迹上,作为叠加图。

很容易就能看出哪个形状更能准确地描绘新英格兰地区一座被风化侵蚀的山坡。

如果您想使用以下工具,请 Altova MissionKit 套件 用于创建您自己的数据映射,并将Web服务作为查找表 点击此处下载免费试用版.