YouTube | Facebook | X(Twitter) | RSS

標高データから道路勾配を求める方法

2017/1/4 (水)

道路フィーチャの属性値に DEM データから求めた勾配を格納する方法を紹介します。

この処理を行うモデルは ArcGIS Online に公開されていて、ArcGIS ブログの記事でも取り上げられているのですが、ArcGIS for Desktop Advanced ライセンスが必要な方法で作成されていたので、この記事では ArcGIS for Desktop Basic ライセンスでも実行できるように修正します。ラスタ データを処理するので ArcGIS Spatial Analyst エクステンション ライセンスは必須です。

参考になるモデルをダウンロードしてモデル ビルダーで確認すると、おおまかに以下の流れで処理されていました。

Path Slope モデル

  1. AOI(処理したい範囲)から 1km バッファーを作成
  2. 道路データを "バッファー ポリゴン フィーチャクラス" でクリップ (Clip)
  3. DEM データのセル サイズ(X)を取得
  4. "1." の高さ・幅いずれかの大きい方を 2000 で割った値を計算
  5. マスクで抽出 (Extract by Mask) ツールで DEM データからバッファー ポリゴン フィーチャクラスの範囲で抽出、出力セルサイズとして "3." と "4." の大きい方の値を使用
  6. "5." で作成したラスターから傾斜角 (Slope) ツールで勾配(パーセント)を計算
  7. "6." で求められた勾配を再分類 (Reclassify) ツールで 9 の値に分類(おおむね勾配 10% ごとに)
  8. "7." のラスタ データセットをラスター → ポリゴン (Raster to Polygon) ツールでポリゴンに変換、ポリゴンは単純化された形状にスムージング
  9. アイデンティティ (Identity) ツール※ Advanced ライセンスが必要)で道路データと "7." のポリゴンを結合して、勾配を持ったライン フィーチャクラスを作成
  10. フィールドを追加して "7." で求めた勾配の値を適切なフィールドに格納し、不要なフィールドを削除

モデルを Python スクリプトに変換したコードはこちら

"9." のアイデンティティ ツールは、インターセクト (Intersect) ツールで代用することができます。勾配の再分類も任意に指定できるようにモデル パラメーターとしました。また、不要なフィールドの削除も修正しました。

ダウンロード:Path Slope Tool Basic.tbx

ファイルをダウンロードして ZIP を解凍し、TBX ファイルを任意の場所に配置して ArcMap から開いてください。Path Slope (Basic Version) が ArcGIS for Desktop Basic ライセンスで実行できるように修正したモデルです。修正はバージョン 10.4.1 で行っています。ツールの実行は自己責任でお願いします。

  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-GIS, ArcGIS
-