Introduction

This page has visualizations for the CCA model example, Atlantis Summit Common Scenario 1. For full explanation of methods, see the file linked at the beginning of each section.

Simulate a survey part 1: census to compare with truth

Full methods are explained here. The following settings should achieve a survey that samples all Atlantis model output timesteps, all species, and all model polygons, with perfect efficiency and full selectivity for all ages:

# should return a perfectly scaled survey 
effic1 <- data.frame(species=funct.group.names,
                     efficiency=rep(1.0,length(funct.group.names)))

# should return all lengths fully sampled (Atlantis output is 10 age groups per spp)
# BUT CHECK if newer Atlantis models can do age-specific outputs
selex1 <- data.frame(species=rep(funct.group.names, each=10),
                     agecl=rep(c(1:10),length(funct.group.names)),
                     selex=rep(1.0,length(funct.group.names)*10))

# should return all model areas
boxpars <- load_box(d.name, box.file)
boxall <- c(0:(boxpars$nbox - 1))

# these are model specific, generalized above
# if(initCCA) boxall <- c(0:88) 
# if(initNEUS) boxall <- c(0:29)
# if(initNOBA) boxall <- c(0:59) 

# should return all model output timesteps; need to generalize
if(initCCA) timeall <- c(0:100) 
if(initNEUS) timeall <- c(0:251)
if(initNOBA) timeall <- c(0:560) 
  
# define set of species we expect surveys to sample (e.g. fish only? vertebrates?)
# for ecosystem indicator work test all species, e.g.
survspp <- funct.group.names 

# to keep plots simpler, currently hardcoded for vertebrate/fished invert groups
if(initCCA) survspp <- funct.group.names[c(1:44, 59:61, 65:68)] 
if(initNEUS) survspp <- funct.group.names[1:21]
if(initNOBA) survspp <- funct.group.names[1:36]

Because the results of run_truth provide both biomass at age and numbers at age, we can use create_survey on both with some modifications. The following uses the biomass output of run_truth to create the survey, so the call to sample_survey_biomass will require a weight at age argument that is filled with 1’s because no conversion from numbers to weight is necessary. Because we are making a census for testing, the survey cv argument is set to 0.

Comparing our (census) survey based on true biomass from above with the Atlantis output file “[modelscenario]BiomIndx.txt” should give us a perfect match. Note that the our (census) survey may have more sampling in time than the Atlantis output file.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; first 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; first 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; last 9 species.

Testing whether the survey census gives the same results as the Atlantis output biomass index file; last 9 species.

After comparing the survey census based on the biomass output of run_truth, we now look at a biomass index that is estimated based on numbers in the survey census and an average weight at age. This is more complex, but may be closer to the way some assessments handle survey observations.

Check weight at age generated from biomass_age\$atoutput divided by nums\$atoutput for up to 64 groups.Check weight at age generated from biomass_age\$atoutput divided by nums\$atoutput for up to 64 groups.Check weight at age generated from biomass_age\$atoutput divided by nums\$atoutput for up to 64 groups.Check weight at age generated from biomass_age\$atoutput divided by nums\$atoutput for up to 64 groups.

Check weight at age generated from biomass_age$atoutput divided by nums$atoutput for up to 64 groups.

Now we plot the results of the numbers-based (census) survey biomass against the same Atlantis output file “[modelscenario]BiomIndx.txt” as above.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; first 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; first 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; next 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; last 9 species.

Testing whether the survey census based on numbers converted to biomass gives the same results as the Atlantis output biomass index file; last 9 species.

We have more misses in the numbers with average weight estimation, so this needs more investigation and discussion. It may be best to have the survey index for testing derived directly from the true biomass output.