国土地理院の空中写真を並べて立体視

## はじめに

令和６年能登半島地震を受けて、国土地理院が情報提供を行っております。

https://www.gsi.go.jp/BOUSAI/20240101_noto_earthquake.html

提供情報の中には、空中写真があります。地図とぴったり重ねることができる「正射画像」も公開されています。

一方、正射画像が作成される前に、「垂直写真」というものが公開されます。これは、航空機から撮影された１枚１枚の写真です。建物の倒れこみなどがあり、地図とぴったり重ねることはできません。一方、２枚の写真を利用することで**立体視**をすることができます。

国土地理院では、標高データを提供しており、地理院地図3D や地理院地図Globe 等で地図を３次元表示することができますが、この標高データは地震前のものであり、地震後の状況を反映しているわけではありません。上述の正射画像を重ねることで、「崩壊した場所がもともとどのような地形だったか」は把握できますが、「崩壊したあとにどのような形状になっているのか」については、（標高データが更新されるまでは）地図上で見て確認することはできません。また、建物の状況を把握したい場面もあるかもしれませんが、建物などの高さデータは今のところ国土地理院では提供されていません。

そのため、垂直写真を用いた立体視により、簡易的に地形や建物の状況を把握できる可能性がありますので、その試行錯誤を記事に残します。何かの参考になれば幸いです。

:::note
既にフォトグラメトリ等の技術を利用して三次元表現をなされている方々もいるようです。ただ、簡易的・迅速に確認する場合、立体視を行う方法も有効かと考えています。
:::

## 垂直写真の立体視

写真測量では、１枚１枚の写真は重なるように撮影されています。別の視点からの写真を重ねあわせることで、地上を立体的に把握し、高さの計測等を行うことが可能となります。正射画像をつくるためにも必要なことです。

今回の令和６年能登半島地震で提供された空中写真も、隣りどうし重なるように撮影されていますので、これらをうまく並べることにより、立体視をすることが可能となります。地図調整等の測量をするのであればきちんと調整等が必要でしょうが、以下のように、ブラウザの窓２つに隣り合う写真を表示して、それを少しずつ動かしながら並べて見るだけでも、立体視は可能でした。

1. 地理院地図から目的の写真２枚を選ぶ。
2. 選んだ写真を別ウィンドウで開いて２つ並べる。
3. ２つの写真を拡大・縮小・移動等して、目的の部分を立体視できるように調整する。
4. 調整ができたら立体視を行う。

なお、立体視のやり方等は Wikipedia に譲りたいと思います。

https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%AC%E3%82%AA%E3%82%B0%E3%83%A9%E3%83%A0


## 立体視の支援サイト構築

さて、上記のような垂直写真の立体視だけなら、特別な作業は必要ありません。しかし、写真を並べて拡大や位置の調整をするのはやや煩雑な作業となりますので、支援サイトを作成してみました。あくまで、「国土地理院が提供している写真を２つ並べて、手動で調整することができる」という趣旨のサイトとなります。（写真測量などを考慮した特別な調整などは行っておりません。）

https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_suzu_0102suichoku/2/3/1.geojson#8/37.277/136.941

![使い方サンプル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842832/057c9807-2a59-3213-da04-a788d9c640eb.png)

### 使い方

1. まず、上部の地図上で、写真の撮影地点（青い丸）を選びます。
2. ポップアップから、左右どちらかの画像にセットします。
3. もう１枚の写真も同様に選択・セットします。
4. 下のパネルに２枚の写真がセットできたら、拡大・縮小・回転・スクロールさせて調整します。
5. 調整できたら立体視を行います。

読み込むデータについて、国土地理院が提供する geojson 単位となります。URL のクエリに `dataUrl={データの URL}` を指定することで、目的の geojson データを読み込むことが可能です。ただし、データの属性値などは直近（令和６年能登半島沖地震）のデータを参考に作成しており、そこから仕様が変更されるとエラー等が発生する場合があります。

国土地理院の空中写真の提供方法として、「画像」そのもので提供される場合と、写真の拡大・縮小・スクロールが可能な「ウェブサイト（HTML）」として提供される場合があります。画像で提供される場合は、MapLibre GL JS を用いて、拡大・縮小・スクロールが可能となるようにし、ウェブサイトの場合は `<iframe>` で埋め込んでいます。

:::note warn
`<iframe>` 埋め込みの場合、CSS の rotate で埋め込みサイトを丸ごと回転させていますが、もともとの要素からはみ出ます。なるべく埋め込みサイト部分（１枚１枚の写真表示部分）を正方形にした状態で回転させると、見た目上、スタイルが崩壊せずに済みます。
:::

:::note
選ぶ写真としては、同じ飛行コースの隣り合う写真を左右に並べるのが一番やりやすいと思います。撮影方向が南北の場合は、90度回転が必要です。
:::

### 令和６年能登半島地震 空中写真リスト（1/12 現在）
* [珠洲地区（1/2）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_suzu_0102suichoku/2/3/1.geojson#8/37.277/136.941)
* [珠洲地区（1/5）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_suzu_0105suichoku/2/3/1.geojson#8/37.277/136.941)
* [輪島東地区（1/2）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_wajimahigashi_0102suichoku/2/3/1.geojson#8/37.277/136.941)
* [輪島中地区（1/2）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_wajimanaka_0102suichoku/2/3/1.geojson#8/37.277/136.941)
* [輪島中地区（1/5）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_wajimanaka_0105suichoku/2/3/1.geojson#8/37.277/136.941)
* [輪島中地区（1/11）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_wajimanaka_0111suichoku/2/3/1.geojson#8/37.277/136.941)
* [輪島西地区（1/5）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_wajimanishi_0105suichoku/2/3/1.geojson#8/37.277/136.941)
* [輪島西地区（1/11）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_wajimanishi_0111suichoku/2/3/1.geojson#8/37.277/136.941)
* [穴水地区（1/5）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_anamizu_0105suichoku/2/3/1.geojson#8/37.277/136.941)
* [穴水地区（1/11）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_anamizu_0111suichoku/2/3/1.geojson#8/37.277/136.941)
* [七尾地区（1/5）](https://mghs15.github.io/display-photos-for-stereogram/?dataUrl=https://maps.gsi.go.jp/xyz/20240102noto_nanao_0105suichoku/2/3/1.geojson#8/37.277/136.941)

## 立体視の画像の例

自分が見やすいように調整したものを例として掲載します。どれも平行法（のつもり）です。

:::note warn
東西南北は回転させています。また、他のしっかり作られた立体画と比べると見づらさは否定できません。見やすいように画像は拡大・縮小を行ってください。
:::


隆起（輪島市 皆月湾付近）
![立体視_和島西_皆月湾.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842832/7840fccc-c869-041d-c650-4748978fe9c2.png)

津波（珠洲市 鵜飼付近）
![立体視_珠洲_鵜飼png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842832/140d68dc-aa1b-e07f-aae1-1a0f9a9b3c15.png)

火災（輪島市）
![立体視_和島中_和島.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842832/3177cdfc-cbb5-d69e-6fca-6b960a88df12.png)

崩壊（珠洲市 仁江付近）
![立体視_和島東_仁江.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842832/a463f2c1-106a-8d7f-9379-5b04a60965af.png)

## レポジトリ

https://github.com/mghs15/display-photos-for-stereogram/tree/main

## おわりに

自分はあまり立体視を使うような場面に至らなかった（正射画像で足りていた）のですが、今回やってみて便利だと感じました。

このような災害時は、様々な機関からいろいろな情報が出てきており、個人レベルでも様々な活用が見られます。色々な方々の取組に感謝しながら、情報・知見をうまく使う術を身に着け、フィードバックしていきたいものです。