Created by Appilineni Kushal ([email protected])
All files and Matlab codes to our model is given here:
There are 2 aspects to our model, description of codes for each of them are given separately:
-
Web generation and Fishing free part – where we generate the webs using Niche model, run it for 4000 time steps with no fishing.
-
Fishing under a certain management setting – where we introduce fishing and a certain policy setting, select target and bycatch and run the system for further 1825 time steps.
All codes for this are in the folder Web generation and Fishing Free.
First we generate webs using Niche Model. To do that we use webgeneration.m. It uses the NicheModel.m and creates n food webs, each with spe number of trophic species, with connectance con with an error err. See the code for more details. webgeneration.m can be used to generate new foodwebs. For each web, we store the foodweb (predator prey connections in form of a matrix), fish species of the web and initial biomasses. We generate 3000 webs to begin with, stored in Webs3000.mat.
These webs are then run for 4000 time steps with no fishing. We do that by using the newwebfishingfree.m. It takes Webs3000.mat and uses the following functions:
-
webproperties.m – Takes a foodweb, gives out the trophic level and species connected to basal species.
-
newsetup_default.m – Takes foodweb and fish labels, initializes all the parameters (based on Table 1 in the manuscript).
-
newdifferentialresp.m – Generates the timeseries based on Equation 1 and 2 of the manuscript.
-
isConnected.m – Checks if the resulting foodweb after 4000 timesteps is still connected.
We use this to find out how many of those initially generated foodwebs (from Webs3000.mat) are “conserved”, after 4000 timesteps. The conserved foodwebs are stored in foodwebs_1_400 (split in 12 files, found in the Folder - Web generation (fishing free)).
We considered 3 scenarios i.e. Open Access, Shared target policy and Shared target and bycatch policy. All files pertaining to each of those are in those respective folders. To generate timeseries, we use the following functions - discreteeffortsopenaccess.m, discreteeffortssharedtarget.m and discreteeffortssharedtargetbycatchquota.m. Each of these functions takes the following inputs:
-
Simhbdata - set of all conserved foodwebs
-
k - index of the particular foodweb, who’s timeseries is required
-
N – number of fishers
-
costratio – scaling parameter used in marginal costs
-
cat – catchability of target species
-
cab – catchability of bycatch species
-
cutofft – cutoff threshold for target species, below which fishery will be closed
-
cutoffb – cutoff threshold for bycatch species, below which fishery will be closed
-
nharvest – number of target species to be harvested
-
nbycatch – number of bycatch species
-
inE – maximum effort
-
nseasons – number of seasons (in multiple of 365 days)
-
hill – Hill’s coefficient
-
hsb – Half saturation biomass
-
fa – fraction of assimilated carbon used for production
-
fm – factor for maintenance respiration
-
target – index indicating the target species, among all species in food web
-
bycatch – index indicating the bycatch species, among all species in food web Each of them also take inputs, the following functions:
-
newsetup_default.m – Takes foodweb and fish labels, initializes all the parameters (based on Table 1 in the manuscript).
-
d_seasonalcatchV2.m - Generates the timeseries based on Equation 1 and 2 of the manuscript, when fishing is still profitable.
-
newseasonclosure.m - Generates the timeseries for the rest of the season based on Equation 1 and 2 of the manuscript, after fishery is closed.
dataforrandomtarget.mat – gives the target and bycatch indexes for each foodweb. It stores information (in form of indexes) for all possible target and bycatch combinations in each foodweb.
minbynetworkindex.mat – which indexes (among all possible target bycatch combinations from dataforrandomtarget.mat), correspond to most vulnerable bycatch.
Each of the timeseries generation functions - discreteeffortsopenaccess.m, discreteeffortssharedtarget.m and discreteeffortssharedtargetbycatchquota.m – returns the timeseries for 5 years with fishing (1826 time steps). First 30 columns refer to the biomasses of the species in the foodweb, 31 - 35 refers to the effort of the 5 fishers, 36 - 40 are the cummulative target yield of each fisher (in order i.e. 36 refers to the cumulative target yield (over time) of the fisher who’s efforts are given by column 31 and so on), 41 – 45 are the cumulative bycatch yield of each fisher (in order).
After the time series for each of the 400 webs is generated (for both all both scenarios - random bycatch and vulnerable bycatch) , the properties of each web i.e. target survivability, bycatch survivability, biomass change, target extinctions, bycatch extinctions, secondary extinctions, target yield, bycatch yield, profits and fishing season was calculated using the following commands:
-
simulationresults_survextinct.m – Calculated mean, median and mode for all the above observables for the scenario where bycatch is chosen randomly. The output of these are stored in the form of newmedian_openaccess_data.mat (for open access time series), newmedian_survST_cutofft (when only Shared target policy is in place) and newmedian_survSTB_cutofft_cutoffb (when both Shared target and bycatch policy is in place).
-
simulationresults_MinBysurvextinct.m - Calculated mean, median and mode for all the above observables for the scenario where bycatch is chosen as the most vulnerable species. The output of these are stored in the form of newmedian_minby_openaccess_data.mat (for open access time series), newmedian_MinBy_survST_cutofft (when only Shared target policy is in place) and Newmedian_minby_survSTB_cutofft_cutoffb (when both Shared target and bycatch policy is in place).
Henceforth, I’ll refer to these files as newmedian data files. We used this newmedian data to compile information about all relevant observables for different esctarget and escbycatch in newmedian_policydata_randombycatch.mat and newmedian_policydata_vulnerablebycatch.mat. Each cell entry contains data for all escapement levels used in this study. esctarget are selected between [0.15, 0.3, 0.45, 0.6] and changes along the columns. escbycatch are selected between [0, 0.15, 0.3, 0.45, 0.6] and changes along the columns.
Description of each cell entry of the abovementioned policydata files and how it was obtained from newmedian data:
-
Median fraction of Target surviving (year 5 of fishing/penultimate fishing free year, 3rd entry of newmedian data)
-
Median fraction of Bycatch surviving (year 5 of fishing/penultimate fishing free year, 6th entry of newmedian data)
-
Mean target extinctions (since fishing started, 10th entry of newmedian data)
-
Mean bycatch extinctions (since fishing started, 11th entry of newmedian data)
-
Mean secondary extinctions (since fishing started, 12th entry of newmedian data)
-
Mean target yield (only year 5 of fishing, 13th entry of newmedian data)
-
Mean bycatch yield (only year 5 of fishing, 14th entry of newmedian data)
-
Mean profits (only year 5 of fishing, 15th entry of newmedian data)
-
average fishing year (only year 5 of fishing, 16th entry of newmedian data)
E.g. newmedian_policydata_randombycatch.mat{5} would give the mean secondary extinctions for each target (bycatch) escapements along the column (row).
Corresponding data for open access was stored in policy_openaccessdata_randombycatch.mat and policy_openaccessdata_vulnerablebycatch.mat
heatmapcommands.m was used to interpolate the policydata and plot heatmaps Figure 3 and 4.