Memuat Paket

Memuat paket tambahan yang digunakan, yaitu "LBSPR".

library("LBSPR")

Membuat Obyek Baru

Membuat obyek baru untuk analisis spawning potential ratio (SPR).

# membuat obyek LB_pars baru
mypars <- new("LB_pars", verbose=FALSE)

# melihat elemen/slot yang ada pada obyek
slotNames(mypars)
##  [1] "Species"      "MK"           "M"            "Linf"         "L_units"     
##  [6] "CVLinf"       "L50"          "L95"          "Walpha"       "Walpha_units"
## [11] "Wbeta"        "FecB"         "Steepness"    "Mpow"         "R0"          
## [16] "SL50"         "SL95"         "MLL"          "sdLegal"      "fDisc"       
## [21] "FM"           "SPR"          "BinMin"       "BinMax"       "BinWidth"

Obyek LB_pars memiliki 25 slot. Namun, tidak semua parameter perlu ditetapkan untuk model simulasi. Parameter minimum yang diperlukan untuk model simulasi adalah: 1). Panjang asimptotik von Bertalanffy (Linf), 2). Rasio M/K, 3). Panjang pada kematangan 50% (L50/Lm), 4). Panjang pada kematangan 95% (L95), 5). Panjang pada selektivitas 50% (SL50), 6). Panjang pada selektivitas 95% (SL95), 7). Rasio F/M (FM) atau SPR (SPR). Jika Anda menentukan keduanya, nilai F/M akan diabaikan, dan 8). Lebar kelas (BinWidth)

Memasukan nilai pada objek parameter

Cara menghitung nilai parameter dapat dilihat di sini, perhitungan juga dapat dilakukan dengan aplikasi lain.

mypars@Species <- "Scarus fasciatus"
mypars@Linf <- 31.33 #panjang asimptotik von Bertalanffy (Linf)
mypars@L50 <- 13.38 #panjang pada kematangan 50% (L50/Lm)
mypars@L95 <- 15.63 #panjang pada kematangan 95% (L95)
mypars@MK <- 0.51500000/0.39000000 #rasio M/K
mypars@FM <- 0.67 #rasio F/M
mypars@BinWidth <- 1.5 #lebar kelas (BinWidth)

Membuat Model

Setelah parameter minimum yang dibutuhkan sudah dimasukan, langkah selanjutnya adalah membuat model dengan nilai yang ada.

# memuat data untuk model
lengths <- new("LB_lengths", "S. fasciatus_LBSPR.csv", LB_pars=mypars, dataType="raw",
               header = TRUE, verbose = FALSE)

# model
yr <- 1 #data tahun pertama
model <- LBSPRfit(mypars, lengths, verbose = FALSE)

# plot
plotSize(model)

model@Ests
plotMat(model)

plotSPRCirc(model, texcex=1, labcex=1)

# masukan nilai sesuai dengan hasil model
mypars@SL50 <- model@SL50[yr]
mypars@SL95 <- model@SL95[yr]
mypars@FM <- model@FM[yr]
mypars@SPR <- model@SPR[yr]

# plot frekuensi panjang berdasarkan hasil SPR
plotTarg(mypars, lengths, yr=yr)
## Both SPR and F/M have been specified. Using SPR and ignoring F/M

# plot frekuensi panjang berdasarkan target SPR
mypars@SPR <- 0.6 #target SPR
plotTarg(mypars, lengths, yr=yr)
## Both SPR and F/M have been specified. Using SPR and ignoring F/M

Simulasi Model LBSPR

Simulasi model LBSPR dengan nilai paramter yang didapatkan.

# sesuaikan nilai parameter yang lain
mypars@SPR <- model@SPR[yr] #SPR berdasarkan hasil
mypars@BinMax <- 35 #batas atas
mypars@BinMin <- 10 #batas bawah
mypars@L_units <- "cm" #ubah satuan unit panjang (default mm)

# model
mysim <- LBSPRsim(mypars)
## Both SPR and F/M have been specified. Using SPR and ignoring F/M
# hasil
mysim@SPR
## [1] 0.29
mysim@FM
## [1] 1.21

Plot Hasil Simulasi Model

plotSim(mysim, lf.type="catch")

# alterasi plot
plotSim(mysim, lf.type="pop")

Manipulasi Nilai Parameter

Nilai parameter dapat diganti untuk melihat perubahan hasil simulasi model yang didapatkan. Hal ini dapat dilakukan untuk rekomendasi kebijakan berdasarkan hasil simulasi model.

Beberapa parameter yang dapat diubah adalah:

Rasio FM

mypars@SPR <- numeric() #hapus nilai SPR sebelumnya 
mypars@FM <- 0.5 #tentukan nilai FM

# ulangi simulasi
mysim <- LBSPRsim(mypars)
round(mysim@SPR, 2)
## [1] 0.54

Parameter selektivitas

mypars@MK <- 1.5
mypars@SL50 <- 15
mypars@SL95 <- 25

# ulangi simulasi
mysim <- LBSPRsim(mypars)
round(mysim@SPR, 2)
## [1] 0.58

Opsi kontrol (control option)

Secara default model LBSPR menggunakan Growth-Type-Group model (Hordyk et al. 2016). Argumen kontrol dapat diubah menjadi Age-Structured model (Hordyk et al. 2015):

mysim <- LBSPRsim(mypars, Control=list(modtype="GTG")) #Growth-Type-Group (default)
round(mysim@SPR, 2)
## [1] 0.58
mysim <- LBSPRsim(mypars, Control=list(modtype="absel")) #Age-Structured
round(mysim@SPR, 2)
## [1] 0.59

Plot

Setelah merubah beberapa parameter, hasil dapat dibandingkan dengan membuat plot.

plotSim(mysim, lf.type="catch")

# alterasi plot
plotSim(mysim, lf.type="pop")

Session Info:

## R version 4.3.2 (2023-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19045)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=English_United States.utf8 
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: Asia/Jakarta
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] LBSPR_0.1.6
## 
## loaded via a namespace (and not attached):
##  [1] gtable_0.3.4       jsonlite_1.8.8     highr_0.10         dplyr_1.1.4       
##  [5] compiler_4.3.2     plotrix_3.8-4      tidyselect_1.2.0   Rcpp_1.0.12       
##  [9] gridExtra_2.3      tidyr_1.3.1        jquerylib_0.1.4    scales_1.3.0      
## [13] yaml_2.3.8         fastmap_1.1.1      ggplot2_3.5.0      R6_2.5.1          
## [17] labeling_0.4.3     generics_0.1.3     knitr_1.45         tibble_3.2.1      
## [21] munsell_0.5.0      bslib_0.6.1        pillar_1.9.0       RColorBrewer_1.1-3
## [25] rlang_1.1.3        utf8_1.2.4         cachem_1.0.8       xfun_0.42         
## [29] sass_0.4.8         cli_3.6.2          withr_3.0.0        magrittr_2.0.3    
## [33] digest_0.6.34      grid_4.3.2         rstudioapi_0.15.0  lifecycle_1.0.4   
## [37] vctrs_0.6.5        evaluate_0.23      glue_1.7.0         farver_2.1.1      
## [41] fansi_1.0.6        colorspace_2.1-0   rmarkdown_2.25     purrr_1.0.2       
## [45] tools_4.3.2        pkgconfig_2.0.3    htmltools_0.5.7