# 点群活用ガイドブック

## 点群データでできること

- 点群データで何ができたか
  - 飛行ルートを元にして、ドローン飛行ルートにおける安全な高度の自動計算

## 点群データ活用の考え方

- 点群データの取得方法
  1. 次の URL からエリアを選択し、ダウンロードボタンを押す事によって点群データ(LAS ファイル)をダウンロードできる
  1. https://www.geospatial.jp/ckan/dataset/tokyopc-23ku-2024/resource/7807d6d1-29f3-4b36-b0c8-f7aa0ea2cff3
- 点群データ活用の考え方
  1. ドローンの飛行ルートについて
     1. 川の上しか飛べない／橋の上を通る場合は許可が必要
     1. 事前に想定ルートは概ね決まっている
     1. 以上のことから、ルート検索するよりは、事前にルートを決定しておき、安全な高度の割り出しや飛行リスクの高い部分をマークするのが良いと判断
  1. 高度の割り出し(アルゴリズム案)
     - 指定がある区間はその高さをそのまま使う。
     - 指定がない区間は、周りの点群に近づきすぎないように少しずつ高度を上げて「安全な高さ」を見つける。余裕の距離・上げ幅・開始高さ・上限高さは設定で調整できる。
     - 次の高さ指定が現れるまでのあいだは、その区間で見つかった安全な高さの中でも一番高い値を採用して、先を見据えて安全側に構える。
     - 高さは途中で下げない。明確な高さ指定が出るまでは、今より低くしない（下降禁止）の方針で飛ぶ。
     - 高さが変わるタイミングでは、その途中でも周囲に近づきすぎていないかを確認し、危険があれば注意として扱う。
     - 地図の線は、十分離れていれば緑、近いほどオレンジ〜赤で色分けして、リスクが直感的に分かるようにする。

## 参照実装

- 上記処理について、 参照実装を同梱した

1. 入力の飛行ルートに対して、高度計算や衝突リスク（障害物との距離計算）のシミュレーションを行う
   1. シミュレーションの結果を 3D マップで表示する
1. 地図上に線や図形を引き、プログラムから使える形式(GeoJSON)に変換するサイトを利用する
   1. 使用サイト：https://geojson.io/
      1. ルートを LineString で作成
      1. 指定高度のある範囲を Polygon で囲い、altitude プロパティでその範囲の高度(m)を指定
1. 画面右側に表示されたテキスト(GeoJSON 形式のデータ)をファイルとして保存し、参照実装のプログラムを実行する
   1. 高度を自動算出し、法的リスクの懸念がある箇所を色分けした 3D マップが表示される

## 付録

- 点群データ：G 空間情報センター、東京都デジタルツイン実現プロジェクト
  - https://www.geospatial.jp/ckan/dataset/tokyopc-23ku-2024/resource/7807d6d1-29f3-4b36-b0c8-f7aa0ea2cff3
- 地図上の図形データ作成：GeoJson.io
  - https://geojson.io/
