2024年9月30日月曜日

徒労

午前
・データ整理

午後
・データ整理

修論論文化。佳境に入りつつあるが、散見するデータセットの重なるチェック、、、徒労に終わった1日。

2024年9月25日水曜日

最多記録

午前
・ハンミョウ調査
・ネズミ調査

午後
・データ整理
・資料作成

3ヶ月間続いたハンミョウ調査がとうとう終了。

10年目という節目の年だったけど、捕獲数は最多記録を更新した。

2024年9月24日火曜日

NMDSに環境データをバイプロット

午前
・卒論手伝い(野外調査)
・データ解析

午後
・データ解析
・論文書き

NMDSに環境データをバイプロットする際にハマったのでメモ。

metaMDS( )でNMDSを実施し、envfit( )で関連のある環境データを抽出し、その座標データを「vector$arrows」で抽出してggpolt( )で作図すると、ordiplot( )とplot( )で作図した場合と環境データの表示が異なることが分かった。

下図は、Rによる群集組成の解析のデータを使わせて頂き、ordiplot( )とplot( )で作成した図。
環境データのベクトルよりも上部に点がある。そして、「vector$arrows」で抽出した座標データを用いてggplot( )で作成したのが下図。
環境データのベクトルが点よりも上部まで伸びている。多分、長さは全て同じなのだろう。

朧げな理解しかできていないが、「vector$arrows」は関係性の(座標上での)方向性のみの情報を有しており、関係性の強さが考慮されてないみたい。下記サイトによると、この座標データは「direction cosines」と記されている。

関係性の強さを加えて補正するには、r2のルートを書ければ良いそうだ。

もしくは、scores( )を使って座標を抽出すれば良い。下図はscores( )で抽出したデータを用いて作成した図。ordiplot( )とplot( )と同じ図になった!
参考にしたサイト
Plotting envfit vectors (vegan package) in ggplot2
Rによる群集組成の解析

2024年9月20日金曜日

文献の勉強

午前
・卒論手伝い(野外調査)×2
・論文書き

午後
・会議
・論文書き

群集論文を進めるが、海岸生態系の知識があまりにも乏しくて細かな議論が全くできない。

一旦、文章を書くのを止めて関連文献の勉強を読み込む。

色々と研究されているな、、、と焦る

2024年9月19日木曜日

四分位数

午前
・ハンミョウ調査

午後
・資料作成
・論文書き

論文用に箱ヒゲ図をチェックしている最中にビックリしたこと。

例えば、「4,5,11,23,27,44,75,87,90,100」で箱ヒゲ図を描き、プロットを載せると下記のような図になる。
ちなみにコマンドは以下の通り。
a <- c(4,5,11,23,27,44,75,87,90,100)
b <- rep("B", 10)
ab <- data.frame(a,b)

ggplot(data=ab, aes(x=b, y=a)) +
  geom_boxplot() +
  geom_point(size=5, col="red")
データ数が10個なので、中央値は下(or上)から5番目と6番目の値の平均値となる。

上記のデータでは「27, 44」の平均値で「35.5」となる。図から正確な数値は読み取れないが、中央値の線が点と点の真ん中にあることから、この考えが正しいことは分かる。

で、問題は第1四分位数と第3四分位数である。第1四分位数は下から数えて25%、第3四分位数は75%となるデータである。

データが偶数の場合は、半分に分けて、それぞれの真ん中の値が、それらに当たる。
この考えに基づくと、データが偶数で「箱ヒゲ図+プロット」を描くと、箱の下線と上線にプロットが重なるはずである、、、が重なっていない。

昨夜、投稿用の図を眺めていて、このことに気づいてヒヤっとした。何かミスがある〜、と。

ただ、summary()で四分位数を算出すると、図の値と一致している感じ。私の認識が間違っているのか?
> summary(ab)
       a              b            
 Min.   :  4.0   Length:10         
 1st Qu.: 14.0   Class :character  
 Median : 35.5   Mode  :character  
 Mean   : 46.6                     
 3rd Qu.: 84.0                     
 Max.   :100.0    
答えを教えてくれるサイトがありました。「四分位数の違いについて~みんなちがってみんないい~」さん、ありがとうございます。

四分位数には、複数の考え方があるそうです。

私の認識は「文部科学省推奨の定義」だった。文部科学省の指導要領の下で勉強してきた成果か。

で、サイトに「ExcelやRで使われる、“計算機タイプの四分位数”」と書かれていました。

概念は分かりにくいのだが、大量のデータに対して効率よく計算できる仕組みだそうです。計算方法は下記サイトに書かれています。計算方法自体は簡単です。

参考にしたサイト
四分位数の違いについて~みんなちがってみんないい~

2024年9月18日水曜日

楽しみ

午前
・卒論手伝い(野外調査)
・データ解析
・会議

午後
・卒論手伝い(野外調査)
・資料作成

ゼミの資料作成。
11月にブラタモリが放送されるそうで。内村プロデュースに続いて楽しみが増えた。

2024年9月13日金曜日

動画作成

午前
・卒論手伝い(野外調査)

午後
・卒論手伝い(データ解析)
・書類作成

学生向けにGIMPやImageJの使い方の動画を作成した。
「動画を作ってしまった方が後々、楽かな」と気軽に考えるられるようになったのはコロナ生活で得た良い経験。

ストレスの大きい書類作成に時間が取られ、論文書きは復活ならず。

2024年9月12日木曜日

センチコガネを襲うスズメバチ

午前
・卒論手伝い(野外調査)

午後
・データ整理

センチコガネを襲うスズメバチ。

スズメバチが動きを遅めて飛んでいたので巣があるのかなと見に行ったら、地面でウロウロしていたセンチコガネに攻撃を始めた。

センチコガネも頑張ってしばらくは取っ組み合いをしていたけど、最後はスズメバチに連れ去られていった。

2024年9月10日火曜日

止まった

午前
・卒論手伝い(野外調査)

午後
・データ整理

先週はなかなか良いペースで進んでいた論文書きがピタっと止まった。

2024年9月9日月曜日

Motion Detect Plus

午前
・卒論手伝い
・カメラ設定

午後
・カメラ設定

カメラの設定に半日をかけてしまった。

哺乳類の調査では自動撮影装置がしばしば用いられる。その多くは、赤外線センサーを発しておき、そこを熱源が通ると撮影する仕組みである

したがって、外気温と温度差が小さい変温動物には適用できない。

最近、大学院生がタイムラプス撮影を用いて訪花昆虫の撮影を試みている。

この方法だと、(撮影時間によるが)数千〜万枚の画像が撮影され、そのうち数〜数10枚に撮影されている昆虫を探すという作業が必要になる。

その労力を打開する方法として大きく2つがある。

一つは、人間が探すのではなくAIに探してもらう方法。多分、こちらが今どきだと思う。

もう一つは、昆虫が訪花したときだけ撮影する方法である。しかし、上記の通り、赤外線センサーを使った方法が使えない。

そこで、期待されるのがmotion detection(モーション検知機能)、つまり、画角に変化が生じた場合にシャッターを切るという方法である。

少し話は変わり、 Canon Hack Development Kit(CHDK)という仕組みを用いると、一時的にCanonのデジカメを改造することができる。

また、CHDKには、様々なスクリプトが公開されており、それらを実行することで機能を拡張させることができる。

そして、、、Motion Detect Plusという、motion detection(モーション検知機能)を実行するためのスクリプトが公開されている!

ということで、中古の格安PowerShot G9を購入し、本日、半日かかりで設置した。どうにか動くようにはなった。

緑グリットに変化が生じると撮影される。グリット数や位置へ設置できる。
昆虫に摸したペンが近づいてくる。この段階ではシャッターは切られない。
そして、もう少し右に進むと、パシャ、と!下記が自動で撮影された画像。
少しでも動くと撮影されてしまうので、野外で使えるかは不明。例えば、フラッシュ設定にしておくと、撮影前の調光?のシグナルに反応するのか、何も変化していないのに連続で撮影をしてしまう。

この辺りは設定でどうにかしないと、、、。

元ネタは、この論文。

Steen R. (2017)
Diel Activity, Frequency and Visit Duration of Pollinators in Focal Plants: In Situ Automatic Camera Monitoring and Data Processing.
Methods in Ecology and Evolution, 8: 203–13.

参考にしたサイト
IXY 920 IS へのCHDKの導入CHDK【カメラ】インターバル撮影改造

2024年9月6日金曜日

1個体だけ

午前
・PCR産物精製
・論文書き

午後
・会議
・シーケンス準備
・会議
・論文書き

群集論文の執筆を進める。

データを再確認していると、オオスナゴミムシダマシが1個体だけ採集されている。

採集されていても不思議でないが1個体だけなのが心配で見直したところ別種だった。

ということで、再び解析のやり直し

2024年9月5日木曜日

draw.shape()で海面の色を指定

午前
・シーケンス準備
・PCR実験

午後
・論文書き(修論論文化)

死蔵になりそうな修論の論文化を強引に進める。

作図は随分前に終わっていたのだが、気になっていた点があった。

日本地図に円グラフを描くために、
ggplot() +
  geom_sf(地図データ) +
  geom_scatterpie(円グラフデータ)
を使っていたのだが、円グラフがやや縦長になってしまう。

緯度経度を同じ数値として扱ってしまうのかな〜と考えているのだが、改善方法が思いつかない。
このままで良いか、いやダメだ、と自問自答を繰り返した結果、作り直すことにした。

改善方法が思いつかないので、私が使っているもう一つの円グラフの作図方法「mapplots::draw.pie()」で対応した。

「mapplots::draw.pie()」は独特なデータ形式が使われるが、「mapplots::make.xyz()」で簡単に作成できる。

地図は、shpファイルを「mapplots::draw.shape()」で描く必要がある?

ここまでは他の論文のコピペなのですぐに終わったが、海面の色指定に苦戦してしまったのでメモ。海面をwhitesmoke、陸地をblackにする場合は下記のようにする。
jpn <- read.shapefile(PATH) #shpファイルの読み込み
xlim <- c(122.5, 147.5) #X軸の指定
ylim <- c(22.5, 47.5) #Y軸の指定

#ベースの指定;bgで海面の色を指定!
basemap(xlim, ylim, axes=F, xlab="", ylab="", bg="whitesmoke")

#地図=陸地の指定;colで陸地の色を指定!
draw.shape(jpn, col="black")
綺麗な円になった。
ただ、円グラフの位置が微妙ずれてしまい、微調整に2〜3時間かかった。

2024年9月4日水曜日

やり直し

午前
・ハンミョウ調査

午後
・データ整理
・論文書き

群集の論文書きを進めていたら、ハマベツチカメムシの3サンプル分の目をコウチュウとしていた、、、ということで、解析を全てやり直し。

2024年9月2日月曜日

調査並みのエフォート

午前
・PCR産物精製
・論文書き

午後
・PCR実験
・会議
・書類作成

調査をするための申請書作成に調査並みのエフォートがかかる、、、。

それに追い討ちをかけるかのように、久しぶりのシーケンス結果がイマイチだった。