Chapter 1 Settings
To customize the way data are processed and included in your analysis, use the load_settings() function. This function emulates and expands upon the settings file, ABUND.INP, that was used to run ABUND7/8/9 in FORTRAN (a program written by Jay Barlow (NOAA Fisheries) to process DAS files).
This function allows you to use ‘factory defaults’ if you don’t wish to specify anything special such as strata or study area polygons:
If you do not want to use all the defaults, you can provide load_settings() with custom inputs. The function accepts three arguments:
strata: dataframe(s) of coordinatessurvey: settings that will apply universally to the analysiscohorts: settings that are specific to groups of species. By providing cohort-specific settings, the code for a single analysis becomes simpler and more easily reproduced, since the code only needs to be run once without modification.
The output of load_settings() is a named list with a slot for each of these arguments:
Survey strata
Stratum polygons can be provided as a named list of data.frame objects. Each data.frame must have Lon and Lat as the first two columns, providing coordinates in decimal degrees in which West and South coordinates are negative. Other columns are allowed, but the first two need to be Lon and Lat. The name of the slot holding the data.frame will be used as a reference name for the stratum. It is acceptable if vertices in the eastern hemisphere are described using negative longitudes below -180, e.g., -185. (LTabundR will correct these to proper decimal degrees, e.g., -185 will become 175.)
If strata is NULL, abundance will not be estimated; only density within the searched area (i.e., the total segment length x effective strip width).
While users are welcome to upload polygons of their own, the package comes with built-in polygons for strata that are commonly used in three NOAA Fisheries study regions in the central and eastern Pacific: the Central North Pacific (CNP, including Hawaii) …
data(strata_cnp)
names(strata_cnp)
[1] "HI_EEZ" "OtherCNP" "MHI" "WHICEAS"
[5] "Spotted_OU" "Spotted_FI" "Spotted_BI" "Bottlenose_KaNi"
[9] "Bottlenose_OUFI" "Bottlenose_BI" "nwhi_fkw" "mhi_fkw"
# HI-EEZ: U.S. Exclusive Economic Zone around the Hawaiian Islands.
# OtherCNP: Extended Central North Pacific study area.
# MHI: Main Hawaiian Islands survey stratum during HICEAS 2002.
# WHICEAS: Study area for winter HICEAS of 2020.
# Spotted_OU: Stock boundary for the Oahu population of spotted dolphins.
# Spotted_FI: Stock boundary for the 4-Islands population of spotted dolphins.
# Spotted_BI: Stock boundary for the Hawaii Island population of spotted dolphins.
# Bottlenose_KaNi: Stock boundary for the Kauai/Niihau population of bottlenose dolphins.
# Bottlenose_OUFI: Collective stock boundaries for the adjacent Oahu and 4-Islands populations of bottlenose dolphins.
# Bottlenose_BI: Stock boundary for the Hawaii Island population of bottlenose dolphins.
# nwhi_fkw: Stock boundary for the Northwestern Hawaiian Islands population of false killer whales.
# mhi_fkw: Stock boundary for the main Hawaiian Islands insular population of false killer whales.…the California Current System (CCS) …
data(strata_ccs)
names(strata_ccs)
[1] "CCS" "Southern_CA" "Central_CA" "Nothern_CA" "OR_WA"
#For more information on these strata, see Barlow (2010).… and the Eastern Tropical Pacific (ETP):
data(strata_etp)
names(strata_etp)
[1] "MOPS_AreaCoreM" "MOPS_AreaIn" "MOPS_AreaIn1"
[4] "MOPS_AreaIn2" "MOPS_AREAINS" "MOPS_AREAMID"
[7] "MOPS_AreaMid1" "MOPS_AreaMid2" "MOPS_AreaMOPS"
[10] "MOPS_AREANORS" "MOPS_AreaOuterM" "MOPS_AreaSou"
[13] "MOPS_AREASOUS" "MOPS_AreaSpin" "MOPS_AreaSpinS"
[16] "MOPS_AREAWES" "PODS_93STRAT1" "PODS_93STRAT2"
[19] "PODS_Area92" "PODS_AREA92RS" "PODS_Area92s"
[22] "PODS_AREA93" "PODS_AREA93A" "PODS_AREA93AR"
[25] "PODS_AREA93AS" "PODS_AREA93BR" "PODS_AREA93M"
[28] "PODS_AREA93MS" "PODS_AREA93R" "PODS_AREA93R1"
[31] "PODS_AREA93R2" "PODS_AREA93RS" "PODS_AREA93S"
[34] "PODS_AREANCOR" "PODS_GOCpoly" "Pre1986_Area79ES1"
[37] "Pre1986_Area79ES1s" "Pre1986_Area79ES2" "Pre1986_Area79ES2s"
[40] "Pre1986_Area79NE1" "Pre1986_Area79NE1s" "Pre1986_Area79NE2"
[43] "Pre1986_Area79NE2s" "Pre1986_Area79NE3" "Pre1986_Area79NE3s"
[46] "Pre1986_AreaCal" "Pre1986_AreaCals" "Pre1986_AreaMid"
[49] "Pre1986_AreaMidS" "Pre1986_AreaNorth" "Pre1986_AreaNorthS"
[52] "Pre1986_AreaSouth" "Pre1986_AreaSouthS" "STAR_Area98a"
[55] "STAR_Area98b" "STAR_AreaCore" "STAR_AreaCore2"
[58] "STAR_AreaCoreS" "STAR_AreaNCoast" "STAR_AreaNCstS"
[61] "STAR_AreaOuter" "STAR_AreaOuter00" "STAR_AreaSCoast"
[64] "STAR_AreaSCstS" "STAR_AreaSPn" "STAR_AreaSPs"
[67] "STAR_AreaSTAR" "STAR_AreaSTAR2" "STAR_AreaSTARlite"
[70] "STAR_Dcaparea"
#For more information on these strata, contact <swfsc.info@noaa.gov> The package includes functions for visualizing and selecting from these strata. See the Strata Gallery appendix.
To create your own geostratum, you would use code like this:
# Create a dataframe of coordinates
# (this example is a closed rectangle)
mine1 <- data.frame(Lon = c(-120, -125, -125, -120, 120),
Lat = c(20, 20, 40, 40, 20))
# Make into a list
my_strata <- list(mine1 = mine1)
# Check it out
my_strata
$mine1
Lon Lat
1 -120 20
2 -125 20
3 -125 40
4 -120 40
5 120 20
# Supply to load_settings()
my_settings <- load_settings(strata = my_strata)To keep some of the strata from strata_cnp then add one of your own design:
# Subset `strata_cnp`:
my_cnp <- strata_cnp[c(2,3)]
# Check it out
my_cnp %>% names
[1] "OtherCNP" "MHI"
# Create your new geostratum
mine1 <- data.frame(Lon = c(-120, -125, -125, -120, 120),
Lat = c(20, 20, 40, 40, 20))
# Assemble your list:
my_strata <- c(my_cnp, list(mine1 = mine1))
# Check it out
my_strata
$OtherCNP
Lon Lat
1 -131 40.00
2 -126 32.05
3 -120 25.00
4 -120 -5.00
5 -185 -5.00
6 -185 40.00
7 -131 40.00
$MHI
Lon Lat
1 -156.00 22.00
2 -154.40 20.60
3 -153.50 19.20
4 -154.35 18.55
5 -155.20 17.75
6 -157.00 18.25
7 -157.50 19.20
8 -161.00 21.84
9 -160.00 23.00
10 -157.00 22.50
11 -156.00 22.00
$mine1
Lon Lat
1 -120 20
2 -125 20
3 -125 40
4 -120 40
5 120 20
# Supply to load_settings()
my_settings <- load_settings(strata = my_strata)Survey-wide settings
Survey-wide settings apply universally to all species in the analysis.
Defaults
settings$survey
$out_handling
[1] "remove"
$interpolate
NULL
$min_row_interval
[1] 2
$max_row_interval
[1] 3600
$max_row_km
[1] 100
$km_filler
[1] 1
$speed_filler
[1] 18.52
$segment_method
[1] "day"
$segment_target_km
[1] 150
$segment_max_interval
[1] 48
$segment_remainder_handling
[1] "segment"
$seed
NULL
$ship_list
NULL
$species_codes
NULL
$smear_angles
[1] FALSEDefaults for the survey argument list are built up efficiently using the function load_survey_settings() (see example code at bottom).
Details
The survey_settings input accepts a list with any of the following named slots:
out_handling:the first slot allows you to specify how data occurring outside of geo-strata should be handled. If this is set to"remove", those rows will be filtered out of the data early in the process. This reduces memory usage, speeds up processing, and gives you geographic control of how effort and sightings will be summarized. If this is set to"stratum", those data will be assigned to a fake geo-stratum, named"out". Effort in the"out"stratum will not be segmentized, but"out"sightings will be processed and retained in the final datasets. This setting might be useful if you want to use"out"data for survey summaries and/or detection function estimation. The default is"remove", since that saves the most time and memory.interpolate:This argument allows you to interpolate theDASdata at the onset of processing if your position updates are separated by large time intervals, which would make spatial effort and stratum assignments less exact. If this argument isNULL, then no interpolation will occur. If it is a number, e.g., 30,LTabundRwill interpolate the data using simple-linear methods (i.e., no great-sphere calculations), such that position updates occur every 30 seconds or less. If adjacentDASrows are from different dates or cruises, the interpolation routine will skip to the next pair of related rows. Interpolation will only occur for On-Effort rows (i.e., columnOnEffortisTRUE).min_row_interval: The minimum time interval, in seconds, between rows in order for the Great Circle distance between rows to be calculated. Intervals less than this number will be assigned a distance of 0 km. The default of 2 seconds was chosen somewhat arbitrarily, with the consideration that intervals shorter than 2 seconds are likely to be affected by error in GPS location.max_row_interval: The maximum allowable time interval, in seconds, between rows beforeLTabundRassumes that there has been a break in survey data logging. The default of 3600 seconds (6 hours) was chosen because there is usually at least 6 hours of nighttime darkness between the end of effort on one day and the start of effort on the next. Such intervals are typically accounted for using going Off Effort at night and back On Effort the next day, but this setting catches any instances in which effort was not logged correctly.max_row_km: The maximum allowable distance interval, in km, between rows before the function assumes that there has been a break in survey data logging. As above, such intervals are typically accounted for using going Off Effort at night and back On Effort the next day, but this setting catches any instances in which effort was not logged correctly.The default of 100km was chosen arbitrarily to find a value that replicates the processing results fromABUND.km_filler: When valid speed and position information is not available (e.g., the given distance exceedsmax_row_km), this value (in km) will be used as an estimate of the distance in between consecutive rows of data. The default of 1km was chosen arbitrarily to find a value that replicates the processing results fromABUND.speed_filler: When speed is not available in the data, this value (in kph) will be used as a filler in order to estimate the distance between consecutive rows of data based on timestamp differences (when lat/long coordinates are not available). The default of 18.52 kph (10 knots) is used to replicate the value for a similar setting within theABUNDprocessing code (and it is also the target ship speed during NOAA Fisheries Surveys).segment_method:This and the next few slots are devoted to controlling how effort will be “segmentized”, or chopped into discrete sections for the purposes of estimating the variance of the density/abundance estimates. The two method options are"day"– all effort within the same Cruise-StudyArea-Stratum-Year-Effort scenario will be binned into segments by calendar date – and"equallength"– effort within each unique effort scenario (Cruise-StudyArea-etc.) will be divided into segments of approximately equal length. See the Appendix on segmentizing for details.segment_target_km:if segmentizing by"equallength", this field allows you to specify what that target length is, in km. The default is 150 km, the distance generally surveyed in one day on NOAA Fisheries surveys.segment_max_interval:if segmentizing by"equallength", this setting allows you to specify the time gaps in effort that are allowed to be contained within a single segment. For example, if your goal is a few large segments of equal length (e.g., 150-km segments, for bootstrap estimation of density variance), you are probably willing for discrete periods of effort to be concatenated into a single segment, even if the gaps between effort are as large as 1 or 2 days, in which case you would setsegment_max_intervalto 24 or 48 (hours), respectively. However, if your goal is many smaller segments (e.g., 5-km segments, for habitat modeling), you want to ensure that effort is contiguous so that segment locations can be accurately related to environmental variables, in which case you would setsegment_max_intervalto be very small (e.g., 0.2 hours, or 12 minutes). Setting this interval to a small number, such as 0.2, also allows the segmentizing function to overlook momentary breaks in effort.segment_remainder_handling:if segmentizing by"equallength", periods of effectively-contiguous effort (as specified bysegment_max_interval) are unlikely to be perfectly divisible by yoursegment_target_km; there is going to be a remainder. You can handle this remainder in three ways: (1)"disperse"allows the function to adjustsegment_target_kmso that there is in fact no remainder, effectively dispersing the remainder evenly across all segments within that period of contiguous effort; (2)"append"asks the function to append the remainder to a randomly selected segment, such that most segments are the target length with the exception of one longer one; or (3)"segment"asks the function to simply place the remainder in its own segment, placed randomly within the period of contiguous effort. This setting also has a second layer of versatility because it can accept a one- or two-element character vector. If a two-element vector is provided (e.g.,c("append","segment")), the first element will be used in the event that the remainder is less than or equal to half yoursegment_target_km; if the remainder is more than half that target length, the second element will be used. This feature allows for replication of the segmentizing methods in Becker et al. (2010).seedSet a seed (any integer) to ensure that your survey is processed reproducibly: namely, segments will be chopped the exact same way every time. Some of the segment remainder handling methods (specifically"segment"and"append") will assign the remainder of survey effort to a randomly selected segment. Supplying aseednumber here will ensure that remainder goes in the same place with each run. If leftNULL, the segment breaks are liable to differ each time this function is run, and the segments to which sightings are assigned are liable to vary as well, meaning any downstream analysis will likely have slight differences in point estimates and variance estimation.
The remaining slots in survey_settings pertain to various datasets and settings used in data processing:
ship_list:Adata.framecontaining a list of survey numbers and ship names. If not provided the default version, which was current as of the release ofABUND9in 2020, will be used (data(ships)), although note that surveys not included there will not be associated with a ship. Supplieddata.framesmust match the column naming structure ofdata(ships).species_codes:Adata.framecontaining species codes. This is an optional input, chiefly used to format species names in the reporting stage of the workflow (lta_report()especially). If missing, neither data processing nor line transect analysis will be obstructed. If the user supplies adata.frame, it must match the column naming structure ofdata(species_codes).smear_angles:IfTRUE(the default isFALSE), bearing angles to a group of animals will be “smeared” by adding a uniformly distributed random number between -5 and +5 degrees. This has not been used in any recent analyses because observers have not been rounding angles as much as they used to. It was suggested by Buckland et al. (2001) as a method for dealing with rounding, which is especially influential when rounding to zero places many sightings at zero perpendicular distance.
Cohort-specific settings
Cohort-specific settings apply only to a group of species. Since you can add as many cohorts to a settings object as you need, this allows you to stage your entire analysis and run your code once without modifying code or creating multiple versions of your code for each analysis of each cohort.
Defaults
The default is to use a single cohort for all species:
Default values for the default cohort:
settings$cohorts$default
$id
[1] "default"
$species
NULL
$strata
NULL
$probable_species
[1] FALSE
$sighting_method
[1] 0
$cue_range
[1] 0 1 2 3 4 5 6 7
$group_size_range
[1] 0 10000
$group_size_calibrate
$group_size_calibrate$method
[1] "ABUND"
$group_size_calibrate$coefficients
obs n var min max w_best w_high w_low model_1 b0 b1 b1987
. 1. 67. 0.3486 8. 1259. 0.00 0.68 0.32 0.920 0.000 0.000 0.000
.1 1. 67. 0.3113 8. 1259. 0.00 0.68 0.32 0.000 0.000 0.000 0.000
.2 4. 28. 0.1967 9. 1140. 0.62 0.38 0.00 1.000 0.000 0.000 0.000
.3 4. 28. 0.1967 9. 1140. 0.62 0.38 0.00 1.000 0.000 0.000 0.000
.4 5. 57. 0.1841 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.5 5. 57. 0.1841 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.6 7. 134. 0.3303 8. 6012. 0.00 0.00 1.00 0.840 0.000 0.000 0.000
.7 7. 134. 0.2881 8. 6012. 0.00 0.00 1.00 0.000 0.000 0.000 0.000
.8 22. 78. 0.2068 10. 1681. 0.00 0.36 0.64 1.105 -0.859 0.000 0.000
.9 22. 78. 0.2068 10. 1681. 0.00 0.36 0.64 1.105 -0.859 0.000 0.000
.10 31. 33. 0.1917 5. 2203. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.11 31. 33. 0.1917 5. 2203. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.12 38. 15. 0.0900 23. 607. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.13 38. 15. 0.0900 23. 607. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.14 45. 6. 0.0615 37. 409. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.15 45. 6. 0.0615 37. 409. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.16 46. 13. 0.2570 31. 1681. 0.00 1.00 0.00 0.909 0.000 0.000 0.000
.17 46. 13. 0.2570 31. 1681. 0.00 1.00 0.00 0.909 0.000 0.000 0.000
.18 51. 60. 0.2760 9. 1681. 0.00 0.00 1.00 0.997 -0.520 0.000 0.000
.19 51. 60. 0.2621 9. 1681. 1.00 0.00 0.00 0.000 -0.358 0.000 0.963
.20 55. 120. 0.2936 6. 2203. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.21 55. 120. 0.2936 6. 2203. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.22 56. 72. 0.2404 17. 2203. 0.00 0.86 0.14 1.067 0.000 0.000 0.000
.23 56. 72. 0.2404 17. 2203. 0.00 0.86 0.14 1.067 0.000 0.000 0.000
.24 63. 19. 0.2660 17. 511. 1.00 0.00 0.00 0.820 0.000 0.000 0.000
.25 63. 19. 0.2660 17. 511. 1.00 0.00 0.00 0.820 0.000 0.000 0.000
.26 64. 33. 0.2633 17. 2203. 0.00 0.00 1.00 1.000 0.000 0.000 0.000
.27 64. 33. 0.2633 17. 2203. 0.00 0.00 1.00 1.000 0.000 0.000 0.000
.28 67. 71. 0.1953 14. 2203. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.29 67. 71. 0.1953 14. 2203. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.30 68. 52. 0.3081 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.31 68. 52. 0.2848 9. 1140. 1.00 0.00 0.00 0.000 0.000 0.000 0.923
.32 69. 47. 0.2564 5. 2203. 0.00 0.00 1.00 1.000 0.000 0.000 0.000
.33 69. 47. 0.2564 5. 2203. 0.00 0.00 1.00 1.000 0.000 0.000 0.000
.34 70. 34. 0.3335 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.35 70. 34. 0.3335 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.36 71. 37. 0.2751 18. 601. 0.00 0.56 0.44 0.866 0.000 0.000 0.000
.37 71. 37. 0.2751 18. 601. 0.00 0.56 0.44 0.866 0.000 0.000 0.000
.38 73. 148. 0.3780 10. 6012. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.39 73. 148. 0.3780 10. 6012. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.40 74. 58. 0.2670 6. 1200. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.41 74. 58. 0.2670 6. 1200. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.42 76. 34. 0.2158 10. 1200. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.43 76. 34. 0.2158 10. 1200. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.44 77. 12. 0.2200 18. 552. 0.00 0.00 1.00 0.788 0.000 0.000 0.000
.45 77. 12. 0.2200 18. 552. 0.00 0.00 1.00 0.788 0.000 0.000 0.000
.46 84. 17. 0.3315 25. 6012. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.47 84. 17. 0.3315 25. 6012. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.48 87. 25. 0.3473 25. 6012. 1.00 0.00 0.00 0.933 0.000 0.000 0.000
.49 87. 25. 0.3473 25. 6012. 1.00 0.00 0.00 0.933 0.000 0.000 0.000
.50 91. 83. 0.4831 6. 2994. 0.00 0.21 0.79 0.848 0.000 0.000 0.000
.51 91. 83. 0.4831 6. 2994. 0.00 0.21 0.79 0.848 0.000 0.000 0.000
.52 92. 80. 0.4108 6. 2994. 0.00 0.03 0.97 0.872 0.000 0.000 0.000
.53 92. 80. 0.3626 6. 2994. 0.00 0.03 0.97 0.000 0.000 0.000 0.000
.54 93. 29. 0.5590 16. 6012. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.55 93. 29. 0.5590 16. 6012. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.56 94. 53. 0.2766 11. 6012. 1.00 0.00 0.00 0.858 0.000 0.000 0.000
.57 94. 53. 0.2766 11. 6012. 1.00 0.00 0.00 0.858 0.000 0.000 0.000
.58 95. 47. 0.3169 6. 1496. 0.75 0.25 0.00 1.000 0.000 0.000 0.000
.59 95. 47. 0.3169 6. 1496. 0.75 0.25 0.00 1.000 0.000 0.000 0.000
.60 96. 59. 0.2613 11. 6012. 0.00 0.65 0.35 0.858 0.000 0.000 0.000
.61 96. 59. 0.2495 11. 6012. 0.00 0.65 0.35 0.000 0.000 0.000 0.000
.62 97. 34. 0.5455 6. 1192. 0.00 0.47 0.53 1.000 0.000 0.000 0.000
.63 97. 34. 0.5455 6. 1192. 0.00 0.47 0.53 1.000 0.000 0.000 0.000
.64 107. 30. 0.3415 11. 1496. 0.00 1.00 0.00 0.876 0.000 0.000 0.000
.65 107. 30. 0.3415 11. 1496. 0.00 1.00 0.00 0.876 0.000 0.000 0.000
.66 108. 19. 0.3270 11. 745. 1.00 0.00 0.00 1.248 -1.040 0.000 0.000
.67 108. 19. 0.3270 11. 745. 1.00 0.00 0.00 1.248 -1.040 0.000 0.000
.68 109. 9. 0.6585 58. 745. 0.41 0.59 0.00 0.862 0.000 0.000 0.000
.69 109. 9. 0.6585 58. 745. 0.41 0.59 0.00 0.862 0.000 0.000 0.000
.70 111. 9. 0.6487 13. 594. 0.00 0.00 1.00 1.000 0.000 0.000 0.000
.71 111. 9. 0.6487 13. 594. 0.00 0.00 1.00 1.000 0.000 0.000 0.000
.72 125. 56. 0.4793 8. 1045. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.73 125. 56. 0.4793 8. 1045. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.74 126. 52. 0.3889 13. 2994. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.75 126. 52. 0.3889 13. 2994. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.76 149. 50. 0.4992 21. 765. 0.00 0.04 0.96 0.823 0.000 0.000 0.000
.77 149. 50. 0.4992 21. 765. 0.00 0.04 0.96 0.823 0.000 0.000 0.000
.78 152. 21. 0.2326 24. 765. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.79 152. 21. 0.2326 24. 765. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.80 153. 9. 0.2684 13. 594. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.81 153. 9. 0.2684 13. 594. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.82 168. 32. 0.2048 24. 2994. 1.00 0.00 0.00 0.694 0.000 0.029 0.000
.83 168. 32. 0.2048 24. 2994. 1.00 0.00 0.00 0.694 0.000 0.029 0.000
.84 181. 20. 0.2748 33. 765. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.85 181. 20. 0.2748 33. 765. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.86 182. 9. 0.3187 13. 594. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.87 182. 9. 0.3187 13. 594. 1.00 0.00 0.00 1.000 0.000 0.000 0.000
.88 184. 11. 0.8494 25. 2994. 1.00 0.00 0.00 0.789 0.000 0.000 0.000
.89 184. 11. 0.8494 25. 2994. 1.00 0.00 0.00 0.789 0.000 0.000 0.000
.90 185. 9. 0.1942 13. 594. 0.00 0.00 1.00 0.813 0.000 0.000 0.000
.91 185. 9. 0.1942 13. 594. 0.00 0.00 1.00 0.813 0.000 0.000 0.000
.92 188. 19. 0.3365 26. 594. 1.00 0.00 0.00 0.824 0.000 0.000 0.000
.93 188. 19. 0.2403 26. 594. 1.00 0.00 0.00 0.000 0.000 0.000 0.000
.94 196. 38. 0.3594 21. 684. 0.08 0.92 0.00 1.000 0.000 0.000 0.000
.95 196. 38. 0.3594 21. 684. 0.08 0.92 0.00 1.000 0.000 0.000 0.000
.96 197. 26. 0.4660 19. 2994. 1.00 0.00 0.00 0.820 0.000 0.000 0.000
.97 197. 26. 0.4660 19. 2994. 1.00 0.00 0.00 0.820 0.000 0.000 0.000
.98 198. 23. 0.3219 21. 684. 1.00 0.00 0.00 0.887 0.000 0.000 0.000
.99 198. 23. 0.3219 21. 684. 1.00 0.00 0.00 0.887 0.000 0.000 0.000
.100 199. 30. 0.3092 16. 1116. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.101 199. 30. 0.3092 16. 1116. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.102 200. 31. 0.3512 16. 1398. 0.00 0.22 0.78 0.890 0.000 0.000 0.000
.103 200. 31. 0.3512 16. 1398. 0.00 0.22 0.78 0.890 0.000 0.000 0.000
.104 208. 15. 0.2026 15. 451. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.105 208. 15. 0.2026 15. 451. 0.00 1.00 0.00 1.000 0.000 0.000 0.000
.106 224. 20. 0.4145 12. 1116. 1.00 0.00 0.00 0.887 0.000 0.000 0.000
.107 224. 20. 0.4145 12. 1116. 1.00 0.00 0.00 0.887 0.000 0.000 0.000
.108 228. 15. 0.3539 8. 451. 0.37 0.00 0.63 0.860 0.000 0.000 0.000
.109 228. 15. 0.3539 8. 451. 0.37 0.00 0.63 0.860 0.000 0.000 0.000
.110 230. 15. 0.1967 8. 451. 0.00 1.00 0.00 0.920 0.000 0.000 0.000
.111 230. 15. 0.1967 8. 451. 0.00 1.00 0.00 0.920 0.000 0.000 0.000
.112 233. 20. 0.2338 12. 1116. 0.65 0.19 0.16 1.000 0.000 0.000 0.000
.113 233. 20. 0.2338 12. 1116. 0.65 0.19 0.16 1.000 0.000 0.000 0.000
.114 19. 19. .1444 2. 1336. 1.00 0.00 0.00 .877 0.000 0.000 0.000
.115 19. 19. .1444 2. 1336. 1.00 0.00 0.00 .877 0.000 0.000 0.000
.116 72. 30. .3061 1. 317. 1.00 0.00 0.00 .903 0.000 0.000 0.000
.117 72. 30. .3061 1. 317. 1.00 0.00 0.00 .903 0.000 0.000 0.000
.118 80. 63. .2578 1. 1374. 1.00 0.00 0.00 .938 0.000 0.000 0.000
.119 80. 63. .2578 1. 1374. 1.00 0.00 0.00 .938 0.000 0.000 0.000
.120 85. 32. .3898 1. 907. 1.00 0.00 0.00 .839 0.000 0.000 0.000
.121 85. 32. .3898 1. 907. 1.00 0.00 0.00 .839 0.000 0.000 0.000
.122 86. 63. .1992 1. 5704. 1.00 0.00 0.00 .865 0.000 0.000 0.000
.123 86. 63. .1992 1. 5704. 1.00 0.00 0.00 .865 0.000 0.000 0.000
.124 88. 167. .3077 1. 1580. 1.00 0.00 0.00 .763 0.000 0.000 0.000
.125 88. 167. .3077 1. 1580. 1.00 0.00 0.00 .763 0.000 0.000 0.000
.126 89. 15. .0932 1. 368. 1.00 0.00 0.00 .949 0.000 0.000 0.000
.127 89. 15. .0932 1. 368. 1.00 0.00 0.00 .949 0.000 0.000 0.000
.128 104. 125. .2176 1. 2009. 1.00 0.00 0.00 .896 0.000 0.000 0.000
.129 104. 125. .2176 1. 2009. 1.00 0.00 0.00 .896 0.000 0.000 0.000
.130 138. 27. .1582 1. 656. 1.00 0.00 0.00 .898 0.000 0.000 0.000
.131 138. 27. .1582 1. 656. 1.00 0.00 0.00 .898 0.000 0.000 0.000
.132 143. 44. .1642 1. 1483. 1.00 0.00 0.00 .959 0.000 0.000 0.000
.133 143. 44. .1642 1. 1483. 1.00 0.00 0.00 .959 0.000 0.000 0.000
.134 144. 21. .1765 1. 971. 1.00 0.00 0.00 .862 0.000 0.000 0.000
.135 144. 21. .1765 1. 971. 1.00 0.00 0.00 .862 0.000 0.000 0.000
.136 145. 47. .2109 1. 971. 1.00 0.00 0.00 .918 0.000 0.000 0.000
.137 145. 47. .2109 1. 971. 1.00 0.00 0.00 .918 0.000 0.000 0.000
.138 148. 25. .3410 1. 717. 1.00 0.00 0.00 1.021 0.000 0.000 0.000
.139 148. 25. .3410 1. 717. 1.00 0.00 0.00 1.021 0.000 0.000 0.000
.140 154. 24. .1421 1. 656. 1.00 0.00 0.00 .959 0.000 0.000 0.000
.141 154. 24. .1421 1. 656. 1.00 0.00 0.00 .959 0.000 0.000 0.000
.142 201. 91. .1788 1. 780. 1.00 0.00 0.00 .891 0.000 0.000 0.000
.143 201. 91. .1788 1. 780. 1.00 0.00 0.00 .891 0.000 0.000 0.000
.144 231. 65. .1634 1. 5704. 1.00 0.00 0.00 .928 0.000 0.000 0.000
.145 231. 65. .1634 1. 5704. 1.00 0.00 0.00 .928 0.000 0.000 0.000
.146 235. 14. .0762 1. 127. 1.00 0.00 0.00 .906 0.000 0.000 0.000
.147 235. 14. .0762 1. 127. 1.00 0.00 0.00 .906 0.000 0.000 0.000
.148 238. 97. .1312 1. 569. 1.00 0.00 0.00 1.009 0.000 0.000 0.000
.149 238. 97. .1312 1. 569. 1.00 0.00 0.00 1.009 0.000 0.000 0.000
.150 251. 93. .2884 1. 1722. 1.00 0.00 0.00 .869 0.000 0.000 0.000
.151 251. 93. .2884 1. 1722. 1.00 0.00 0.00 .869 0.000 0.000 0.000
.152 252. 22. .1775 1. 489. 1.00 0.00 0.00 .998 0.000 0.000 0.000
.153 252. 22. .1775 1. 489. 1.00 0.00 0.00 .998 0.000 0.000 0.000
.154 256. 17. .1469 1. 605. 1.00 0.00 0.00 .803 0.000 0.000 0.000
.155 256. 17. .1469 1. 605. 1.00 0.00 0.00 .803 0.000 0.000 0.000
.156 268. 21. .2161 1. 652. 1.00 0.00 0.00 1.055 0.000 0.000 0.000
.157 268. 21. .2161 1. 652. 1.00 0.00 0.00 1.055 0.000 0.000 0.000
.158 274. 21. .1364 1. 2426. 1.00 0.00 0.00 .899 0.000 0.000 0.000
.159 274. 21. .1364 1. 2426. 1.00 0.00 0.00 .899 0.000 0.000 0.000
.160 276. 13. .2510 2. 385. 1.00 0.00 0.00 1.030 0.000 0.000 0.000
.161 276. 13. .2510 2. 385. 1.00 0.00 0.00 1.030 0.000 0.000 0.000
b1988 b1989 b1990 b1992 b1993 b1998 b1999 b2000 b20XX
. 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.1 0.000 1.006 0.890 0.000 0.923 0.000 0.000 0.000 0.894
.2 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.6 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.7 0.000 0.784 0.860 0.869 0.868 0.928 0.849 0.775 0.840
.8 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.9 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.10 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.11 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.12 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.13 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.14 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.15 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.16 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.17 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.18 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.19 1.062 1.071 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.20 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.21 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.22 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.23 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.24 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.25 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.26 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.27 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.28 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.29 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.30 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.31 0.993 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.32 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.33 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.34 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.35 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.36 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.37 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.38 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.39 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.40 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.41 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.42 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.43 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.44 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.45 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.46 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.47 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.48 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.49 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.50 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.51 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.52 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.53 0.000 0.000 0.000 0.809 0.876 0.938 0.834 0.890 0.000
.54 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.55 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.56 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.57 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.58 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.59 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.60 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.61 0.000 0.000 0.000 0.836 0.881 0.000 0.000 0.000 0.000
.62 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.63 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.64 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.65 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.66 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.67 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.68 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.69 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.70 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.71 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.72 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.73 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.74 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.75 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.76 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.77 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.78 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.79 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.80 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.81 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.82 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.83 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.84 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.85 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.86 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.87 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.88 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.89 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.90 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.91 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.92 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.93 0.000 0.000 0.000 0.000 0.000 0.922 0.000 0.790 0.000
.94 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.95 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.96 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.97 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.98 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.99 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.100 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.101 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.102 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.103 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.104 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.105 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.106 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.107 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.108 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.109 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.110 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.111 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.112 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.113 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.114 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.115 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.116 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.117 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.118 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.119 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.120 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.121 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.122 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.123 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.124 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.125 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.126 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.127 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.128 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.129 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.130 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.131 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.132 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.133 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.134 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.135 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.136 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.137 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.138 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.139 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.141 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.142 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.143 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.144 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.145 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.146 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.147 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.148 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.149 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.150 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.151 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.152 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.153 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.154 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.155 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.156 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.157 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.158 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.159 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.160 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.161 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
$group_size_calibrate$floor
[1] 0
$group_size_calibrate$intercept
NULL
$group_size_calibrate$beta
NULL
$group_size_calibrate$beta_mixed
NULL
$use_low_if_na
[1] FALSE
$io_sightings
[1] 0
$geometric_mean_group
[1] TRUE
$truncation_km
[1] 20
$beaufort_range
[1] 0 1 2 3 4 5 6
$abeam_sightings
[1] FALSE
$strata_overlap_handling
[1] "smallest"
$distance_types
[1] "S" "F" "N"
$distance_modes
[1] "P" "C"
$distance_on_off
[1] TRUEDefaults for the cohorts argument list are built up efficiently using the function load_cohort_settings() (see example code at bottom).
Details
The cohort_settings input accepts a list of any length. Each slot in that list can contain settings for a different cohort. Each cohort list can have any of the following named slots:
id:An informal identifier for this cohort, to help you keep track of which cohort is which. For example, settings for a cohort of large whales species could be named"big whales"; settings for small delphinids and phocoenids could be named"small_odontocetes"; settings for beaked whales could be named"beakers".species:A character vector of species codes to include in this cohort. IfNULL(the default), all species within the survey data will be included. Note that if you specify a vector, all species to be used in modeling a detection function for this cohort must be included here. For example, in Hawaii the bottlenose dolphin is analyzed as part of a multi-species pool along with the rough-toothed dolphin, Risso’s dolphin, and pygmy killer whale. However, the bottlenose dolphin has insular populations that need to be differentiated from their pelagic counterpart, which requires some special geostratum handling that behooves the preparation of a dedicated cohort for bottlenose dolphin. Even so, in thecohort_settingsobject for the bottlenose dolphin cohort, the species codes for the rough-toothed, Risso’s, and pygmy-killer-whale dolphins need to be provided in thisspeciesargument. Conversely, in thecohort_settingsobject that holds most other species, including the rough-toothed, Risso’s, and pygmy-killer-whale dolphins, the bottlenose dolphin’s code still needs to be included in itsspeciesargument.strata:A character vector of geostratum names. These must match the names listed in thestrataslot of your survey settings (see documentation forload_survey_settings()). IfNULL(the default), all geostrata in your survey settings will be used. This argument is an opportunity to subset the geostrata used for a cohort. For example, as discussed above, certain dolphin species in Hawaiian waters have unique geostrata that apply only to their insular/pelagic populations, and should only have a role in breaking effort segments in the bootstrap variance analysis for these specific species. Those dolphins should be given their own cohort, and those insular/pelagic geostrata should be included in thisstrataargument. Conversely, all other species should be placed in a separate cohort and only the generic geostrata should be included in thisstrataargument. See the WHICEAS example below for a demonstration.probable_species:IfTRUE(default isFALSE), the “probable” species identifications will be used in place of the “unidentified” categories.sighting_method:A coded integer which determines which sightings will be included based on how they were first seen. Allowable codes are0=any method,1=with 25X only,2=neither with 25x binoculars nor from the helicopter (i.e., naked eyes and 7x binoculars only). These codes match those used inABUND7/9.cue_range:Numeric vector of acceptable “observation cues” for sightings used in estimates of abundance. (0=this detail is missing in the data,1=associated birds,2=splashes,3=body of the marine mammal,4=associated vessel,5=?,6=blow / spout,7=associated helicopter). These codes match those used inABUND7/9.group_size_range:Minimum and maximum group sizes to be included in estimates of abundance. This is the overall group size, not the number of the given species that are present in a mixed-species group.group_size_calibrate:This input controls how group size estimates are adjusted, or “calibrated”, to correct for common biases observed in survey data over the years. This input is discussed in detail in the following subsection.use_low_if_na:If this setting isTRUE, and an observer(s) does not make a best estimate of group size, mean group size will be calculated from “low” estimates. This will be done only if no observer has a “best” estimate.io_sightings:A coded integer which specifies how sightings by the independent observer will be handled. Allowable codes, which are inherited from those used inABUND7/9, are"-1"=include independent observer sightings with all other sightings,"0"=ignore sightings by independent observer,"1"=use only sightings made by regular observer team WHEN an independent observer was present,"2"=include only sightings made by the independent observer. IO sightings are typically used only for making g(0) estimates, otherwise IO sightings are usually ignored (code ="0").geometric_mean_group:Thislogicalvariable specifies whether to use a geometric mean when calculating mean group size. Barlow et al. (1998) found that this gave slightly better performance than an arithmetic mean group size for calibrated estimates. Default isTRUE. If calibration is carried out, the geometric weighted mean is applied, using the inverse of the variances from the calibration routine as weights. When calibration is not carried out, the geometric unweighted mean is used. Note also that, although only the best estimates may be calibrated if specified by the settings above (never the highs and lows), the same kind of averaging function is applied to the highs and lows as is applied to the bests. If the best estimates are calibrated, the geometric weighted mean will be applied to the highs and lows, using the variance of the calibrated best estimates as weights. If the best estimates are not calibrated, the unweighted geometric mean is used to estimate the highs, lows, and bests. (This setting does not apply to subgroup analyses.)truncation_km:Specifies the maximum perpendicular distance for groups that could potentially be included for abundance estimation. This is not the stage at which you set the truncation distance for detection function modeling; it is simply a preliminary cutoff for sightings made at unrealiable detection distances. The default is set at 20 km, which is farther than all sightings on record during Pacific NOAA Fisheries surveys.beaufort_range:Vector of Beaufort sea states (integers) that are acceptable in estimating the detection function and density. Beaufort data with a decimal place will be rounded to the nearest integer to evaluate for inclusion.abeam_sightings:= IfTRUE, sightings that occur aft of beam (i.e., 90 degrees) are included in estimating the detection function and densities. Default isFALSE: all abeam sightings will be ignored.strata_overlap_handling:This setting informs how effort is split into segments when surveys cross stratum boundaries, and also which stratum name is assigned to each row of data. Note that the main impact of this setting is on how effort is broken into segments; the assigned stratum name is for display only and will not constrain options for including/excluding strata in analyses farther along in theLTabundRworkflow. The default option is"smallest", which means that effort will always be assigned to the smallest stratum when multiple strata overlap spatially. This is a safe option for surveys with “nested” strata (such as the Central North Pacific strata used by NOAA Fisheries; see below).

Another option is "each", in which each time a stratum boundary is crossed the current segment will end, and a new segment will begin. Also, stratum assignments for each row of effort will be shown as a concatenation of all the stratum layers overlapping at its position (e.g., “OtherCNP&HI_EEZ”). Note that the "each" option segmentizes effort in the exact same way as "smallest" when strata are fully nested; its main advantage is in dealing with partially overlapping strata (such as strata used in the Marianas Archipelago; see below).
The third option is "largest", in which the largest of overlapping strata is used to assign a stratum name to each row. (We are not sure what use case this would serve, but we offer it as an option for niche analyses.)

distance_types:A character vector of the full-range of effort types that will be included in detection function estimation and density estimation, and therefore considered in effort segmentizing. Accepted values are"S"(systematic/standard effort),"F"(fine-scale effort), and"N"(non-systematic/non-standard effort, in which systematic protocols are being used but effort is not occurring along design-based transect routes). The default values arec("S","F","N"). Note that it is possible to further subset the effort types specifically for density estimation in the line transect analysis function (see later chapter).distance_modes:The effort modes that will be included in detection function estimation and density estimation, and therefore considered in effort segmentizing. Accepted values are"P"(passing) and"C"(closing), and the default values arec("P","C").distance_on_off:The value(s) ofOnEffort(On Effort isTRUE, Off Effort isFALSE) that will be included in detection function estimation and density estimation, and therefore considered in effort segmentizing. Default isTRUEonly. (We don’t expectFALSEorc(TRUE,FALSE)to be used much, if at all, but we make this option available).
Group size calibration
{#calibration} Accurately estimating cetacean group sizes is difficult, especially for large schools of dolphins. For decades a great deal of effort has been devoted to developing statistical models that identify and correct for patterns of error in group size estimation.
LTabundR currently accommodates the two most common approaches to group size calibration: the “ABUND” method and the “Gerrodette” method. These approaches require different types of input data and settings. Note that, regardless of calibration approach, only the best estimates of size are calibrated; the high and low estimates are not.
Users control calibration settings using the input group_size_calibrate within the function load_cohort_settings(). That input expects a list() with a standard set of named slots, which are explained below.
The “ABUND” method
The “ABUND” approach was developed in Barlow et al. (1998) and subsequently refined in Gerrodette et al. (2002). It is the calibration method used by the Fortran software ABUND that has been used to process NOAA survey data since the 1990s, and is still in active use. The “ABUND” approach is observer-specific, in which calibration coefficients are determined for each individual observer. Most observers tend to underestimate group size and their estimates are adjusted up; a few tend to overestimate and their estimates are adjusted down. When an observer does not have bespoke coefficients, a generic adjustment (upwards, by dividing estimates by 0.8625) is used. These coefficients are species-agnostic.
The “ABUND” approach is the default used in load_cohort_settings(). The standard options for this approach, including the datasets of observer-specific calibration coefficients, are provided in the built-in dataset data(grp_ops_abund), which looks like this:
$method
[1] "ABUND"
$coefficients
obs n var min max w_best w_high w_low model_1 b0 b1 b1987 b1988
. 1. 67. 0.3486 8. 1259. 0.00 0.68 0.32 0.920 0.000 0.000 0.000 0.000
.1 1. 67. 0.3113 8. 1259. 0.00 0.68 0.32 0.000 0.000 0.000 0.000 0.000
.2 4. 28. 0.1967 9. 1140. 0.62 0.38 0.00 1.000 0.000 0.000 0.000 0.000
.3 4. 28. 0.1967 9. 1140. 0.62 0.38 0.00 1.000 0.000 0.000 0.000 0.000
.4 5. 57. 0.1841 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000 0.000
.5 5. 57. 0.1841 9. 1140. 1.00 0.00 0.00 1.000 0.000 0.000 0.000 0.000
b1989 b1990 b1992 b1993 b1998 b1999 b2000 b20XX
. 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.1 1.006 0.890 0.000 0.923 0.000 0.000 0.000 0.894
.2 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
.5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
$floor
[1] 0
$intercept
NULL
$beta
NULL
$beta_mixed
NULL
The $coefficients slot is a data.frame in which each row contains the calibration coefficients for a single observer.
The $floor slot indicates the calibration threshold or “floor”. Calibration is implemented only for groups whose raw estimate exceeds this threshold. The default is 0, meaning that calibration will be attempted for all group size estimates, regardless of the raw estimate.
Note that the final few slots are not needed for the “ABUND” method, so they are simply NULL.
The “Gerrodette” method
The “Gerrodette” approach was developed more recently in Gerrodette et al. (2019) and is being used increasingly often, especially for analyses focused on tropical dolphins (e.g., Barlow et al. 2026). This approach is observer-agnostic and species-specific, i.e., species are given unique calibration coefficients which are applied to all of their sightings, regardless of observer. To date, coefficients have been developed for only a handful of species (see example code at bottom of this chapter).
For each species, calibration is controlled by three parameters: a calibration threshold or “floor” (i.e., calibration is implemented only for groups whose raw estimate exceeds this threshold); a “beta” parameter; and an “intercept”. When the calibration floor is met, the following equation is used to implement calibration:
\[e^{\frac{ln(Estimate)-Beta}{Intercept}}\]
In R code, that equation is written like this:
To use the “Gerrodette” approach in LTabundR, a different list must be fed to the group_size_calibrate input within load_cohort_settings(). An example of that input list is provided as the built-in dataset data(grp_ops_gerrodette), which looks like this:
grp_ops_gerrodette
$method
[1] "Gerrodette"
$coefficients
species beta intercept floor
1 003 0.603 0.796 25
2 010 0.603 0.796 25
3 011 0.603 0.796 25
4 088 0.603 0.796 25
5 100 0.603 0.796 25
6 101 0.603 0.796 25
7 102 0.603 0.796 25
8 103 0.603 0.796 25
9 002 0.656 0.796 25
10 006 0.656 0.796 25
11 090 0.656 0.796 25
12 013 0.513 0.796 25
13 005 0.757 0.796 25
14 016 0.757 0.796 25
15 017 0.757 0.796 25
16 018 0.423 0.796 25
17 021 0.423 0.796 25
18 036 0.423 0.796 25
19 015 0.423 0.796 25
$floor
[1] 25
$intercept
[1] 0.796
$beta
[1] 0.626
$beta_mixed
NULLThe $coefficients slot is a data.frame indicating the beta, intercept, and floor parameters for individual species codes. The values in this dataset are based on those used in Gerrodette et al. (2019) and Barlow et al. (2026).
The $floor slot is a generic calibration floor to apply to all species. If a species is not included in the coefficients table, or if its floor parameter is NA, this generic floor will be used. Similarly, the $intercept and $beta slots are generic values that will be used in the same way. The generic beta is based on the mean of the species-specific beta values in the coefficients table.
The $beta_mixed slot can be used to specify a beta in the case of mixed-species groups. If this slot is NULL, then in mixed-species groups the beta for the most abundant species in the group will be used. When this slot has a value, it will be used instead.
Skipping calibration
Note that if you wish to process survey data without any calibration action whatsoever, change the group_size_calibrate input to NULL in load_cohort_settings().
To demonstrate how the two calibration approaches can be used and customized, example code is provided in the subsequent subsection. More details about group size processing can be found in the estimating group size subsection of the following chapter.
Again, note that only the best estimates of schol size will be calibrated; the high and low estimates are never calibrated.
Example code
Customize survey, but not cohorts
This code will process survey data such that effort segments are 5 km in length, with any effort falling outside of the provided geostrata relegated to a virtual geostratum named "out". Since a cohort is not specified, the default values will be used.
# Load built-in datasets
data(strata_cnp)
data(ships)
data(species_codes)
# Survey settings
survey <-
load_survey_settings(out_handling = 'stratum',
min_row_interval = 5,
max_row_interval = 1800,
max_row_km = 10,
km_filler = 1,
speed_filler = 10 * 1.852,
segment_method = 'equallength',
segment_target_km = 5,
segment_max_interval = .3,
segment_remainder_handling = c('append','segment'),
ship_list = ships,
species_codes = species_codes,
smear_angles = FALSE)
# Load settings
settings <- load_settings(strata = strata_cnp,
survey)Fully custom: WHICEAS case study
These are the settings we will use in the remainder of the tutorial.
Survey-wide settings
To emulate the analysis done in Bradford et al. (2021), we want to process effort with 150-km segments, relegating any remainder to its own segments. We also want to make sure to remove any survey data that falls outside of the geostrata, to ensure that detection functions are regionally specific. We will use the built-in tables for species codes, ship codes, and group size calibration coefficients.
data(species_codes)
data(ships)
survey <- load_survey_settings(
out_handling = 'remove',
min_row_interval = 2,
max_row_interval = 3600,
max_row_km = 100,
km_filler = 1,
speed_filler = 10 * 1.852,
segment_method = "equallength",
segment_target_km = 150,
segment_max_interval = 24,
segment_remainder_handling = c("segment"),
ship_list = ships,
species_codes = species_codes,
smear_angles = FALSE
)Species cohorts
Cohort 1: All species
At least one cohort needs to be specified in order to run process survey data, so this first cohort will serve as a ‘catch-all’ for species who do not need special handling. It does not hurt to include all species in this catch-all cohort – except perhaps by increasing the file-size of your processed data by a few kilobytes – even if you will be creating a separate, dedicated cohort for one of these species downstream. Having a catch-all cohort like this serves two purposes: (1) it avoids unforeseen complications if you will be modeling detection functions with multi-species pools, as mentioned above; and (2) it will simplify the code you will use to produce summary statistics of effort and sightings totals, since you will not need to pool together statistics from multiple cohorts.
To build this catch-all cohort, we will not specify any species so that all species in the data are included, and we will specify that only the generic geostrata should be used, so that species specific insular stock boundaries are ignored.
Here we show all possible inputs. Most of these match the built-in defaults. Those that do not (there are just 4) are noted with a commented asterisk.
# load calibration options
data(grp_ops_abund)
all_species <- load_cohort_settings(
id = "all", # *
species = NULL,
strata = c('WHICEAS', 'HI_EEZ', 'OtherCNP'), # *
probable_species = FALSE,
sighting_method = 0,
cue_range = 0:7,
group_size_range = c(0, 10000),
group_size_calibrate = grp_ops_abund,
use_low_if_na = TRUE, # *
io_sightings = 0,
geometric_mean_group = TRUE,
truncation_km = 7.5, # *
beaufort_range = 0:6,
abeam_sightings = FALSE,
strata_overlap_handling = c("smallest"),
distance_types = c('S','F','N'),
distance_modes = c('P','C'),
distance_on_off = TRUE
)Cohort 2: Bottlenose dolphin
As mentioned above, bottlenose dolphins are going to be analyzed as part of a multi-species pool that includes the rough-toothed dolphin, Risso’s dolphin, and pygmy killer whale. Because those species’ codes will be needed to model the detection function used in bottlenose dolphin density/abundance estimation, those species codes will be included in this cohort’s settings.
Also mentioned above: Hawaii has a pelagic population of bottlenose dolphins as well as several distinct insular stocks. In this case study, we are interested in estimating only the abundance of the pelagic population, which means we will need to include geostrata of the insular stock boundaries in order to make sure the effort and sightings within those insular areas are ignored. That means we will specify the generic geostrata ("WHICEAS", "HI_EEZ", and "Other_CNP"), as well as the geostrata for the insular stocks.
We can spell out as many any inputs that we wish, but here will only show the inputs that are non-default and/or different from Cohort 1 above.
bottlenose <- load_cohort_settings(
id = "bottlenose",
species = c('015', '018', '021', '032'),
strata = c('WHICEAS', 'HI_EEZ', 'OtherCNP',
'Bottlenose_BI', 'Bottlenose_OUFI', 'Bottlenose_KaNi'),
use_low_if_na = TRUE,
truncation_km = 7.5)Cohort 3: Pantropical spotted dolphin
Similar to the bottlenose dolphin above, spotted dolphins in Hawaiian waters belong to a pelagic stock as well as an insular stock. We will be estimating density/abundance for only the pelagic stock here, but we need to include the geostrata for the insular stocks in order to ignore their effort and sightings.
Mixed calibration methods
Say you wish to you the “ABUND” calibration method for most species and the “Gerrodette” method for a select few, since many species do not yet have species-specific coefficients under the “Gerrodette” method. The way forward depends on how you want to handle detection-function fitting and mixed-species groups for the species you wish to analyze using the “Gerrodette” method.
Remember that a cohort needs to include all species whose sightings will be pooled to fit a detection function. If you are not comfortable using the generic coefficient values for non-target species within that pool, then it gets complicated. Similarly, if your target species is sometimes associated with other species in mixed groups, and you are not comfortable using the generic coefficient values for those non-target species when they are the most abundant species in the group, it also gets complicated.
The simplest way forward is probably to give yourself as many options as possible during subsequent stages of analysis, which could be achieved by creating two near-identical cohorts, one using the “ABUND” approach and another using the “Gerrodette” approach. You could then decide which cohort to use for which species during density estimation. And, if you find that you need to combine “ABUND”- and “Gerrodette”-derived estimates in complicated ways, you will be able to draw upon and combine sightings data from the two cohorts however you need.
data("grp_ops_abund")
data("grp_ops_gerrodette")
strata <- c('WHICEAS', 'HI_EEZ', 'OtherCNP')
abund <- load_cohort_settings(
id = "abund",
species = NULL,
strata = strata,
group_size_calibrate = grp_ops_abund)
gerrodette <- load_cohort_settings(
id = "gerodette",
species = NULL,
strata = strata,
group_size_calibrate = grp_ops_gerrodette)
settings <- load_settings(strata = strata_cnp,
survey = survey,
cohorts = list(abund,
gerrodette))