Geocomputation with R 学習メモ 1
LiDAR関連の研究でここ1年くらいRを使ってきた。GPSの可視化なんかもやりたいな、と思ってしっかり勉強しようと思った次第。とりあえずPythonよりもRの方が使い慣れているのでRでやってみようかな、と。
使用するテキスト
"Geocomputation with R" By Robin Lovelace, Jakub Nowosad, Jannes Muenchow
↑からオンライン上で閲覧可能。CC4.0で「非営利かつ改変しないのであれば、クレジットを表示して共有化」ということらしい。
書いてある内容を元に学習内容をメモ書きしていくのがOKなのかどうなのか判断がつかず、問題があったら指摘して下さい。できる限り自分の言葉で説明していますが。
基礎から学習したほうが良いのは理解しているがかなり内容が重い。それと将来使うビジョンがあまり見えていない側面もある。そのため、全部の章は絶対見ないと思う。
やりたいことを固めることの方が大事かなと思っている。
1章 導入
1.1 geocomputationとは
地理について数的な処理を行うこと。この本での定義は
we define the term as follows: working with geographic data in a computational way, focusing on code, reproducibility and modularity.
再現可能性と機能のまとまり(?モジュールの訳むずい)で、コードを用いて地理データをコンピュータで扱うこと
今後は地理情報処理、と訳すことにする。
最近はデバイスへのアクセスが容易になったり、データなどの公開が活発になってきたりしたのもあるので盛ん。
Geographic Information Science (GIScience)とGeographic Data Science(GDS)という厳密には意味の異なる単語がある。どちらもサイエンティフィックに、すなわち再現性と反証可能性があることが重視される。違いよりもオーバーラップが多いため、Geocomputationはそれらを包括的に扱う 。
1.2 なぜRなん?
他の言語を使える、というのは本質的な答えではない気がするが、「Rは可視化が得意」というのは最もだろう。個人的には、いろいろな人がパッケージを公開しているのも良い点かと思う。
Rはオブジェクト指向、かつ可視化に優れる。
柔軟性がある、GISとの「懸け橋」な役割を果たせる
パッケージを使えばPythonやC++との互換性がある
1.3 空間情報処理を行うソフトウェア
RかPythonかは「興味ある方で良いんじゃね」程度であんまり重要じゃない気もするが、GISとの相性が良いPythonに興味がわかなくもない。Pythonで不得意な可視化を、GISの力を借りてやろうということかも。GISはシンプルにGUIで操作できるので、そういう意味ではPython、結構いいかも(笑)
RだけでなくC++、Python、Javaとかある。
インタプリタ型言語のR, Python、コンパイラ言語のC++, Java
C++はGISに使われている(QGISとか)、Javaも。
RもPythonも主要なGISに組み込まれている。どちらを選ぶかそこまで重要という訳ではない時もある。
RとPython比較して、Rのいい所はいろんなデータモデルに対応していることと可視化の可能性、Pythonのいいとこは統計以外にも使われている点や異なるGISをコマンドで処理をするとき都合が良い(例:QGISとArcMap)
1.4 空間をあつかうRのエコシステム
spと、それを引き継いでいるsfパッケージ
dplyrの登場がRの地理情報処理にも変化を呼んだ。
1.5 R-spatialの歴史
たまたまlidR, rayshaderは扱ったことがあり、名前が出てきて驚いた。ちなみにliDARデータを扱えるlidRはいろいろ機能あってすごいと思う。新しいことを学ぶのが楽しく、わりといろいろな機能を使えるようになった。
過去には今では名前を聞かないパッケージいろいろあった
point, line, polygon, rasterを定義したGDALに対応するように(rgdalやsp)
spがジオメトリやラスタを扱いにくい、という問題もrgeosやrasterによって改善、他のGISとの統合も進められる
可視化は当初あまり注目されていなかったがRgoogleMapsやggmap等でだんだん行いやすくなった。
raster→terra, starsやlidR、rayshader等新たな分野も進化
rgdal, rgeos, maptoolsは2023年終わりにリタイアする、そのためsfやterraの使用が推奨される
1.6 練習問題
1. あなたがやりたいことはGIS GDSどっち?なんで?
liDARのポイントクラウド処理をする、というのはGDSかな?と思った。伝える、というよりも処理をして何かを求める、ということがテーマだから。
2. なぜGUIではなくRのようなコマンドラインを使うか?3つの理由書け
共有しやすい、繰り返し処理が得意、間違いがわかりやすい
3. 現実の例?
コロナ患者数と観光客数とかかな?沖縄北海道の感染者は人口当たりと比してとても多い気がする。
この記事が気に入ったらサポートをしてみませんか?