---
title: "GPSデータを補正するための参照テーブルとして機能するウェブサービス"
date: "2012-06-20"
categories: 
  - "data-integration"
tags: 
  - "altova-xmlspy"
  - "charts"
  - "data-mapping"
  - "diffdog"
  - "file-comparison"
  - "mapforce"
  - "missionkit"
  - "stylevision"
  - "web-services"
  - "wsdl"
description: この記事では、米国地質調査局（USGS）のウェブサービスを参照テーブルとして活用し、GPSの標高データを改良する方法について解説しています。データのマッピング技術を用いることで、精度を向上させることができます。
---
Status: #blog

Tags:  #altova-xmlspy #charts #data-mapping #diffdog #file-comparison #mapforce #missionkit #stylevision #web-services #wsdl

Categories: [data-integration](/blog/ja/category/data-integration.md)
# GPSデータを補正するための参照テーブルとして機能するウェブサービス

GPSデバイスによって記録される標高データは、特に起伏の激しい地形、例えばロシア川流域のような場所では、非常に精度が低いことが知られています [以前の投稿について](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html).

ロシア川流域のGPXファイルから作成された標高データには、いくつかの点で疑問が残ります。まず、グラフを見ると、海面よりもほぼ50フィート低い地点まで下降していることが示されています。これは信じがたいことです。なぜなら、私たちは太平洋からわずか16キロメートル（約10マイル）の場所に位置し、川沿いを走行していたからです。

![Altova StyleVision チャート](https://lh5.ggpht.com/-RyKmstA4f98/T-HOw4cQf4I/AAAAAAAAA1I/__oEl7-5bUk/clip_image001%25255B3%25255D.png?imgmax=800 "Altova StyleVision Chart")
次に、私たちは主に西に向かって進んでいましたが、川の流れに沿って下流へ向かっていたにもかかわらず、記録を見ると、全体的に上り坂の傾向が見られます。

記録されたGPSの標高データを、アメリカ地質調査局（USGS）が提供する情報と比較することで評価することができます。USGSは、緯度と経度の座標を入力すると、NASAが測定した標高データと、アメリカ本土の13,000以上の基準点に基づいて精度が評価されたデータを提供するウェブサービスを運営しています。

標高情報を提供するウェブサービスを、○○において活用します [Altova MapForce](https://www.altova.com/ja/mapforce.html) この処理により、GPXファイルから各地点の情報を抽出し、その座標を米国地質調査局（USGS）のウェブサービスに送信し、修正された標高データを含む新しいGPXファイルを作成することができます。

<!--more-->

このソリューションは、[データマッピングパターン](https://www.altova.com/blog/2012/06/data-mapping-patterns.html)というブログ記事で説明されている、参照テーブルとしてのWebサービスに該当します。緯度と経度によって特定される各座標に対して、正確に1つの対応する標高値が存在します。ローカルな参照テーブルと同様に、ソースデータポイントは一意ですが、出力値が重複する可能性があります。

USGSのWebサービスについて理解を深めるために、XMLSpyでWSDLファイルを開くことができます。これは、特に埋め込まれたドキュメントを読む際に役立ちます。

![XMLSpyのテキスト表示でWSDLファイルをレビューする](https://lh6.ggpht.com/-x9YnOlGaefU/T-HOxNqsHkI/AAAAAAAAA1Q/_qQdDkJrzX4/clip_image002%25255B3%25255D.png?imgmax=800 "Reviewing a WSDL in XMLSpy text view")

XMLSpyは、Webサービスに対するSOAPリクエストを生成することも可能です。これにより、必要なパラメータを容易に特定し、テストすることができます。

![XMLSpyによって生成されたSOAPリクエスト](https://lh6.ggpht.com/--sibDXwVNF8/T-HOxmci9hI/AAAAAAAAA1Y/KUv5-B89JJ8/clip_image003%25255B3%25255D.png?imgmax=800 "SOAP request generated by XMLSpy")

最初のテストでは、標高が海面より低い地点の座標を使用しました。`Source_Layer`要素は、結果を取得するためにクエリを実行する地図セットを指定します。私たちは、[http://gisdata.usgs.gov/XMLWebServices2/Elevation\_Service\_Methods.php](http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php)に掲載されているリストから、アメリカ合衆国西部の半分をカバーする地図を選択しました

![XMLSpyを使用したSOAPリクエストの作成（パラメータはXML形式）](https://lh6.ggpht.com/-3oYTJSX8V0w/T-HOx2xpomI/AAAAAAAAA1g/mFUacQiAX0o/clip_image004%25255B3%25255D.png?imgmax=800 "SOAP request with parameters in XMLSpy")

XMLSpyは、ウェブサービスプロバイダーにリクエストを送信し、その結果を自動的に表示することができます。

 

![SOAPレスポンスをXMLSpyで表示](https://lh6.ggpht.com/-SQvGvjeqwnU/T-HOyeyDPCI/AAAAAAAAA1o/EJnfZXMsXCU/clip_image005%25255B3%25255D.png?imgmax=800 "SOAP response viewed in XMLSpy")

GPSが海面下12メートルと記録したのに対し、地質調査局（USGS）の報告によると、実際の標高は海面より33メートル以上高いことがわかっています。

標高をフィートで表示するように要求することも可能でしたが、GPX形式では標高値がメートル単位で定義されているため、そうしませんでした。いずれにしても、最終的なデータに対しては、[StyleVision](https://www.altova.com/ja/stylevision.html)スタイルシートを[ローカライズ](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html)に使用する予定です。

**ウェブサービスを用いたデータマッピング**

場合によっては、Webサービスに大量のデータを送信する前に、小さな、簡略化されたMapForceのマッピングを作成して、Webサービスの動作をテストすることが役立ちます。以下に示したスクリーンショットは、文字列定数でパラメータを指定し、テキストファイルを出力する、"getElevation" Webサービス用のシンプルなマッピングの例です。

![MapForceにおけるWebサービス テストのマッピング](https://lh5.ggpht.com/-VZuHV13mkDQ/T-HOyduSq5I/AAAAAAAAA1w/Ljkg-tSkQwk/clip_image006%25255B3%25255D.png?imgmax=800 "Web service test mapping in MapForce")

「MapForce出力」ボタンをクリックすると、指定されたパラメータに基づいてデータ変換が実行されます。その結果は以下の通りです

![MapForceのテストマッピングの結果](https://lh5.ggpht.com/-ENG6c5uitZ8/T-HOy3C4nPI/AAAAAAAAA14/0zCeHpE6ZO0/clip_image007%25255B3%25255D.png?imgmax=800 "Output of the MapForce test mapping")

MapForceのマッピング機能の本格的な利用を開始します。まず、GPXスキーマのコピーを2つ用意し、標高データを除く、ソースからデスティネーションへのすべての要素を接続します。

![MapForceにおける部分的なGPX形式の地図データ処理](https://lh6.ggpht.com/-SbmDoTbcEwo/T-HOzMe4htI/AAAAAAAAA2A/KBqYrPAT4aA/clip_image008%25255B3%25255D.png?imgmax=800 "Partial GPX mapping in MapForce")

次に、テスト環境で使用していたWebサービス定義と、そのパラメータをそのまま本番環境にコピーします。そして、Webサービス内のX_ValueとY_Valueを、ソースのGPXファイル内の経度と緯度にそれぞれ対応するように接続します。

![MapForceのWebサービス機能を使用することで、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")

ウェブサービスの出力側において、計算結果をそのまま出力コンポーネントの標高要素に接続します。（標高をメートル単位で小数点以下2桁に丸めています。なぜなら、小数点以下3桁まで表示するのは、今回の用途には必要以上に細かい情報だと考えたからです。ここでは、プレートの隆起や沈降を測定しているわけではありません。）

新しいバージョンのマッピングを実行すると、各<trkpt>から取得した座標がWebサービスに送信され、その結果として得られた標高値が、出力側の<ele>に反映されます。

![MapForceによるGPX形式の地図データ出力（標高データが更新済み）](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")

変換されたGPXファイルと、新しい標高データを用いたオリジナルファイルは、[Altova DiffDog](https://www.altova.com/ja/diffdog/diff-merge-tool.html)を使用して比較できます。差異は、グリッドビューで明確に強調表示されます。また、変換処理の際に、緯度と経度の値から、不要な末尾のゼロがいくつか削除されました。

![DiffDogによる、元のGPXファイルと更新されたGPXファイルとの比較結果](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")

変換されたファイルは、ローカライゼーション機能を備えたStyleVision SPSスタイルシートを使用して、グラフ表示することも可能です。

![更新されたGPXデータに基づくStyleVisionグラフ](https://lh3.ggpht.com/-vSWj8_nctng/T-HO0yFa0HI/AAAAAAAAA2g/sHHvELJqhiU/clip_image012%25255B3%25255D.png?imgmax=800 "StyleVision chart of the updated GPX data")川を下っていくように、このルートは海面を下回ることはなく、全体的な傾向は下り坂となっています。

GPSデバイスによって記録される標高データは、本質的にX座標やY座標よりも精度が低くなります。さらに、移動中に、地形やその他の障害物が、1つまたは複数のGPS衛星からの電波を遮断し、その結果、電波が途絶えることがあります。

以下の地図は、ロシア川流域の旅行ルートの一部を示しています。赤い点は、GPSが-12.8メートルの標高を記録した場所を示していますが、地質調査局（USGS）は+33.28メートルの標高を報告しています。地図の西に位置するワイルドホッグヒルは標高1,100フィート以上で、広範囲の空を遮り、GPS衛星からの信号を妨害している可能性が非常に高いです。

![ワイルドホッグヒル地域の地形図](https://lh5.ggpht.com/-3qCQGD1C36s/T-HO1Ua6bhI/AAAAAAAAA2o/Mp4-wETUD2Y/clip_image013%25255B3%25255D.png?imgmax=800 "Terrain map of Wild Hog Hill")最後に、補足として、標高データについてですが、こちらを [ニューハンプシャー州でのハイキングコースのGPXファイル](https://www.altova.com/blog/2012/04/xpath-enhances-xml-reports.html) そして、XMLSpyを使用して、USGSが提供する標高データを緑色でグラフ化し、それを元のGPSの標高データの上に重ねて表示しました。

![XMLSpyで表示された、元の標高データと更新後の標高データの比較グラフ](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")

どちらの形状が、風化が進んだニューイングランドの山肌をより正確に表現しているかは、一目瞭然です。

**もし、このツールをご利用になりたい場合は、以下の手順をお試しください** [**Altova MissionKit**](https://www.altova.com/ja/missionkit/software-development-tools.html) **ウェブサービスを参照テーブルとして利用し、独自のデータマッピングを作成することができます** [**こちらをクリックして、無料トライアル版をダウンロードしてください。**](https://www.altova.com/ja/download-trial/)**.**
