日本野鳥の会愛媛活動報告ブログ

普段の探鳥会の様子は松田代表のFacebookにて公開しています。

タグ別に記事を表示:

城川で野鳥を見よう

四国西予ジオミュージアム主催(日本野鳥の会愛媛共催)の観察会「早春の城川で野鳥を見よう2025」が3月1日に開催されます。

当会の松田代表が講師として城川町の自然を散策し、野鳥や自然を観察します。申し込みのうえ、奮ってご参加ください。

申込先:四国西予ジオミュージアム(TEL: 0894-89-4028)
締切:2月27日(木)まで
日時:3月1日(土)13時~16時
対象:小学生以上(小学生以下の場合も保護者同伴なら可、定員20名)
参加費:無料
準備物:防寒具・筆記具

重信川の自然をはぐくむ会が主催する第25回重信川フォーラムの開催案内です(申込不要)。

====

「重信川の自然をはぐくむ会」では、重信川の自然を取り戻そうと、NPO などの活動団体や地域の大学、学生、住民、行政がひとつとなって、平成15年に設立いたしました。

「重信川の自然をはぐくむ会」の設立後、「松原泉の再生」や「広瀬霞の湿地再生」、「河口ヨシ原再生」、近年では、「開発霞の整備」の自然再生を行いました。これらの自然再生の効果は確実に現れており、現在は、小・中・高・大学生などの環境教育の場としても活用していただいています。

本フォーラムは、重信川流域の環境、防災等について調査・研究・保全活動を行っている方から、活動内容等を報告していただいており、重信川の防災、河川環境、地域連携などを考える良い機会になると考えています。

この会に引き続き、「第26回重信川の自然をはぐくむ会総会」を開催いたしますので、多数のご参加をよろしくお願い申し上げます。

【 日 時 】 令和7年1月27日(月)14:30-16:30
【 場 所 】 Great Sign 坊ちゃん劇場
【 住 所 】 東温市見奈良1125番地

主催:重信川の自然をはぐくむ会
共催:国土交通省 四国地方整備局 松山河川国道事務所

※発表時間 10~15分程度(質疑応答含む)
定員 350名
発表内容(案)
(1) 重信川を対象とした環境・防災教育の取組状況について
松山市立椿中学校1年生
(2) まるごと防災たんけん隊(仮)
松山市ジュニア防災リーダークラブ
(3) 重信川における活動紹介(仮)
愛媛県立伊予農業高等学校【伊予農希少植物群保全プロジェクトチーム】
(4) 重信川河口の調査結果(仮)
愛媛県 中予地方局農業振興課地域農業育成グループ
(5) 東温市民ミュージカル「人と川と祈りと ~重信川伝説」につい
東温市地域活力創出課・坊ちゃん劇場(仮)
(6) 重信川に育まれた東温市の名勝
愛媛大学 名誉教授 高橋治郎
※発表者及び発表内容は変更になる場合があります。

木原涼帆(調査研究担当)

私は日本鳥学会2024年度大会で「愛媛県今治市におけるコガモのため池の選択」というタイトルで発表し、高校生・小中学生ポスター賞で、最優秀賞を受賞しました。今回、私は秋にコガモが一つのため池に集中していた理由について調べました。

調査について

調査風景

調査の様子

今回の研究では、以前の観察から疑問に思っていた、コガモがある池にだけ偏っている気がするけどなぜだろう?ということを調べました。本当にコガモが一つの池に偏っているのか、いつ頃にコガモが多いのか等を調べるために、9月~5月に週2回のカウント調査を7か所のため池で行いました。そこで一番大変だったのは日没との戦いです。放課後にカウントに行っていたのですが、17時にはカモの種類なんて分からなくなります。学校から家に帰り、7か所の池をカウントするまでを約1時間半で行うのは、想像以上に大変でした。

一方、調査をして得られた物もとても多かったです。例えば、「秋にヒドリガモが増えてる気がする…」「あの池は潜水ガモが多い気がする…」などなど、ぼんやりとしていた感覚をはっきりとグラフで可視化することができました。そこから面白い結果が見えてきて、調査した甲斐があったなと感じました。あと、普段はこの地域に少ない種も見つけられました。

コガモ

ウキクサを食べるコガモ。このウキクサの有無が、コガモのため池の選択に関係しているかもしれないことが分かった。

学会について

ポスター会場の様子

まず鳥学会の前に都会の洗礼を受けました。迷宮のように入り組んだ地下鉄に惑わされ、初めてのスマホ決済にどきどきしながら改札を通り、東大に到着しました。受付後、初日の自由集会を傍聴しました。渡りというテーマでしたが、研究の結果だけでなく人とのつながりという点からも、渡り鳥について論じられていたのが印象的でした。

その後、ポスターを貼りに行きました。高校生以下は3日目の発表までにポスター掲示を済ませておければよいのですが、その時点で既にポスターを貼っている高校生がいたので、発表練習を聞かせてもらいました。「…レベル高すぎっ」と心の中でつぶやきました。内容も喋り方も、少しのミスをも修正しようとする向上心も凄かったです。かなり焦らされました。

2日目3日目には口頭発表とポスター発表を聞きました。研究の内容自体も面白い知見や考察だらけで、非常に楽しかったのですが、聴者が理解しやすくするポイントを発見できたことが一番の収穫でした。例えば、情報の区切りで一呼吸を置く、スライドは図が多めで文字情報は口頭で補う、研究の目的を序盤にハッキリ述べるなどです。

3日目、ついに自分がポスター発表をする時間が来ました。暑さ+緊張で汗だくになりました。正直、発表中は必死だったのであまり記憶に残っていないですが、たくさんの方に発表を聞いてもらい、多くの感想やアドバイスを頂けたことはすごく印象に残っています。また、自分が発表をする上での改善点も見つけられました。

ちなみに、鳥学会ではたくさんの鳥グッズを入手しました。「めったにない機会だし…」と思って散財しました。購入予定だった日本鳥類目録改訂第8版は参加賞でもらえました。また、勇気を出してあこがれの先生に話しかけることもできました。

結論、めっちゃ楽しかったです。

下記の日程で「第2回鳥の研究発表会」を開催いたします。参加ご希望の方は、当会事務局までご連絡ください。

主催:日本野鳥の会愛媛
日時:2024年11月23日(土・祝) 13:00~17:00(開場12:30)
会場:愛媛県農林水産研究所 農業研究部 花き研究指導室 2F 研修室

申込:氏名とともに「第2回鳥の研究発表会」参加希望とご連絡ください。本会会員以外の方の参加も歓迎いたします。申込時に「会員」、「非会員」の別をお知らせください。参加無料です。
申込締切:2024年11月20日(水)

発表タイトルと発表者:
1)Pythonを活用した東予地区翠波峰におけるタカの渡りデータの解析
秋山雄大(東予野鳥の会)
2)佐田岬半島権現山-春のハチクマの渡り-
岩本忠義・亀田佳典
3)県内におけるウチヤマセンニュウの生息状況
小川次郎
4)ヤイロチョウの渡りとシマクイナの越冬
平田智法

ハチクマ (幼鳥) 2017.9.23 伊方町権現山 撮影:松廣浩二

当会ではこれまでにもピンバッジやシールなどのオリジナルグッズを販売したことがありますが、当会50周年記念として祝賀会や記念誌のほか、何か記念品を作ってはどうかと役員の小川さんからアイデアが出たのが昨年末頃。Tシャツや帽子といった案もありましたが、役員内で話し合い、エコバッグに決まりました。

そして自称エコバッグマニアの松田代表の意見を取り入れ、しっかりとした厚手のキャンバス生地をメインとし、柔らかなコットン生地でも別デザインを作りました。各デザイン100枚ずつ、計300枚(当会の会員数とほぼ同じ数)作製しています。基本的に発送はせず、探鳥会等での対面販売のみとなります。収益は調査活動等に充てられますので、ご支援の気持ちとともに、是非ご購入をよろしくお願い致します。プレゼントにもいかがでしょうか。

キャンバス生地(裏表両面印刷)のデザインは会報『コマドリ』の表紙画を担当されている安藤康子さん。森を背景にしたおすましコマドリと、爽やかなライトブルーを背景に夏みかんにとまってさえずるコマドリが描かれています。コットン生地(片面のみ印刷)のデザインは封筒のイラストを担当した役員の上沖さんによるものです。

創立50周年記念エコバッグ

キャンバス生地ナチュラルカラー(左)  & キャンバス生地ライトブルー(中央)
寸法:横36x 縦37x マチ11cm 販売価格:1,500 円
コットン生地ナチュラル(右
寸法:30x35cm マチ無し 販売価格:1,000 円

安藤康子さんからひと言

かわいいでしょう?
役員の皆さんと一緒にアイデアを出し合って素敵なエコバッグに仕上がりました。毎日のお買い物が楽しいものになりますように。

上沖正欣さんからひと言

会報『コマドリ』の発送用封筒のデザイン。
封筒は開封したら捨てられてしまうので(リサイクルしている方もいると思いますが)、ずっと使えるエコバッグに。折りたためばポケットに入ります。

小学校で講演する松田代表河川で生き物の解説をする松田代表
(写真:地元の子供たちに身近な生き物の大切さを教える松田代表)

「まつやまコアジサシ子育て応援プロジェクト」やツル・コウノトリの誘致など幅広く精力的に保全活動をおこなっている当会代表松田久司氏が「みどりの日」自然環境功労者環境大臣表彰を受賞しました(推薦元:中国四国地方環境事務所)。この賞は自然環境の保全に関する顕著な功績があった全国の個人・団体を表彰するもので、今年度は31件が選ばれました。

松田代表も主体となって活動されている「かわうそ復活プロジェクト」(推薦元:愛媛県)も同時に受賞されています。また、令和2年度には前代表(現・調査研究担当幹事)山本貴仁氏が理事長を務める「NPO法人西条自然学校」が受賞されています。

この度の受賞、誠におめでとうございます。今後のより一層のご活躍をお祈り申し上げます。かわうそ復活プロジェクトの活動については、こちらのホームページをご覧ください。

松田代表からのコメント:

令和6年度 「みどりの日」自然環境功労者環境大臣表彰されました。自然ふれあい部門です。わたしの活動の主体としては、

  1. 日本野鳥の会愛媛
  2. かわうそ復活プロジェクト
  3. 環境カウンセラーおよび愛媛県環境マイスター

の3つになろうかと思います。それぞれにかかわっていただいた方々のおかげです。ありがとうございました。この3つにはそれぞれテーマがあります。

  1. 愛媛県下で鳥を対象
  2. 南予北部で身近な生きものを対象
  3. 南予北部の学校や自治センターなどの地域の活動支援

です。

話は少しさかのぼりますが・・・。愛媛にUターン前は、横浜自然観察の森で「友の会」というボランチアグループで活動していました。そこには(公財)日本野鳥の会の職員が常駐していて、彼らに「観察させてもらっている生きものに恩返しすることを意識しておくように」とよく言われていました。生きものを観察したら、記録を残して、共有するのが第一歩です。共有は、インターネットが発達しているご時世ですから、国内にかかわらず海外のサイトにも提供できます。個別の記録や調査したことをまとめて報告したり、それを地域の生きものを対象にした保全の取り組みに生かしたりもできます。これらレベルはさまざまですが、できることをコツコツと続けたいと思っております。これからもよろしくお願いします。

重信川の自然をはぐくむ会が主催の重信川クリーン大作戦が7月6日(土)におこなわれます。

会員の方で参加を希望される場合、日本野鳥の会愛媛で取りまとめて申し込みますので、下記連絡先までお知らせください。

申込閉切:
6月27日(木)
連絡先:
Tel/Fax 089-923-3081
E-mail mail@ehime-wbsj.com

 

愛媛県の地域メッシュを使った鳥類の分布図

第1回目で基本地図(緯度経度・市町村別コロプレスマップ)、第2回目で地域メッシュ地図の描画方法を紹介しました。最後は地図を複数ページに分割もしくは一括出力する方法です。

野鳥情報など観察記録を扱っていると数百種類の地図を複数ページに分けてPDFなどに自動出力したい場合があると思います。数が多くなければRStudioで出力された地図を手動保存してもよいのですが、一枚一枚手動でぽちぽち保存するのは大変です。そんな面倒な処理こそ、人間ではなくパソコンに任せてしまいましょう。

ggforceパッケージを使えば、これまで紹介したコードに数行追加するだけで、ページの一括保存が簡単に実現できます。まず、複数ページに分けて地図を出力する方法です。ggforceパッケージをインストールして読み込みます。

install.packages("ggforce")
library(ggforce)

そうしたら、1回目と2回目のコードで facet_wrap としていた箇所を facet_wrap_paginate に変更します。これで複数ページに分けてpage = 1 とか page = 4 などとページ数を指定して、地図を表示できるようになります。

例えば、第2回目の各種年別の分布図は、下記のコードで39地図が1ページに表示されていてちょっと窮屈でした。

facet_wrap(種名 ~ 年)

これを、2行4列(1ページに8地図)で5ページに分けて、出力する図を3ページ目にしたい場合、以下のように書き換えます。

facet_wrap_paginate(種名~年, nrow = 2, ncol = 4, page = 3)

全体のコードはこうなります。

kansatsu_mesh %>%
   group_by(種名, メッシュ, 年) %>%
   mutate(メッシュ数 = n()) %>%
   ggplot() +
   geom_sf(data = mapdayo, fill = "white") +
   geom_sf(data = mesh10map, alpha = 0, color = "grey") +
   geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
   scale_fill_continuous(low = "yellow", high = "#009933") +
   facet_wrap_paginate(種名~年, nrow = 2, ncol = 4, page = 3) +
   theme_void()

RStudioの図が表示されている所の Export をクリックすれば、この図を画像やPDFとして保存できます。数ページ程度なら page の数を変えながら手動で1枚ずつ保存していってもいいのですが、一つのPDFにまとめて一括保存できれば便利ですよね。

その場合は、グラフを描画するコードの前後にこのコードを追加します。

pdf("map_zenbu.pdf", family="Japan1GothicBBB")
for (i in 1:5) {print(

#グラフを描くコード

)}
dev.off()

最初の pdf( の部分では、空のPDFファイルを作成しています(map_zenbuでなく好きなファイル名でOK)。フォントも指定します。日本語環境のRなら問題ないのですが、英語のRだとフォントを指定しないと地図は出力されますが、文字化けします。

そしてその空のPDFに、次の行のfor文で、地図を1ページ目から順にプリントする処理を自動で繰り返して、という命令をしています。39地図なら1ページ8つで5ページに収まるので、1:5(1から5ページ目)としています。でも、いちいちページ数を数えるのは面倒ですよね。

ggforceでは、分割したページの合計数を数える n_pages という関数が使えます。試しに先ほどのグラフを描くコードを nanmai というデータに代入してページ数を数えてみます。

グラフを描くコードは 冒頭にnanmai <- というのを足した以外は、先ほどのものと全く同じです。

nanmai <- kansatsu_mesh %>%
   group_by(種名, メッシュ, 年) %>%
   mutate(メッシュ数 = n()) %>%
   ggplot() +
   geom_sf(data = mapdayo, fill = "white") +
   geom_sf(data = mesh10map, alpha = 0, color = "grey") +
   geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
   scale_fill_continuous(low = "yellow", high = "#009933") +
   facet_wrap_paginate(種名~年, nrow = 2, ncol = 4, page = 3) +
   theme_void()

n_pages(nanmai)

このコードを実行すると、グラフは描画されず、コンソールに以下のように出力され、全部で5ページになることが分かります。

> n_pages(nanmai)
[1] 5

この n_pages(nanmai) を使って、先ほどの1:5と同じ意味になるように、for文をこのように書き換えます。

for (i in seq_len(n_pages(nanmai))) {print(

では、全部のコードを合わせてみます。facet_wrap_paginate の page = のところには for (i に合わせて、ページの数ではなくアルファベットの i を入れていることに注意してください(a でも c でも何でも動きますが慣習的に index の i が使われます)。

# ↑ 必要な前半のコードは、1回目と2回目の記事を参照してください。このコードは途中からです。

install.packages("ggforce")
library(ggforce)

nanmai <- kansatsu_mesh %>%
   group_by(種名,市町,年,日) %>%
   mutate(メッシュ数 = n()) %>%
   ggplot() +
   geom_sf(data = mapdayo, fill = "white") +
   geom_sf(data = mesh10map, alpha = 0, color = "grey") +
   geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
   scale_fill_continuous(low = "yellow", high = "#009933") +
   facet_wrap_paginate(種名 ~ 年, nrow = 2, ncol = 4, page = 3) +
   theme_void()

#地図を表示して出力結果を確認(3ページ目)
nanmai
#全体のページ数を確認
n_pages(nanmai)

#まずは空のPDFを作成
pdf("map_zenbudayo.pdf", family="Japan1GothicBBB")
  #そのPDFに n_pages(nanmai) のページ数分プリントする
  for (i in seq_len(n_pages(nanmai))) {print(

    kansatsu_mesh %>%
      group_by(種名, メッシュ, 年) %>%
     mutate(メッシュ数 = n()) %>%
     ggplot() +
     geom_sf(data = mapdayo, fill = "white") +
     geom_sf(data = mesh10map, alpha = 0, color = "grey") +
     geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
     scale_fill_continuous(low = "yellow", high = "#009933") +
     # page = のところは数字ではなく i とする。
     facet_wrap_paginate(種名~年, nrow = 2, ncol = 4, page = i) +
     theme_void()

  )}
dev.off()

必ず最後の dev.off() も実行するようにしてください。そうしないと、PDFのプリントが終わらず、ファイルは作成されてもエラーになってしまいます。

うまくいけば、このようにCドライブ直下に作成したRdataというフォルダにmap_zenbudayo.pdfというファイルが作成されていて、全ての分布図が指定した行列数(今回は2行4列)で、複数ページに分かれてこんな感じで描画されているはずです。

後は応用で、見た目や地図のカスタマイズはご自身の好みで細かく調節できますし、PDFではなく種ごとに1枚ずつ個別画像ファイルとして保存することも可能です。

Rを使ってコピペで簡単に(?)鳥類などの分布図を作成するシリーズは今回で終了です。もし蓄積はされているだけで活用されていない野鳥情報(や類似の市町村や地域メッシュ情報が含まれる生物分布情報)をお持ちでしたら、Rで可視化して、文字列だけでは見えてこなかった分布の偏りや傾向を発見してみてください。

まとめスクリプト

これまでの全てのまとめRスクリプトはGitHubに公開しています。
demo.R

おまけ:データを任意の順に並べ替える

アオアシシギ

これまでのコードで出力された図は、種名のアイウエオ順になっています。野鳥情報ならアイスランドカモメかアオアシシギが先頭に来ます。でも、分類順や記録の多い順など、任意の順番に表示したい場合があるかと思います。データに分類番号を付加してソートしたり、行番号を取得してみたり色々試したものの、なぜか数値化しても1,10,11,12…2,20,21…などと意図しない並び順になってしまい、どうすれば・・・と色々調べていたら、テキサス大のClaus O. Wilke教授の解説スライドに辿り着きました。

Getting things into the right order (最初のスライドから見る)
https://wilkelab.org/SDS375/slides/getting-things-in-order.html#62 (まとめスライド)

fct_reorder を使えばグラフの並べ替えができるようです。サンプルデータを使った場合、合計個体数が多い順(コダマ>テング>カッパ)に種名を並べる場合はこのように書きます。

kansatsu_mesh %>%
    #種名だけでグループ化
    group_by(種名) %>%
    #種ごとに個体数の列を合計し、新たに「合計個体数」の列を作成
    mutate(合計個体数 = sum(個体数)) %>%
    #グループ化を一旦解除(しないと並べ替えできないです)
    ungroup() %>%
    #少ない順なら mutate(種名 = fct_reorder(種名, 合計個体数)) とする
    mutate(種名 = fct_rev(fct_reorder(種名, 合計個体数))) %>%
    ggplot() + ... 以下コード続く

元データにすでに「分類番号」という列があったとして、出力される地図をその番号順に並べたい場合は以下のようになります。

motodata %>%
    mutate(種名 = fct_reorder(種名, 分類番号順)) %>%
    ggplot() + ... 以下コード続く

これで出力する地図の順番を自由に制御できるようになります。めでたし。

前回「Rを使って鳥類などの分布図を作成する(その1:緯度経度と市町村別マップ)」としてコードをコピペするだけで地図を描画できる方法を紹介しました。今回はその続きでRを使った地域メッシュと年別の地図描画を紹介します。

Rで描画した緯度経度・市町村・地域メッシュの地図

左の緯度経度を示した地図は点データなので高解像度ですが、どのくらいの数が集まっているのか分かりにくく、また緯度経度の数値は少しでも場所がズレると変わるため、データ集計が煩雑になってしまいます。

真ん中の市町村別の地図では、面積がバラバラになるので、単純なデータ比較ができません。また生物は行政区域を基準に分布しているわけではないので、どんな環境にいるのかが分かりにくくなります。

しかし、右の地域メッシュ地図(英語ではmeshではなくgrid mapなどと言う)は決められた範囲の面データであるため(図は10km四方の2次メッシュ。3次メッシュなら1km四方)、一定範囲内の集計をしたい場合や、異なる場所間の比較が容易になります。

以下ではそんな便利な地域メッシュを地図に描画する方法を紹介します。RとRStudioはインストール済み、また前回の愛媛県の(もしくはご自身の地域の)サンプルデータを使った妖怪3種の緯度経度と地域別の分布図は既に描画できているものとします。データは前回と同様のサンプルデータを使います。

メッシュを描画する記述を追記する

前回の「3. 地図を描くためのコードをコピペして実行」の地図を表示するコードまでは一緒です。

library(openxlsx)
library(sf)
library(rmapshaper)
library(dplyr)
library(ggplot2)

setwd("C:/Rdata")

kansatsu <- read.xlsx("data.xlsx")

map_shape <- read_sf("愛媛", options = "ENCODING=SHIFT-JIS") %>%
      rename(city = N03_004)

mapdayo <- aggregate(map_shape, list(map_shape$city), unique) %>%
      select(city, geometry) %>%
      ms_simplify(keep = 0.005)


plot(mapdayo)

この後に、新たに以下のコードをコピペして全て実行してください。前回と異なる部分にだけコメントを付けています。

#jpgridパッケージの方が高速で海上のメッシュも描画できますが、今回はこちらを使います。
#前回同様install.packagesの行は初回実行時のみでOKです。 
install.packages("jpmesh") 
library(jpmesh) 

#2次メッシュ(10km四方)のデータを作成します。codeの数字は都道府県コードです。 
#愛媛にしたいので38、メッシュサイズ(km)は10を指定します。 
mesh10map <- administration_mesh(code = 38, to_mesh_size = 10) 

#サンプルデータのメッシュは数値、mesh10mapのメッシュは文字列なので結合できるよう変換します。
kansatsu$メッシュ <- as.character(kansatsu$メッシュ)

#mesh10mapとkansatsuデータを、メッシュ番号を基準に結合してkansatsu_meshを作ります。
kansatsu_mesh <- left_join(kansatsu,mesh10map, by = c("メッシュ" = "meshcode"))

#kansatsu_meshから地図を描画します。
kansatsu_mesh %>%
#種名とメッシュの列でグループ化(これは元データの列名。適宜変更してください)
   group_by(種名,メッシュ)%>%
#種ごとに、各メッシュの記録が何回あるかRでカウントし、新たなデータ列(メッシュ数)を追加します。
   mutate(メッシュ数 = n()) %>%
   ggplot() +
   geom_sf(data = mapdayo, fill = "white") +
#mesh10mapのメッシュを描画します。alpha=0で透過させ、線はグレーにします。
   geom_sf(data = mesh10map, alpha = 0, color = "grey") +
#先ほど追加したメッシュ数の列のデータを基に色付け(fill)をします。
   geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
   scale_fill_continuous(low = "yellow", high = "#009933") +
#種名ごとに地図を分け、1列で表示します
   facet_wrap(~ 種名, nrow = 1) +
   theme_void()

都道府県コードは国土交通省のページを参照してください。

どうでしょう。前回のコードを少し変えるだけで、地域メッシュを使った分布図がコピペで簡単に描画できたと思います。緯度経度や市町村別のコロプレスマップよりも、どの場所に多いかが分かりやすいですね。カッパ・コダマ・テングの地域メッシュによる分布図

サンプルデータは2次メッシュ(数字6桁)ですが、もちろん3次メッシュ(8桁)でもできます(3次メッシュの場合は数が多いので描画にちょっと時間がかかります)。

地図を種別かつ年別に表示する

分布が年々拡大しているor縮小している種の場合、分布変化を年毎に見たい場合があると思います。その場合は、先ほどのコードの19行目のgroup_byと30行目のfacet_wrapの記述に年(元データの年情報が入っている列名)を以下のように追加すればよいだけです。

kansatsu_mesh %>%
   #種名+メッシュ+年でグループ化してカウント
   group_by(種名, メッシュ, 年) %>%
   mutate(メッシュ数 = n()) %>%
   ggplot() +
   geom_sf(data = mapdayo, fill = "white") +
   geom_sf(data = mesh10map, alpha = 0, color = "grey") +
   geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
   scale_fill_continuous(low = "yellow", high = "#009933") +
   #facet_wrap(年 ~ 種名)でもOK。グラフのタイトル順(優先カテゴリ)が変わります。
   #group_byで細かく年+月別にカウントした場合は 種名~年+月 などと + を付けて条件を増やせます。
   facet_wrap(種名 ~ 年) +
   theme_void()

ggplotで出力したカッパ・コダマ・テングの年別の分布図

ただこれだけだと全ての種で年毎の地図が表示されて多くなるので、種名を特定の種のみにフィルターするコードをkansatu_mesh %>% の後に追加して、行数も調整してみます。

kansatsu_mesh %>%
   #kansatsu_meshのデータからカッパのみ抽出します。
   filter(grepl("カッパ",種名)) %>%
   group_by(種名,メッシュ,年) %>%
   mutate(メッシュ数 = n()) %>%
   ggplot() +
   geom_sf(data = mapdayo, fill = "white") +
   geom_sf(data = mesh10map, alpha = 0, color = "grey") +
   geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
   scale_fill_continuous(low = "yellow", high = "#009933") +
   #nrowを指定して2行表示にします。ncolを指定すると列数も指定できます。
   facet_wrap(種名 ~ 年, nrow = 2) +
   theme_void()

これで、カッパだけの年毎の分布図が作成できました。

ggplotで出力したカッパの年別の分布図

応用して、group_byとfacet_wrapの箇所を月や市町に変えれば、月ごと・市町村ごとの分布図も作成できます。記録されたメッシュの場所だけ表示し、県全体の灰色の空白枠を非表示にしたい場合は geom_sf(data = mesh10map, alpha = 0, color = “grey”) + の行をコメントアウトします。

ここでは種類をフィルターしましたが、数百種類の結果を一気に出力したい場合もあると思います。次回は、ggforceパッケージを利用した複数ページの一括出力を紹介しようと思います。

地域メッシュと年別マップを表示するRスクリプトまとめ

library(openxlsx)
library(sf)
library(rmapshaper)
library(dplyr)
library(ggplot2)

setwd("C:/Rdata")

kansatsu <- read.xlsx("data.xlsx")

map_shape <- read_sf("愛媛", options = "ENCODING=SHIFT-JIS") %>%
        rename(city = N03_004)

mapdayo <- aggregate(map_shape, list(map_shape$city), unique) %>%
        select(city, geometry) %>%
        ms_simplify(keep = 0.005)

plot(mapdayo)
#ここまで前回のコードと同じ。地図が表示されればOK

#jpmeshパッケージをインストール。初回実行時のみでOK
install.packages("jpmesh") library(jpmesh)
#パッケージを読み込み
library(jpmesh)

#愛媛県の2次メッシュ(10km四方)のデータを作成
mesh10map <- administration_mesh(code = 38, to_mesh_size = 10)

#データ型を変換して結合しkansatsu_meshというデータを作成
kansatsu$メッシュ <- as.character(kansatsu$メッシュ)
kansatsu_mesh <- left_join(kansatsu,mesh10map, by=c("メッシュ"="meshcode"))

#種別のメッシュ地図を描画する場合はここから48行目までを実行
kansatsu_mesh %>%
    #種名とメッシュの列でグループ化
    group_by(種名,メッシュ)%>%
    #種ごとに、各メッシュの記録が何回あるかRでカウントし、新たなデータ列(メッシュ数)を追加します。
    mutate(メッシュ数 = n()) %>%
    ggplot() +
    geom_sf(data = mapdayo, fill = "white") +
    #mesh10mapのメッシュを描画します。alpha=0で透過させ、線はグレーにします。
    geom_sf(data=mesh10map,alpha=0,color="grey")+
    #先ほど追加したメッシュ数の列のデータを基に色付け(fill)をします。
    geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
    scale_fill_continuous(low = "yellow", high = "#009933") +
    #種名ごとに地図を分け、1列で表示します
    facet_wrap(~種名, nrow = 1) +
    theme_void()

#カッパのみ、年別のメッシュ地図を描画する場合は、31行目の後に以下を実行。
kansatsu_mesh %>%
    filter(grepl("カッパ", 種名)) %>%
    group_by(種名, メッシュ, 年) %>%
    mutate(メッシュ数 = n()) %>%
    ggplot() +
    geom_sf(data = mapdayo, fill = "white") +
    geom_sf(data = mesh10map, alpha = 0, color = "grey") +
    geom_sf(aes(fill = メッシュ数, geometry = geometry)) +
    scale_fill_continuous(low = "yellow", high = "#009933") +
    facet_wrap(種名 ~ 年, nrow = 2) +
    theme_void()

この投稿は古い情報です。2024年12月31日に370種を掲載した愛媛県鳥類目録を発行しました。

現在「愛媛県鳥類目録」を鋭意作成中で、今年中の出版を予定しています。前回の暫定版リストからさらに記録が増え、現在358種となっています。

暫定版リスト(2024年2月1日現在、xlsx形式のエクセルファイル)

このリストは編集中の非公式なものです。無断引用・転載はご遠慮ください。

会員・非会員は問いません。もし、このリストにない種の記録や、前回の暫定版リストを見て記録の少ない種、記録のない月・市町での観察記録をお持ちの方がいましたら「記録を送る」から是非とも情報を送って下さい。

ご協力よろしくお願いいたします。

最終更新日: 2025年02月12日