しかし、おおむねの値で良いとはいえ、データソースによって値がどの程度ばらついているものなのかは、ちょっと気になるところです。
そこで、基盤地図情報基本項目「標高点」に記述されている標高値、および、それらの標高点と同じ地点(座標)について基盤地図情報DEMと標高APIによって取得した標高値の対比表を作成してみました。
国土地理院 標高API
リクエストURL
http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?<パラメーター>
パラメーター名 | 値 | 備考 |
lon | 十進経度 | |
lat | 十進緯度 | |
outtype | JSON | レスポンスをJSON形式で取得する場合に固定文字列「JSON」とする |
レスポンス(JSON文書)
{"elevation":<標高値>, "hsrc":<データソース>}
FMEワークスペース例(FME 2016.1.3.2 build 16717)
[JP_FGD_DEM] リーダー(カスタムフォーマット): 基盤地図情報DEMをラスターとして読み込む。
[GML] リーダー: 基盤地図情報基本項目「標高点」を読み込む。
PointOnRasterValueExtractor: 標高点の位置におけるDEMラスターのバンド値(標高値)を取得する。
CoordinateExtractor: 標高点の座標(経度, 緯度)を属性として抽出する。
HTTPCaller: 標高APIにリクエストを発行し, レスポンス(JSON文書)を取得する。
JSONFlattener: JSON文書からメンバー(elevation, hsrc)を属性として抽出する。
AttributeManager: 一部の属性名の変更, 不要な属性の削除
[XLSXW] ライター: Excelスプレッドシートに結果を出力する。
結果: 二次メッシュ 5338-05 (148標高点) についての実行結果
基盤地図情報「数値標高モデル」(DEM)は FME Hub で公開されている JP_FGD_DEM カスタムフォーマットによってラスターとして、基盤地図情報「基本項目」の各データは標準の GML リーダーによってベクターとして読み込むことができます。
PointOnRasterValueExtractor では、Point ポートから入力された各ポイントの位置について、指定された補間方法によって求められたラスターのバンド値が取得できます。
補間方法としては、Interpolation Type パラメーターによって下記のうちどれかひとつが指定できます。上記の結果(DEM標高値)は Bilinear によるものです。
・Nearest Neighbor (最近傍)
・Bilinear (バイリニア補間)
・Bicubic (バイキュービック補間)
・Average 4 (4近傍平均)
・Average 16 (16近傍平均)
次に、CoordinateExtractor によって標高APIリクエストのパラメーターとして必要な経度と緯度を属性として抽出してから HTTPCaller によってリクエストを発行し、レスポンス(JSON)を属性(_response_body)として受け取ります。
HTTPCaller パラメーター設定画面
JSON文書に記述されている2つのメンバー elevation (標高値), hsrc (データソース) は JSONFlattener によってそれぞれ同名の属性に格納できます。ただし、それらの属性を後続のトランスフォーマーやライターフィーチャータイプで参照するには、Attributes to Expose パラメーターによってワークベンチのインターフェースに現しておく必要があります。
JSONFlattener パラメーター設定画面
最後に、(この例では必須ではありませんが)AttributeManager によって属性名を変更したり不要な属性を削除したりしてから、Excelファイルに出力しました。
FMEワークスペース例(FME 2016.1.3.2 build 16717)
[JP_FGD_DEM] リーダー(カスタムフォーマット): 基盤地図情報DEMをラスターとして読み込む。
[GML] リーダー: 基盤地図情報基本項目「標高点」を読み込む。
PointOnRasterValueExtractor: 標高点の位置におけるDEMラスターのバンド値(標高値)を取得する。
CoordinateExtractor: 標高点の座標(経度, 緯度)を属性として抽出する。
HTTPCaller: 標高APIにリクエストを発行し, レスポンス(JSON文書)を取得する。
JSONFlattener: JSON文書からメンバー(elevation, hsrc)を属性として抽出する。
AttributeManager: 一部の属性名の変更, 不要な属性の削除
[XLSXW] ライター: Excelスプレッドシートに結果を出力する。
結果: 二次メッシュ 5338-05 (148標高点) についての実行結果
基盤地図情報「数値標高モデル」(DEM)は FME Hub で公開されている JP_FGD_DEM カスタムフォーマットによってラスターとして、基盤地図情報「基本項目」の各データは標準の GML リーダーによってベクターとして読み込むことができます。
補間方法としては、Interpolation Type パラメーターによって下記のうちどれかひとつが指定できます。上記の結果(DEM標高値)は Bilinear によるものです。
・Nearest Neighbor (最近傍)
・Bilinear (バイリニア補間)
・Bicubic (バイキュービック補間)
・Average 4 (4近傍平均)
・Average 16 (16近傍平均)
次に、CoordinateExtractor によって標高APIリクエストのパラメーターとして必要な経度と緯度を属性として抽出してから HTTPCaller によってリクエストを発行し、レスポンス(JSON)を属性(_response_body)として受け取ります。
HTTPCaller パラメーター設定画面
JSON文書に記述されている2つのメンバー elevation (標高値), hsrc (データソース) は JSONFlattener によってそれぞれ同名の属性に格納できます。ただし、それらの属性を後続のトランスフォーマーやライターフィーチャータイプで参照するには、Attributes to Expose パラメーターによってワークベンチのインターフェースに現しておく必要があります。
JSONFlattener パラメーター設定画面
最後に、(この例では必須ではありませんが)AttributeManager によって属性名を変更したり不要な属性を削除したりしてから、Excelファイルに出力しました。
0 件のコメント:
コメントを投稿