見出し画像

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
iNaturalistにアップロードできる分類群とその観察回数

鳥、昆虫、植物に偏ってる.…


年ごとの観察数

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
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やろうぜ!!!

参考:

いいなと思ったら応援しよう!