GIS における2D投影（Projection）座標の紹介及び変換ハンズオン

# はじめに
* [「株式会社センシンロボティクス」](https://www.sensyn-robotics.com/)から参りました衛です。
普段の仕事はドローンなどに関わるWebアプリの開発（ルート計画、結果処理、その他）です。
よろしくお願いいたします。

* この記事は、GISソフトを使う時や、測量と地図関係の作業していくときに、大前提である2D投影座標変換（Projection）をテーマにしています。  
* [「3D地図周りの知っておきたい地形情報に関する概念」](https://qiita.com/ericofjp/items/1dbb69bf4b92b6d120bc)の記事に、３D地図を中心にGISの概念ややり方を説明しました。気になる方はそちらへどうぞ〜
* また、GISソフトを使った測量のやり方も簡単に説明しました。[「GRASS GIS で dem(tiff)データに対して測量を行う(富士山の体積を測ろう！)」](https://qiita.com/ericofjp/items/3aef59ec4e1a921c0450)となします。

# なぜ地理座標変換が必要か
* ドローンを含む測量する場合、得られるデータは基本は（経度,緯度）のような地理座標系（球面座標系、基本はWGS84座標系）である。
一方、測量や人間が距離、面積を理解するためには、地球の球面サーフェスを２次元直交座標平面に投影された地図が好ましい。
なので地理座標を投影座標に変換する必要がある。

* さまざまな測量ソフトやGISシステム、あるいは地理情報を提供するプラットフォームでは、使う投影座標が異なるので、変換が必要である。

* 例：[DJI terra の使う座標系はUTM（中心点からのメータ単位表記）](https://www.heliguy.com/dji-terra-i119)、
　　一方、[こちらからダウンロードできる日本のエレベーションデータ](https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/28762)はWGS84（経度緯度）
* UTMの例
![Screen Shot 2020-12-07 at 12.15.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/87bb0a18-20b3-b5dd-f037-e95a4dfd40e4.png)
* WGS84の例
![Screen Shot 2020-12-07 at 12.10.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/6c23a829-f6d4-7184-2107-2c5d02a9fd17.png)


* 変換しない場合の体積測量で違和感を感じる記事は[こちら](https://qiita.com/ericofjp/items/3aef59ec4e1a921c0450)である。これは説明を簡潔にするため、経度緯度そのまま使って測量を無理やりに行った例である。


# よく使う座標系の説明
## 便利なサイト　
* https://epsg.io/  
  epsgでは、下記説明する座標系を検索したり、詳細を確認するのはとても良い。  
  検索例  
  ![Screen Shot 2020-12-11 at 12.12.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/74e5a209-e6e9-2820-f8b3-1f328aedcd9b.png)
* https://www.metadata2go.com/  
  このサイトにファイルをアップロードすると、メタデータが表示されて、座標系が確認できる。  
  ![Screen Shot 2020-12-11 at 13.26.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/727ae664-0bd3-57ca-81cb-8629abd14844.png)

  


## WGS84
* 経度緯度で地図を表現する。
* 地球全体、どこでも表現できる。
* WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
* Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
* 一番生活中によく使うものなので、説明はこれぐらいにしておく。
* 実際の例：  
  その１、Google Map
  ![Screen Shot 2020-12-11 at 11.22.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/89e393b0-b472-40de-8458-b9154a8534ac.png)
  その２、30N120E_20101117_gmted_std300のエレベーションデータ(GrassGisに読み込んでみる)
  ![Screen Shot 2020-12-11 at 11.30.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/c215040a-e424-b7ad-df40-1e4c36136d43.png)  
  地図画面の左下は経度緯度でマウスがホバリングしているところの座標を表示している。  
  ![Screen Shot 2020-12-11 at 11.33.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/c9168869-e8a5-4cc4-f8ca-15a6fea279c7.png)


## UTM
* Universal Transverse Mercator coordinate systemの略語。
* 地球を縦に60分割にして、それぞれを経度６度の広さのストライプを表現する。
  さらに北と南に分けられてN/Sで標識する。
  ![Screen Shot 2020-12-11 at 11.45.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/45f116cf-d423-8795-98a5-cfae184d6bb2.png)
* 分割された 60 x 2 = 120　のzoneがそれぞれ独自の2dのメーター単位の座標系である。
  ![Screen Shot 2020-12-11 at 11.53.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/d44f67ab-ca8e-9d1a-f62f-ef2543d01028.png)
* 東京ならUTM zone 54N
* UTM zone 54Nの[詳細情報](https://epsg.io/32654)より抜粋：
  ![Screen Shot 2020-12-11 at 12.05.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/90df3f3c-39cf-4466-8f3b-19acc6e55fef.png)
* 読み解く方法：経度緯度の範囲がわかって、メーター単位で位置を表現している。  
  （なので真ん中は、[lat: 141E, log: 42N]は、[500000, 4649776.22]として表現すれば良い）
* UTMとなると、距離の表現や面積の表現、さらにDEMやDSMデータなど高さを持つデータがあれば体積の表現もやりやすくなって直感で理解しやすい。


## JGD2011やその他
* 基本、UTMと似たような見方で、単位がメーター、区間に分けられた測地系である。
* JGD2011は日本が維持して日本の補正がきめ細かくできて測量の精度が高くできるとか。
* さらに区間を細かくしてより高い精度を求める座標系も多数存在するが、ここでは割愛。
* 例：下記は、標準の UTM zone 54Nより小さい分、球面から平面への投影の変形が少なくて精度が高い。  
  ![Screen Shot 2020-12-11 at 12.22.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/f9d7e332-1c60-1faa-bd73-fd7db9cd505d.png)

# 変換方法(GrassGis例)
* コマンドでやる場合は[公式サイト](https://grass.osgeo.org/grass76/manuals/r.proj.html)の説明の通り。
* GUIでやる場合は、下記のように操作すればできる。  
(1) [ここから](https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/28762)日本の経度緯度をした座標系のエレベーションデータ（raster）をダウンロードできる。  
  （経度緯度で表現しているの説明があるので、メーター表現の座標系ではない。）  
(2)  GrassGisで新しいプロジェクトを作成する  
  ![Screen Shot 2020-12-11 at 12.36.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/735dd921-a165-e1c3-f794-eefd83b41b59.png)  
(３) UTM zone 54NのESPGコードをhttps://epsg.io/ で調べる。  
  今回は調べた結果は[ここ](https://epsg.io/32654)。  
  ![Screen Shot 2020-12-11 at 12.39.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/ffca91aa-0e81-6622-d390-47e73e56af4f.png)  
(4) 32654を使ってLocationを作成  
  ![Screen Shot 2020-12-11 at 12.41.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/5ef31797-b575-213c-fa1c-edbd3dc838c2.png)  
  ![Screen Shot 2020-12-11 at 12.42.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/ea1d99e9-1d7e-1cf2-49a5-3def742200af.png)  
  ![Screen Shot 2020-12-11 at 12.43.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/f109d01a-66ed-af4f-df3c-935ee703c6d8.png)
(5) 作成したのを起動して、先ダウンロードしたRasterをインポート  
  ![Screen Shot 2020-12-11 at 12.45.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/f2da79b5-4142-f9de-789f-c628f345da0f.png)  
  ![Screen Shot 2020-12-11 at 12.51.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/46b286be-d9db-17b5-77b9-6df2a6565e8d.png)  
  ![Screen Shot 2020-12-11 at 12.52.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/b13fa9e7-cbc9-03d3-a264-57387b2f2eb5.png)


(6) インポートが完了されて、WGSから欲しいUTMに返還されたことを確認。  
  log  
  ![Screen Shot 2020-12-11 at 12.55.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/0ace8020-349a-7522-019f-3ae8595e58b2.png)  
  座標の表現ががメーターに変わった(地図画面の左下)。
  ![Screen Shot 2020-12-11 at 12.56.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/ce03829f-de73-0c85-0b68-e9313dc61455.png)  
  東京から北海道までの距離を測ってみたり、色々便利に利用できる。  
  ![Screen Shot 2020-12-11 at 13.04.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/7a459752-6277-7f69-3038-dd17318b6848.png)  
 ![Screen Shot 2020-12-11 at 13.05.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547017/b0d50961-50fb-57e3-63ba-2225c380df8c.png)