Indian Ocean skipjack tuna model
The Indian Ocean Tuna Commission's (IOTC) Working Party on Methods' (WPM) simulation model of the Indian Ocean skipjack (SKJ) tuna fishery for the evaluation of management procedures (MP).
Skipjack tuna (Katsuwonus pelamis)
The following document the model structure and code,
- doxygen : C++ code documentation generated by Doxygen
Several reports associated with this project are available (in reverse chronological order):
Bentley, N and M.S. Adam (2015). An operating model for the Indian Ocean skipjack tuna fishery. IOTC-2015-WPTT17-35. Paper submitted to the 17th Meeting of the Working Party on Tropical Tunas, Montpellier, France, 23-28 October 2015
Bentley, N and M.S. Adam (2015). An operating model for the Indian Ocean skipjack tuna fishery. IOTC-2015-WPM06-09. Paper submitted to the 6th Meeting of the Working Party on Methods, Montpellier, France, 19-21 October 2015
Bentley, N and M.S. Adam (2014). Management procedure evaluation for Indian Ocean skipjack tuna fishery: model description and conditioning. IOTC-2014-WPM05-08. Paper submitted to the 5th Meeting of the Working Party on Methods, Seychelles, 05-06 December 2014
Bentley, N and M.S. Adam (2014). Management strategy evaluation for Indian Ocean skipjack tuna fishery: first steps. IOTC-2014-WPTT16-39. Paper submitted to the 16th Meeting of the Working Party on Tropical Tuna, Bali, Indonesia, 15-19 November 2014
Adam, M. S., R. Sharma and N. Bentley (2013). Progress and arrangements for management strategy evaluation work of Indian Ocean skipjack tuna. IOTC-2013-WPTT15-12, Paper submitted to Working Party on Tropical Tuna, San Sebastian, Spain.
This work has been funded by the International Pole and Line Foundation (IPNLF), the Maldives Seafood Processors and Exporters Association (MSPEA), the Areas Beyond National Jurisdiction (ABNJ aka Common Oceans) Program and WWF with support and oversignt of the Maldives Marine Research Centre (MRC). Support for the project's Advisory Committee has been provided by the International Seafood Sustainability Foundation (ISSF).
The model is still under active development. As the model matures we hope to make it available as precompiled executables for Windows and Linux and/or a package for R.
Automated builds are done on Travis CI when changes are pushed to this repository.
To run the executable,
ioskj.exe, supply a task name and, for certain tasks, additional arguments,
./ioskj.exe <task> [<arg1>],[<arg2>]...
For example, to evaluate the defined set of management procedures using 1000 replicates run,
./ioskj.exe evaluate 1000
Makefile includes a task (
make requires) which will download and compile required C++ libraries. Use
make compile to compile a production version of the executable.
On most Linux systems you should have the required build tools installed already and can just run:
make requires compile
On Windows, the recommended approach is to build using MSYS2 and MinGW64:
Download and install MYSYS2 following the instructions at https://msys2.github.io/
Open the MYSY2 shell and install build tools:
pacman -S make mingw-w64-x86_64-toolchain zip
Open the MinGW64 shell and run:
make requires compile
To build a debug version of the executable for use with GDB run,
To update all documentation run,
To publish documentation to http://iotcwpm.github.io/SKJ run,
The C++ code is divided into several files:
#includes to import classes and functions from external libraries
dimensions.hpp- defines the dimensions used in various model arrays e.g.
model.hpp- contains the
Modelclass which specifies the structure and dynamics of the fishery
parameters.hpp- contains the
Parametersclass which defines the parameters and their priors used for model conditioning
data.hpp- contains the
Dataclass which defines the data sets and their likelihoods used for model conditioning
ioskj.cpp- the primary C++ file for compiling the executable
tests.cpp- unit tests of the C++ code
Some of these files have corresponding folders,
parameters: R scripts for background analyses for developing model prior probability distributions.
data: R and Python scripts for processing source data. See the documentation in those files for more details.
In addition there is a folder related to documentation,
doxygen: a Doxygen project for automatically generating documentation from C++ source code.