iNaturalistのプロジェクトデータをRで読み込んで遊んでみた。
iNaturalistとは?
iNaturalistはカリフォルニア科学アカデミーとナショナルジオグラフィック協会が共同で運営している市民調査プロジェクトです。このプロジェクトはブラウザ、スマホアプリ両方で利用することができます。
iNaturalistの特徴の一つに、プロジェクト機能があります。プロジェクト機能は、iNaturalistにアップされたデータを自分の決めた条件でまとめることができる機能で特設のページをiNaturalist上につくることができます。このプロジェクト機能は誰でも簡単に使うことができます。プロジェクト機能で集められたデータはrinatパッケージを用いて容易にRにデータを吸い上げ、Rの中で完結してデータ分析を行うことが可能です。この方法について、サポートが少なかったので、こちらでやり方を残しておこうと思います。
用いたパッケージと材料
今回の分析には以下のパッケージを用いました。
(udunits2パッケージを読み込まないと、なぜか自分のPCはsfパッケージが動かないのでudunits2パッケージを読み込んでいます。)
library(RCurl)
library(rinat)
library(udunits2)
library(sf)
library(tidyverse)
また、国土数値情報から石川県の行政区分境界のポリゴンを用いました。
プロジェクトのデータをダウンロード
今回利用するプロジェクトはみんなで作ろう!いしかわ生き物マップです。
ダウンロードはget_inat_obs_project関数を用いて行うことができます。最初に、プロジェクトページの最後の部分(https://www.inaturalist.org/projects/38174eb5-d708-4e4d-9aea-fb3e25b614dbの太字部分)を記入、後にtype = “observations”と記入すれば、リストをダウンロードできる。ちなみに、raw = TRUEを加えると、JSONファイルでダウンロードされるらしい。
obs<-get_inat_obs_project("38174eb5-d708-4e4d-9aea-fb3e25b614db", type = "observations")
これでダウンロードできない場合はプロキシの確認を!!!!(経験者)
ダウンロードができたので、テキトーにデータで遊んでみる
まずは、列の量が非常に多くて扱いづらいので、列を絞る。
obs_select<-obs %>%
select(id,observed_on,latitude,longitude,species_guess,iconic_taxon_name,user_login,quality_grade,taxon_geoprivacy)
分類群の偏り
obs_taxon<-obs_select %>%
group_by(iconic_taxon_name) %>%
summarize(count = n()) %>%
as.data.frame()
obs_taxon
g_taxon <- ggplot(data=obs_select)+
geom_bar(aes(x = iconic_taxon_name))
g_taxon
鳥、昆虫、植物に偏ってる.…
年ごとの観察数
YM<-substring(obs_select$observed_on,1,4)
obs_per_day<-obs_select %>%
bind_cols(YM) %>%
group_by(...10) %>%
summarize(count = n()) %>%
rename(year=...10) %>%
as.data.frame()
g_year<-ggplot(data=obs_per_day,aes(x = year,y = count)) +
geom_bar(stat = "identity")
g_year
近年増えた?
IDごとの観察数のヒストグラム
obs_ID<-obs_select %>%
group_by(user_login) %>%
summarize(Number_of_observations = n()) %>%
as.data.frame()
g_ID <- ggplot(obs_ID, aes(x = Number_of_observations)) +
geom_histogram()
g_ID
ほとんどの人が1~10回の観察
地図に起こしてみる
読み込んだデータをGISデータに
obs_shp<-st_as_sf(obs_select, coords = c("longitude", "latitude"), crs = 4326)
事前に用意したポリゴンを読み込み
ishikawa<-st_read("C:/石川/A002005212000XYSWC17/h12ka17.shp")
まずは、全データ
g_point_all<-ggplot() +
geom_sf(data=ishikawa) +
geom_sf(data=obs_shp)
g_point_all
地点を不明瞭の設定にしてるのを除く
g_point_open<-ggplot() +
geom_sf(data=ishikawa) +
geom_sf(data=obs_shp %>% filter(taxon_geoprivacy != "obscured"))
g_point_open
こうやって見るとデータは加賀地区に偏ってるのかな~って感じがする
分類群によって色を変える
g_point_open2<-ggplot() +
geom_sf(data=ishikawa) +
geom_sf(data=obs_shp %>%
filter(taxon_geoprivacy != "obscured"),aes(colour = iconic_taxon_name))
g_point_open2
終わりに
今回、rinatパッケージでデータをダウンロードして遊んで見ましたが、dplyrで適当に整理して遊んで見るだけでも楽しいのでやってみてはいかがでしょうか?
あと、みんなiNaturalistやろうぜ!!!
参考: