library(devtools)
install_github("fishdynr", "marchtaylor")
The above figure shows the output of the Beverton and Holt's (1957) yield-per-recruit model (ypr function - wrapper for cohortSim), based on variable fishing mortality (F) and length at first capture (Lcap, knife-edge selection). Length at maturity is shown as a dashed white line for reference. In this example, the maximum yield (Ymax) is defined as the maximum possible yield without depletion of the spawning biomass below 50% of it's virgin, unfished biomass. This simple cohort model has many additional outputs that can be helpful in visualizing processes of growth and mortality:
I hope to continue to document different models used in fisheries science within the package. Any suggestions or comments are welcome.
References
Beverton, R. J. H.; Holt, S. J. (1957), On the Dynamics of Exploited Fish Populations, Fishery Investigations Series II Volume XIX, Ministry of Agriculture, Fisheries and Food
Script to reproduce the examples
#library(devtools) #install_github("fishdynr", "marchtaylor") library(fishdynr) # Single cohort simulation data(tilapia) tilapia$N0 <- 1000 res <- cohortSim(tilapia, t_incr=0.1) png("fishdynr_cohortSim.png", width=8, height=5, units="in", res=400, type="cairo") op <- par(mfcol=c(2,3), mar=c(4,4,1,1), ps=10) plot(Lt ~ t, res, t="l") plot(Wt ~ t, res, t="l") plot(pmat ~ t, res, t="l") plot(pcap ~ t, res, t="l") plot(Nt ~ t, res, t="l", log="y") lines(Nt.noF ~ t, res, col=1, lty=2) legend("topright", legend=c("Nt", "Nt; F=0"), col=1, lty=1:2) plot(Bt ~ t, res, t="l") lines(SBt ~ t, res, col=1, lty=2) legend("topright", legend=c("Bt", "SBt"), col=1, lty=1:2) par(op) dev.off() # Yield per recruit model tilapia$N0 <- 1 n <- 30 adj.params <- list(F=seq(0,3,,n), knife_edge_size=seq(0,tilapia$Linf,,n)) res <- ypr(params=tilapia, adj.params) SB_F0 <- res$SB[which(res$F==0),1] res$relSB <- res$SB/SB_F0 Ymax <- which.max(res$Y*(res$relSB > 0.5)) pal <- colorRampPalette(c( rgb(1,0.5,0.5), rgb(1,1,0.5), rgb(0.5,1,1), rgb(0.5,0.5,1) )) png("fishdynr_ypr.png", width=8, height=4, units="in", res=400, type="cairo") op <- par(mfcol=c(1,2), mar=c(3,3,2,1), oma=c(1,1,0,0), ps=10) # Yield image(x=res$F, y=res$knife_edge, z=res$Y, col=pal(100), xlab="", ylab="" ) contour(x=res$F, y=res$knife_edge, z=res$Y, add=TRUE) abline(h=tilapia$Lmat, col="white", lty=2) points(res$adj.params.comb[Ymax,], lwd=2, col="white") text(res$adj.params.comb[Ymax,], labels="Ymax", col="white", cex=1.2, pos=2, font=2) mtext("Yield-Per-Recruit", side=3, line=0.5, cex=1.2, font=2) # Relative spawning biomass image(x=res$F, y=res$knife_edge, z=res$SB/SB_F0, col=pal(100), xlab="", ylab="" ) contour(x=res$F, y=res$knife_edge, z=res$SB/SB_F0, add=TRUE) abline(h=tilapia$Lmat, col="white", lty=2) points(res$adj.params.comb[Ymax,], lwd=2, col="white") text(res$adj.params.comb[Ymax,], labels="Ymax", col="white", cex=1.2, pos=2, font=2) mtext("Rel. Spawning Biomass", line=0.5, side=3, cex=1.2, font=2) mtext("Fishing mortality [F]", side=1, line=0, outer=TRUE) mtext("Length at capture [Lcap]", side=2, line=0, outer=TRUE) par(op) dev.off()
No comments:
Post a Comment