海ごみパッケージの使い方のサンプルです
パッケージのインストールが完了していない場合は,次のコマンドを実行してください
#install.packages("devtools")
#海ごみパッケージのインストールに必要
#devtools::install_github("y-yasutomo/malia") #パッケージのインストール
#パッケージの呼び出し
library(malia)
#install.packages("dplyr")
library(dplyr) #データ整形に便利
データを読み込み,解析に使う形に整形します
目視観測データ
#データ(csvファイル)の名前を指定
Data.name<-"まとめ全データ"
#R内での名称(なんでもいい)
Rev.name<-"S19y1"
関数Sight.hand()
で目視観測データを整形
問題なく実行されると,作業ディレクトリにRev.name.debris
という名称のcsvファイルが作成されます
Sight.hand(Data.name,Rev.name)
努力量データ
努力量データにはEffort.hand()
関数を使う こちらは,作業ディレクトリにRev.name.effort
という名称のcsvファイルが作成されます
Data.name<-"レグ番号順"
Effort.hand(Data.name,Rev.name)
航跡図
関数 survey.plot()
で航跡図を描くことができます.引数には努力量データを用います.
#Designate voyage name
Vname<-"S19y1"
survey.plot(read.csv(paste(Vname,".effort.csv",sep="")))
上で作成した2つのデータを読み込みます
Sight.Data<-read.csv(paste(Vname,".debris.csv",sep=""))
Effort.Data<-read.csv(paste(Vname,".effort.csv",sep=""))
観測データのデータ型を確認します Data.check()
関数の引数に観測データを与えます
この関数で,解析に用いる列のデータ型のチェックを行います. 問題がなければ何も返ってきません
Data.check(Sight.Data)
ライントランセクト法による密度推定を行います
推定にはMALIA()
関数が使えます
ここでは種類EPSについて,Harf-normal型の発見関数,最大目視距離200mで推定を行っています
tmp.Data<-Sight.Data %>%filter(type == "EPS")
res<-MALIA(tmp.Data,Effort.Data,key="hn",td=200)
Start from 744.599952424419
ite 1 value = 561.803421377293
ite 2 value = 561.803421377293
generated initial value!
initial value 561.803421
final value 557.070751
converged
調査レグごとの密度推定結果の図
leg.D.plot(res$leg.D.obs$leg.result,xl=c(120,160),yl=c(20,50),save=F,Type="EPS")
関数SDAM()
で全データの解析を行えます.
この関数では,すべてのごみの種類について,4種類の発見関数・共変量をそれぞれ用いた(計16種類)解析を行います.
計算には30程度の時間がかか ます.
計算が終了すると,航海名.result.obj
というファイルが作成されます. 以下は,既に作成された結果を用いて結果のハンドリングを行います.
#res<-SDAM(Voyage.name=Vname,Sight.Data=Sight.Data,Effort.Data=Effort.Data,COVARIATE = c("conv", "occo","weather", "size"), key.list = c("hn","hr", "hhn", "hhr"),td=200,cp=10)
#結果のオブジェクトの読み込み
res<-readRDS(paste(Vname,".result.obj",sep=""))
調査レグごとの密度推定値
以下は,発見関数hhr,共変量weather,種類EPSの結果
#種類'EPS'
leg.D.res<-res$hhr$weather$EPS$leg.D.obs$leg.result
leg.D.plot(leg.D.res,save=F,Type='EPS')
グリッドごとの密度推定結果
grid.D.res<-res$hhr$weather$EPS$grid.D.res
grid.D.plot(grid.D.res,save=F,Type='EPS')
それぞれのごみに対して,16種類の設定で発見関数の推定を行っているのでAICによるモデル選択を行うことができます
aic.mat<-aic.summary(res)
aic.mat$EPS
関数aic.summary()
の結果オブジェクトと航海の解析結果のオブジェクトを引数に与えることですべてのごみについてAICによって選択されたモデルを抽出しています
best.model<-model.extract(aic.mat,res)
best.model$best.mat
調査レグごとの密度推定結果
leg.table<-leg.D.table(best.model$best.list)
head(leg.table)
グリッドごとの密度推定結果
grid.table<-grid.D.table(best.model$best.list)
head(grid.table)
海区ごとの密度推定結果
area.table<-area.D.table(best.model$best.list)
head(area.table)
関数ls.()
で人工物・天然物への合算を行えます.
#人工物の指定
Ar<-c("FGN","FGF","FGO","EPS","PBA","PBO","FP","PC","G","M","W","UO")
#天然物の指定
Nt<-c("SW","DW","NO")
An.table<-ls.(leg.table,Ar,Nt)
head(An.table)
人工物の結果
Artificial.leg<-An.table %>% select(Leg.No.,Leg.Length,Lat.Start,Lon.Start,Lat.End,Lon.End,Artificial_Density) %>% rename(Density=Artificial_Density)
leg.D.plot(Artificial.leg,save=F)
Artificial.grid<-grid.D(Artificial.leg)
grid.D.plot(Artificial.grid,save = F)
天然物の結果
Natural.leg<-An.table %>% select(Leg.No.,Leg.Length,Lat.Start,Lon.Start,Lat.End,Lon.End,Natural_Density) %>% rename(Density=Natural_Density)
leg.D.plot(Natural.leg,save=F)
Natural.grid<-grid.D(Natural.leg)
grid.D.plot(Natural.grid,save = F)