・授業準備
午後
・修論・卒論手伝い(作図)
・卒論論文化(データ整理)
ここ数日の懸念事項であった、航空写真をggplotに取り込む方法が、どうにか決着した。
ggplot()で地図を扱う場合、library(OpenStreetMap)でbingの航空写真が使えるが、著作権がどうなっているのか良く分からないので、先々のことを考えると、違う方法を使いたかった。
国土地理院の地理院タイルで綺麗に出力できれば、それで良いのだが、場所や倍率によってはいまいちのことがある。なぜか学生はエラーが出るという切実な問題も、、、。
そこで、鳥取砂丘の航空写真は入手できるので、それを使うことにした。しかし、GISの知識に乏しいので色々と苦戦した。
まず、地図データの入ったGioTiffとい画像データがある。「.tif」だが、緯度経度の情報が含まれている。これは過去に使ったことがあったが、今回もらったものは、「.tif」と「.tfw」があり、まず悩んだ。
これは、「.tfw」に地理情報が入っており、GISのソフトなどでは、同じフォルダにおいておけば、「.tif」を開くだけで地理情報も読み込まれるみたい。
で、航空写真は全部で10枚程度、測地系は日本測地系2011であり、あとサイズが大きい。ということで、まずは、サイズを小さく(解像度を下げる)、そして、測地系をggplot()で使いやすいWGS84に変更することにした。これはQGISで地道に行った。また、全てのレイヤーも結合した。
で、これをggplot()で読み込む。結構、悩まされたが、終わってみればあっけない。
重要なのは、航空写真(ラスタデータ)の読み込みは、library(raster)のstack()を使う(カラー航空写真は3枚のラスタデータで構成されているため?)
もう一つ重要なのは、ggplot()ではなく、library(RStoolbox)のggRGB()をつかう。上記の通り、航空写真は赤、青、緑の3枚の画像を合わせることでカラーを表現をしているが、このような画像をggplot()で出力するために開発されたのがggRGB()である。これを見つけたらほぼ終わりでした。とても助かりました!
library(raster) library(RStoolbox) library(ggplot2) #航空写真の読み込み photo <- stack("***.tif") #重要! #軌跡用のデータ読み込み:gpsを使ってロギングしたデータ s_0615 <- st_read("***.gpx", layer = "tracks") s_0610 <- st_read("***.gpx", layer = "tracks") #点データ読み込み:xy座標データ eriza <- read.csv("***.csv") #ggplot作図の基本設定;何となく指定しているが、必須ではない。 mytheme <- theme(***) #作図設定 map <- ggRGB(photo, r = 1, g = 2, b = 3) + #重要! geom_sf(data=s_0615, color=rgb(1, 0, 0, alpha=0.3), size=10) + geom_sf(data=s_0610, color=rgb(0, 0, 1, alpha=0.3), size=10) + geom_point(data=eriza, aes(x=lon, y=lat), size=10, shape=21, fill="green", color="white") + labs(x = "Longitude", y="Latitude")+ mytheme
左上の黒塗りは、海のため航空写真のデータがない。