GISについて理解すること（随時更新）

GIS初級者です。
間違い等ご指摘いただけましたら幸いです。

#GISは難しい
とにかく頭がごちゃごちゃになる。たぶん繰り返し使って慣れるしかない。
そもそもGISそのものもそうだけど、理解する必要のある概念がいくつかある。
Web上にマニュアルは幾つも落ちているが、参照するにも事前知識が必要だったりで沼に陥りやすい。
理解したことをまとめていこう。
ラボのArcGISのライセンスが切れたこともあって、使うのは基本QGIS３で。

#参考にしたサイト
インターネット上には優しい先輩方がたくさん。時間をかければ独学でも理解できるのは確実。
・[Esri　GIS　基礎解説](https://www.esrij.com/gis-guide/)
・[Wikipedia測地系](https://ja.wikipedia.org/wiki/%E6%B8%AC%E5%9C%B0%E7%B3%BB#cite_note-6)
・[国土地理院](https://www.gsi.go.jp/index.html)
・[日本測地系による地域メッシュコードについて
解説１　世界測地系と日本測地系の違い](http://www.drm.jp/jisx0410/JisGridSystem_1_Geoid.html)
・[QGIS入門](https://sites.google.com/site/qgisnoiriguchi/)
・[PASCO 測地系とは？](https://www.pasco.co.jp/recommend/word/word075/)
・[GPSの基礎知識（測地系、精度に関して）](http://www.rinya.maff.go.jp/kyusyu/iriomote_fc/pdf/gps-kisotisiki.pdf)
・[ArcMap　地図投影とは](http://desktop.arcgis.com/ja/arcmap/10.3/guide-books/map-projections/what-are-map-projections.htm)
・[座標系という仕組み（システム）について大まかに理解する](https://foujitatsu.hatenablog.com/entry/2018/12/04/170024)
・[座標系とは](http://club.informatix.co.jp/?p=708)
・[Wikipedia　平面直角座標](https://ja.wikipedia.org/wiki/%E5%B9%B3%E9%9D%A2%E7%9B%B4%E8%A7%92%E5%BA%A7%E6%A8%99%E7%B3%BB)
・[QGIS](https://docs.qgis.org/3.4/en/docs/index.html)


#[座標系](https://www.esrij.com/gis-guide/coordinate-and-spatial/coordinate-system/)
GIS上で特定の位置を示すための「座標」のルール。
地理座標系、投影座標系、鉛直座標系がある。

##　地理座標系
地球を3次元のまま捉えて、座標を定義。
緯度経度（と標高？）で指定される。単位は度など。
実際の決め方（というか測り方）は測地系（後述）によって決められる。

角度情報のみなので、距離や面積は測れない？

##　投影座標系
地球を2次元としてとらえて（つまり平面に投影して）座標を定義。
原点からの距離（X,Y座標）で指定される。単位はｍなど。
実際の値は、投影法と原点の位置による。

##　[鉛直座標系](http://desktop.arcgis.com/ja/arcmap/10.3/guide-books/map-projections/fundamentals-of-vertical-coordinate-systems.htm)
地球の断面を一部切り取り、高さのみに着目した時の座標？を定義。
基準面からの距離で指定。単位がmなど。




#測地系（測地基準系）
地理座標系において地球上の特定の位置の座標を表すためのルール。
基準点（原点）の絶対的な座標値を求めてそこからの相対的な位置関係で決めるのが基本。

各測地系はそれぞれ前提条件として地球の形を楕円に近似して定義しているので、測地系-楕円体の組み合わせを考慮する必要性がある。（だいたい一つの測地系に一つの楕円体。）

だいたいそれぞれの国がそれぞれ固有の測地系を持っていたりするけど、日本はじめ世界測地系へ移行するのが現在のトレンド。

測地系間で変換のための計算式は公開されていたりするみたいだけど、ケースバイケースで得られる情報の測地系に合わせて現場では処理されていることも多いみたい。

##　日本測地系：Tokyo
かつて日本が使っていたやつ。旧日本測地系。原点は東京の旧国立天文台跡地で基準点は全国各地の当時あった三角点とか？天文観測により絶対的な座標を測定。
地球の形はベッセル楕円体とする。
精度の悪さ、地面が動いてる、世界で使われていた測地系との互換性の無さなどにより今はスタンダードではない。
（世界測地系ITRFとの誤）差は数百メートル程度。

##　世界測地系
多分場合によって微妙に定義が変わるようだけど、原点を地球の重心とした測地系。つまり世界中で使うことを考慮している。
地球の形は。それぞれ決めてる。

測量方法は、従来の天文測量ではなく、電波星を利用した[VLBI（数十億光年の彼方にある電波星から届く電波を電波望遠鏡で受信して数千ｋｍもの長距離を数ｍｍの高精度で測る技術）観測](https://www.gsi.go.jp/LAW/G2000-g2000-h1.htm)とか人工衛星を使うことが前提。
まあ、原点地面の中だしね。
この測量方法に応じて、測地系の精度と利便性が変わってくる気がする。（つまりケースバイケースでどの測地系とデータを使うか）

[主にITRF系、WGS系、PZ系の3種類がある。ITRF系は、我が国をはじめ多くの国家が陸域で採用している。WGS系は、主に船舶が採用している。PZ系は、ロシアが採用している。](https://www.gsi.go.jp/LAW/G2000-g2000faq-1.htm)


###　　世界測地系：ITRF系
IERS（国際地球回転観測事業）という国際的な学術機関が構築している３次元直交座標系。一応一番正確ということになっているので、今後大きく改訂されることはないらしい。
地球の形はGRS80楕円体という一番正確とされている形。

###　　世界測地系：WGS84
アメリカが軍事用にGPSとセットで維持管理。84は1984年を意味するけどその後、複数回大きな改訂あり。現在は、ほぼITRF系と同じとされていて、[ITRF2008との差は平均1,2 mm程度。](https://ja.wikipedia.org/wiki/%E6%B8%AC%E5%9C%B0%E7%B3%BB#cite_note-6)
地球の形はWGS84楕円体。[GRS80楕円体との差は、高さについて0.11mm以下、水平位置について約0.000003程度(Tobita,1994)に過ぎないので、同一楕円体とみなせるらしい。](https://www.jstage.jst.go.jp/article/sokuchi1954/43/4/43_4_231/_pdf)

航海なんかでよく使われるらしい。たぶんGPSで得られる情報が多いからだと思う。

###　　世界測地系：[PZ系](https://ja.wikipedia.org/wiki/%E6%B8%AC%E5%9C%B0%E7%B3%BB#cite_note-6)
ロシア（ソ連）のGLONASSとセットで開発。今でもGLONASSのデータはこれ。
地球の形は、PZ-90楕円体。
[PZ90.11とITRF2008の差はセンチメートルレベル](https://ja.wikipedia.org/wiki/%E6%B8%AC%E5%9C%B0%E7%B3%BB#cite_note-6)。

なおロシア国内でも、最新ではGSK-2011というITRF系の測地系が用いられている。

###　　世界測地系：JGD2000（測地成果2000）
日本測地系をやめて日本が使いだした測地系。ITRF94-GRS80の組み合わせに準拠。
震災後のJGD2011というのもある。あの地震は原点をもずらしたらしい。

#[投影法](https://www.esrij.com/gis-guide/coordinate-and-spatial/map-projection/)
投影座標系の際に重要な、3次元の地球を2次元にするときのルール。
必ず角度、面積、距離のいずれかがゆがむ。
どれがゆがまないかによって、正角図法（メルカトル図法など）、正積図法（モルワイデ図法）、正距図法（正距方位図法）がある。
また、投影面の形によって円錐、円筒、平面図法がある。

同じ投影法でも場所によってゆがみの補正が異なるため、名称が区別される。UTM Zone 44みたいな。

##　平面直角座標系
角度、距離、面積が一定の誤差の範囲に収まるように、範囲を選び投影する方法。
基本的には日本固有で、[日本国内の場合](https://www.gsi.go.jp/LAW/heimencho.html)19の原点が設けられそれぞれに分割されている。具体的な投影方法は、ガウスの等角投影法で投影されている。

##  UTM
ユニバーサル横メルカトル図法の略。全世界が経度6度ごとにZoneとして分かれている。


#[国家基準点(日本)](https://www.gsi.go.jp/sokuchikijun/datum-main.html)
日本国内にある基準点。あくまで基準点が置いてある地球表面の座標なので、時間と共に変化していて、時間情報と共に記録・モニタリングされている。

##　三角点
山や公共施設内にある。緯度経度標高が正確に記録。約10万点ある。

##　水準点
道路沿いに2㎞毎に設置。標高のみ記録。1万7千点ある。

##　電子基準点
GNSS衛星からの電波を受信して緯度経度標高を24時間連続的に記録。データは国土地理院に送られる。1300点ある。
JGD2000への移行の際に整備された。


#測地系、座標系、投影法の関係
三つとも別の概念。
まず、座標系がなんなのかが決められる。
その後、地理座標系では測地系と楕円体が決められ、投影座標系では投影法と原点が決められる。

| 座標系   　　     |  測地系or投影法など |  
|:----------------:|:-----------------:|
|地理座標系    　    |        世界測地系 |
| 　　　　　　       |    　   日本測地系 |
| 投影座標系        |     メルカトル図法 | 
| 　　　　          |        平面直角図法 |       

一般的に、位置情報と言えばGPSはじめ地理座標系で表すが、GIS上でGUIで表示させた時点で３Dモデルでもない限り「投影」していることになるので、それは投影座標系が関わってくる。
つまり、GIS上で作業する限り座標系は選ぶのではなく、地理座標系と投影座標系いずれも定義する必要性がありそう。

#測地系、座標系、投影法の関係
三つとも別の概念。
~~基本的には、まず座標系が決められ、座標系によって測地系（地理座標系 ）か投影法（投影座標系）が決められることになるという理解でいる。
一般的に、位置情報と言えばGPSはじめ地理座標系で表すが、GIS上でGUIで表示させた時点で３Dモデルでもない限り「投影」していることになるので、それは投影座標系が関わってくる。
つまり、GIS上で作業する限り座標系は選ぶのではなく、地理座標系と投影座標系いずれも定義する必要性がありそう。~~
と思ったけど、どうもそうではないらしい。

GIS上で定義するのは入力データの座標系なので測地系のみの指定でも画面上には何らかの方法で投影されることになっているみたい。


更に、Esriジャパンによると
>[投影座標系では地球の形状なども考慮して投影を行うため、地理座標系の定義も含まれます。](https://www.esrij.com/gis-guide/coordinate-and-spatial/coordinate-system/)

ということみたいで、地理座標系を定義した後に、投影座標も定義することがあるという理解が正解かな。
距離や面積は投影座標でないと測れないことになっているらしいので、リモセンの画像解析を行ったりする場合は、投影座標も定義して解析進めたほうが良さそう。

→やっぱり地理座標系にも投影法の指定有りそう？
少なくともGRASSでは全EPSGのパラメーターにproj＝～が指定されている。WGS84のEPSG：4326はproj=longletでUTMはproj=utm。longletがなんのことかわからないけど、WGS84でも

#CRS（空間参照系、Spatial Reference System）とは
上記した通り、GIS上のデータは、地理座標系のみor投影座標系+地理座標系で定義が必要であり、その組み合わせをQGISでは、CRS（空間座標系）として設定されている。
CRSは、諸々のパラメーターとセットでナンバリングされおり、このコードをSRIDと言う。SRIDは各自が規定するが~~実質みんなEPSGコードを使っているのでSRID＝EPSG：xxxxとなっている。~~[QGISでは研究所Geographiqueナショナル・ド・フランス（IGNF）が規定しているコードも使っている。](https://docs.qgis.org/2.14/ja/docs/user_manual/working_with_projections/working_with_projections.html)よってCRS＝EPSG：xxxx or IGNF:xxxxとなっている。
EPSGはイギリスの団体European Petroleum Survey Group。


まとめも兼ねて具体例を出すと、
JPD2000は、SRID＝EPSG：4612だし、これに投影座標系としてUTMZone54Nという情報を足すと、SRID＝EPSG：3100になる。

おそらく投影座標系と地理座標系の組み合わせはある程度決まっており、平面直角座標系はJPD2000、JPD2011、Tokyoの三択しかないけど、UTMは、3つ以外にWGS84などもありえる。平面直角座標+WGS84の組み合わせのSRIDが存在しないのか、単に使われないのかは未確認。

CRSを変えたいときは、設定で変えるのではなく、変換ツールで変換する必要あり。
そうでないとCRS間での誤差がそのまま補正なしで受け継がれる。
[ここ](https://docs.oracle.com/cd/E16338_01/appdev.112/b72087/sdo_cs_concepts.htm#CIHDDABH)でもWGS84だと場所によってゆがむとか言っているからそういうことなんだと思う。



#QGISとGRASS
QGISではプラグインという形でGRASSが利用可能。GRASSは、それ単独でGISとして有用なツールだが（まだ未使用のため推定）、QGIS上で使えるならそれに越したことはないだろう。
早速QGISと並行して使いたくなったので、使い方を勉強する。

##　GRASS使用前の準備
GRASSは少し癖があるようで、普通のプラグインのようにアクティベイトするだけでは使えないよう。そもそも、僕のPCにはGRASSがプラグインとしてはいっているQGISと入っていないQGISがあったので少し混乱。また、プラグインを入れる目からツールボックスで使えるツール一覧の存在もまだ理解していない。一度使おうとしたら使えなかったので一旦距離を置いておく。

GRASSは、入力時点で隔離しとく必要があるよう。また、環境設定毎にファイルを分けて保存していくみたい。詳しくは[QGIS公式の説明](https://docs.qgis.org/3.4/en/docs/training_manual/grass/index.html)が分かりやすい。変に自動翻訳された日本語よりも英語のほうが分かりやすい人が多いと思う。
とにかく最初は、Database→Location→Mapsetの順で環境をセットする必要がある。
~~この作業はQGIS上で出来る。流石プラグイン。~~
できなかった。


PluginタブからGRASS→Newmapsetで、databaseファイルを適当に作って、次はLocationの設定。
ここでクラッシュ。何度やってもLocationの名前設定後にNextでフリーズ&クラッシュする。
グーグル先生に泣きつくとWindowsで確認されるバグだった。結論としては、Windowsではプロシーディング以外GRASSは触んないほうがいいらしい。参考になるのは[これ](https://github.com/qgis/QGIS/issues/31440)とか[これ](https://github.com/qgis/QGIS/issues/31545)とか。
ちなみにWindows8.1ｘQGIS3.10とWindows10ｘQGIS3.4でダメなことを確認。インストーラーとしてOSGeo4Wネットワークインストーラーを利用するかどうかでも違ってくるかもしれないけど、[そっちは面倒くさそうなので](https://qgis.org/ja/site/forusers/alldownloads.html)今は手を出さない。

普通にGRASSを立ち上げて直接Locationの設定を行う。GRASSはQGIsインスト―ルでセットでインストールされてるみたい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/477691/a9411a5e-382f-8c6b-f1f3-bcbfc2b1712e.png)
こんな感じで作った。
Locaionは地図の範囲を指定するものらしく、今回のWGS84では地球上すべてで設定した。
更にその中にMapsetを作成。

ここまでやったらQgisに戻り、Mapsetを開く。これはうまくいく。