vectorsurvR

VectorSurv

VectorSurv provides public health agencies the tools to manage, visualize and analyze the spread of vector-borne diseases and make informed decisions to protect public health.

The ‘vectorsurvR’ package is intended for users of VectorSurv, a public health vector borne disease surveillance system. The package contains functions tailored to data retrieved from the VectorSurv database. A valid VectorSurv username and password is required for data retrieval. Those without agency access can use sample datasets in place of real data. This documentation covers the functions in ‘vectorsurvR’ and introduces users to methods of R programming. The purpose of this documentation is to introduce and guide users with limited programming experience.

To install package from CRAN (recommended) run:

install.packages("vectorsurvR")

Or install the developing version from our github run:

devtools::install_github("UCD-DART/vectorsurvR")

Then load the package for use.

Data Retrieval

getToken()

Description

getToken() returns a token needed to run getArthroCollections() and getPools(). The function prompts users for their Gateway credentials. If credentials are accepted, the function returns a user token needed to obtain data and a list of agencies the user has access to.

Usage

getToken()

Arguments


token = getToken()

getArthroCollections(…)

Description

getArthroCollections(...) obtains collections data for a range of years. It prompts the user for their Gateway username and password before retrieving the associated data. You can only retrieve data from agencies linked to your Gateway account.

Usage

getArthroCollections(token,start_year, end_year, arthropod, agency_ids = NULL)

Arguments

#Example
collections = getArthroCollections(token, 2022,2023, 'mosquito',55)

getPools(…)

Description

getPools() similar to getArthroCollections() obtains pools on a year range (start_year, end_year) after supplying a valid token retrieved from getToken(). getPools() can retrieve data for both mosquito and tick pools.

Usage

getPools(token, start_year, end_year, arthropod, agency_ids = NULL) Arguments

#Example
pools = getPools(token, 2022,2023, 'mosquito')

Write Data to file

You can save retrieved data as a .csv file in your current directory using write.csv(). That same data can be retrieved using read.csv(). Writing data to a .csv can make the rendering process more efficient when generating reports in R. We recommend that you write the data pulled from our API into a csv and then load that data when generating reports.

#creates a file named "collections_18_23.csv" in your current directory
write.csv(x = collections, file = "collections_22_23.csv")

#loads collections data
collections = read.csv("collections_22_23.csv")

Sample Data

The ‘vectorsurvR’ package comes with two sample datasets which can be used in place of real collections and pools data. sample_collections and sample_pools will be used for example purposes in this document.

Data Processing

Data can be subset to contain columns of interest. Subsetting can also be used to reorder the columns in a data frame.Do not subset collections or pools data before inputting them into VectorSurv calculator functions to avoid losing essential columns. It is recommended to subset after calculations are complete and before inputting into a table generator. Remember, subsetting, filtering, grouping and summarising will not change the value of the data unless it is reassigned to the same variable name. We recommend creating a new variable for processed data.

Subsetting

#Subset using column names or index number

colnames(sample_collections) #displays column names and associated index
#>  [1] "agency_code"          "collection_id"        "collection_date"     
#>  [4] "surv_year"            "species_display_name" "sex_type"            
#>  [7] "trap_acronym"         "trap_problem_bit"     "num_trap"            
#> [10] "trap_nights"          "num_count"            "site_code"           
#> [13] "agency_id"            "county"               "collection_longitude"
#> [16] "collection_latitude"  "spatial_feature"      "multiple_features"

#Subseting by name
head(sample_collections[c("collection_date", "species_display_name", "num_count")])
#> # A tibble: 6 × 3
#>   collection_date species_display_name num_count
#>   <date>          <chr>                    <int>
#> 1 2015-01-22      Cx pipiens                   1
#> 2 2015-01-10      Cx stigmatosoma              2
#> 3 2015-01-02      Cs inornata                  1
#> 4 2015-01-02      Cs inornata                 22
#> 5 2015-01-29      Cs inornata                 38
#> 6 2015-01-29      Cs incidens                  2

#by index
head(sample_collections[c(2, 4, 10)])
#> # A tibble: 6 × 3
#>   collection_id surv_year trap_nights
#>           <int>     <dbl>       <int>
#> 1       1374818      2015           6
#> 2       1368247      2015           8
#> 3       1366915      2015          15
#> 4       1366929      2015          15
#> 5       1377676      2015           7
#> 6       1377690      2015           7

#to save a subset
collections_subset = sample_collections[c(2, 4, 10)]

Filtering and subsetting in ‘dplyr’

‘dplyr’ is a powerful package for filtering and sub-setting data. It follows logic similar to SQL queries.

For more information on data manipulation using ‘dplyr’ Click Here

‘dplyr’ utilizes the pipe operator %>% to send data into functions. The head() function returns the first few rows of data, specifying head(1) tells the software to return only the first row for viewing purposes. Remove head() to see all the data or reassign the data to a new variable.

#NOTE: library was loaded above
library(dplyr)

#Subsetting columns with 'select()'
sample_collections %>%
  dplyr::select(collection_date, species_display_name, num_count) %>% head()
#> # A tibble: 6 × 3
#>   collection_date species_display_name num_count
#>   <date>          <chr>                    <int>
#> 1 2015-01-22      Cx pipiens                   1
#> 2 2015-01-10      Cx stigmatosoma              2
#> 3 2015-01-02      Cs inornata                  1
#> 4 2015-01-02      Cs inornata                 22
#> 5 2015-01-29      Cs inornata                 38
#> 6 2015-01-29      Cs incidens                  2

Below are more examples for filtering data.


#filtering with dplyr 'filter'
collections_pip = sample_collections %>%
  filter(species_display_name == "Cx pipiens")

#filtering multiple arguments using '%in%'
collections_pip_tar = sample_collections %>%
  filter(species_display_name %in% c("Cx pipiens", "Cx tarsalis"))

Grouping and Summarising

In addition to filtering and sub-setting, data can be group by variables and summarized.

#groups by species and collection date and sums the number counted

sample_collections %>%
  group_by(collection_date, species_display_name) %>%
  summarise(sum_count = sum(num_count, na.rm = T)) %>%
  head()
#> `summarise()` has grouped output by 'collection_date'. You can override using
#> the `.groups` argument.
#> # A tibble: 6 × 3
#> # Groups:   collection_date [2]
#>   collection_date species_display_name sum_count
#>   <date>          <chr>                    <int>
#> 1 2015-01-02      Cs incidens                 15
#> 2 2015-01-02      Cs inornata                 36
#> 3 2015-01-02      Cx pipiens                   1
#> 4 2015-01-02      Cx tarsalis                  3
#> 5 2015-01-10      An freeborni                 4
#> 6 2015-01-10      Cs inornata                108


#groups by species and collection date and takes the average the number counted

sample_collections %>%
  group_by(collection_date, species_display_name) %>%
  summarise(avg_count = mean(num_count, na.rm = T)) %>%
  head()
#> `summarise()` has grouped output by 'collection_date'. You can override using
#> the `.groups` argument.
#> # A tibble: 6 × 3
#> # Groups:   collection_date [2]
#>   collection_date species_display_name avg_count
#>   <date>          <chr>                    <dbl>
#> 1 2015-01-02      Cs incidens                5  
#> 2 2015-01-02      Cs inornata                4.5
#> 3 2015-01-02      Cx pipiens                 1  
#> 4 2015-01-02      Cx tarsalis                1.5
#> 5 2015-01-10      An freeborni               4  
#> 6 2015-01-10      Cs inornata               36

Pivoting

Data can be manipulated into long and wide (spreadsheet) forms using pivot_wider() and pivot_longer() from the ‘tidyr’ package. By default data from the API is in long form. Here we pivot on species and sex condition names using num_count as values. The end result is data with num_count values in the columns named species_sex. For more on pivoting see ??pivot_longer() and ??pivot_wider().

library(tidyr)

collections_wide = pivot_wider(
  sample_collections,
  names_from = c("species_display_name","sex_type"),
  values_from = "num_count"
)
#> Warning: Values from `num_count` are not uniquely identified; output will contain
#> list-cols.
#> • Use `values_fn = list` to suppress this warning.
#> • Use `values_fn = {summary_fun}` to summarise duplicates.
#> • Use the following dplyr code to identify duplicates.
#>   {data} |>
#>   dplyr::summarise(n = dplyr::n(), .by = c(agency_code, collection_id,
#>   collection_date, surv_year, trap_acronym, trap_problem_bit, num_trap,
#>   trap_nights, site_code, agency_id, county, collection_longitude,
#>   collection_latitude, spatial_feature, multiple_features,
#>   species_display_name, sex_type)) |>
#>   dplyr::filter(n > 1L)

Calculations

Abundance

getAbundance(…)

Description

getAbundance() uses any amount of mosquito collections data to calculate the abundance for the specified parameters. The function calculates using the methods of the Gateway Abundance calculator.

Usage

getAbundance(collections,interval, species = NULL, trap = NULL, separate_by = NULL)

Arguments

getAbundance(
  sample_collections,
  interval = "Biweek",
  species = c("Cx tarsalis", "Cx pipiens"),
  trap = "CO2",
  separate_by = NULL
)
#>    Agency Year Biweek   County                 Species Count TrapEvents Trap
#> 1  AGENCY 2021      7 County 1             Cx tarsalis     2          3  CO2
#> 2  AGENCY 2021      8 County 1 Cx pipiens, Cx tarsalis    50          7  CO2
#> 3  AGENCY 2021     10 County 1 Cx pipiens, Cx tarsalis    79          6  CO2
#> 4  AGENCY 2021     11 County 1 Cx pipiens, Cx tarsalis    41          9  CO2
#> 5  AGENCY 2021     12 County 1 Cx pipiens, Cx tarsalis   549         14  CO2
#> 6  AGENCY 2021     13 County 1             Cx tarsalis  3573          7  CO2
#> 7  AGENCY 2021     14 County 1 Cx pipiens, Cx tarsalis   900          8  CO2
#> 8  AGENCY 2021     15 County 1 Cx pipiens, Cx tarsalis    70          6  CO2
#> 9  AGENCY 2021     16 County 1 Cx pipiens, Cx tarsalis    80         11  CO2
#> 10 AGENCY 2021     17 County 1 Cx pipiens, Cx tarsalis   371          7  CO2
#> 11 AGENCY 2021     18 County 1             Cx tarsalis     8          4  CO2
#> 12 AGENCY 2021     19 County 1             Cx tarsalis    29          6  CO2
#> 13 AGENCY 2021     20 County 1              Cx pipiens    57          9  CO2
#> 14 AGENCY 2021     21 County 1 Cx pipiens, Cx tarsalis    14          3  CO2
#> 15 AGENCY 2020      9 County 1              Cx pipiens     1          3  CO2
#> 16 AGENCY 2020     10 County 1              Cx pipiens     4          7  CO2
#> 17 AGENCY 2020     11 County 1 Cx pipiens, Cx tarsalis    27         11  CO2
#> 18 AGENCY 2020     12 County 1             Cx tarsalis     1          9  CO2
#> 19 AGENCY 2020     13 County 1              Cx pipiens    81          5  CO2
#> 20 AGENCY 2020     14 County 1 Cx pipiens, Cx tarsalis  1731          9  CO2
#> 21 AGENCY 2020     15 County 1             Cx tarsalis    63          6  CO2
#> 22 AGENCY 2020     16 County 1 Cx pipiens, Cx tarsalis   274          8  CO2
#> 23 AGENCY 2020     17 County 1 Cx pipiens, Cx tarsalis    17          6  CO2
#> 24 AGENCY 2020     18 County 1 Cx pipiens, Cx tarsalis   503          4  CO2
#> 25 AGENCY 2020     19 County 1 Cx pipiens, Cx tarsalis    73         14  CO2
#> 26 AGENCY 2020     20 County 1             Cx tarsalis     1          5  CO2
#> 27 AGENCY 2020     21 County 1              Cx pipiens   145          7  CO2
#> 28 AGENCY 2020     22 County 1              Cx pipiens    20          7  CO2
#> 29 AGENCY 2020     23 County 1 Cx pipiens, Cx tarsalis     8          4  CO2
#> 30 AGENCY 2019      9 County 1 Cx pipiens, Cx tarsalis   116         10  CO2
#> 31 AGENCY 2019     10 County 1              Cx pipiens    15          5  CO2
#> 32 AGENCY 2019     11 County 1 Cx pipiens, Cx tarsalis   597         13  CO2
#> 33 AGENCY 2019     12 County 1              Cx pipiens     2          4  CO2
#> 34 AGENCY 2019     13 County 1             Cx tarsalis   596          5  CO2
#> 35 AGENCY 2019     14 County 1             Cx tarsalis    60          4  CO2
#> 36 AGENCY 2019     15 County 1 Cx pipiens, Cx tarsalis  4887         10  CO2
#> 37 AGENCY 2019     16 County 1 Cx pipiens, Cx tarsalis  2192         15  CO2
#> 38 AGENCY 2019     17 County 1 Cx pipiens, Cx tarsalis  2396          6  CO2
#> 39 AGENCY 2019     18 County 1 Cx pipiens, Cx tarsalis  6097         11  CO2
#> 40 AGENCY 2019     19 County 1 Cx pipiens, Cx tarsalis   136          6  CO2
#> 41 AGENCY 2019     21 County 1 Cx pipiens, Cx tarsalis   101          8  CO2
#> 42 AGENCY 2018     10 County 1 Cx pipiens, Cx tarsalis   346          7  CO2
#> 43 AGENCY 2018     11 County 1 Cx pipiens, Cx tarsalis   213         19  CO2
#> 44 AGENCY 2018     12 County 1              Cx pipiens     7         10  CO2
#> 45 AGENCY 2018     13 County 1 Cx pipiens, Cx tarsalis  3024         10  CO2
#> 46 AGENCY 2018     14 County 1 Cx pipiens, Cx tarsalis   231         10  CO2
#> 47 AGENCY 2018     15 County 1 Cx pipiens, Cx tarsalis  1046          7  CO2
#> 48 AGENCY 2018     16 County 1             Cx tarsalis  1649          5  CO2
#> 49 AGENCY 2018     17 County 1 Cx pipiens, Cx tarsalis   126          8  CO2
#> 50 AGENCY 2018     18 County 1             Cx tarsalis   258          7  CO2
#> 51 AGENCY 2018     19 County 1 Cx pipiens, Cx tarsalis   521         10  CO2
#> 52 AGENCY 2018     20 County 1 Cx pipiens, Cx tarsalis    64         10  CO2
#> 53 AGENCY 2018     21 County 1 Cx pipiens, Cx tarsalis    35          7  CO2
#> 54 AGENCY 2017      4 County 1             Cx tarsalis     2          1  CO2
#> 55 AGENCY 2017      9 County 1              Cx pipiens     8         11  CO2
#> 56 AGENCY 2017     10 County 1 Cx pipiens, Cx tarsalis    67         13  CO2
#> 57 AGENCY 2017     11 County 1 Cx pipiens, Cx tarsalis   852          8  CO2
#> 58 AGENCY 2017     12 County 1 Cx pipiens, Cx tarsalis   311         11  CO2
#> 59 AGENCY 2017     13 County 1 Cx pipiens, Cx tarsalis   400          9  CO2
#> 60 AGENCY 2017     14 County 1 Cx pipiens, Cx tarsalis  1269         10  CO2
#> 61 AGENCY 2017     15 County 1 Cx pipiens, Cx tarsalis  2020         16  CO2
#> 62 AGENCY 2017     16 County 1 Cx pipiens, Cx tarsalis   801         10  CO2
#> 63 AGENCY 2017     17 County 1 Cx pipiens, Cx tarsalis  2507         13  CO2
#> 64 AGENCY 2017     18 County 1 Cx pipiens, Cx tarsalis  2108         12  CO2
#> 65 AGENCY 2017     19 County 1 Cx pipiens, Cx tarsalis    52         11  CO2
#> 66 AGENCY 2017     20 County 1 Cx pipiens, Cx tarsalis   141         11  CO2
#> 67 AGENCY 2017     21 County 1 Cx pipiens, Cx tarsalis    60         14  CO2
#> 68 AGENCY 2016      8 County 1 Cx pipiens, Cx tarsalis     3          7  CO2
#> 69 AGENCY 2016      9 County 1 Cx pipiens, Cx tarsalis    46         13  CO2
#> 70 AGENCY 2016     10 County 1 Cx pipiens, Cx tarsalis   126          8  CO2
#> 71 AGENCY 2016     11 County 1 Cx pipiens, Cx tarsalis    19          9  CO2
#> 72 AGENCY 2016     12 County 1 Cx pipiens, Cx tarsalis   254          7  CO2
#> 73 AGENCY 2016     13 County 1 Cx pipiens, Cx tarsalis   741         12  CO2
#> 74 AGENCY 2016     14 County 1 Cx pipiens, Cx tarsalis  2459         13  CO2
#> 75 AGENCY 2016     15 County 1 Cx pipiens, Cx tarsalis  1704         10  CO2
#> 76 AGENCY 2016     16 County 1 Cx pipiens, Cx tarsalis  3327         10  CO2
#> 77 AGENCY 2016     17 County 1 Cx pipiens, Cx tarsalis  2740         15  CO2
#> 78 AGENCY 2016     18 County 1 Cx pipiens, Cx tarsalis    62         11  CO2
#> 79 AGENCY 2016     19 County 1 Cx pipiens, Cx tarsalis    29          7  CO2
#> 80 AGENCY 2016     20 County 1 Cx pipiens, Cx tarsalis    20         16  CO2
#> 81 AGENCY 2016     21 County 1 Cx pipiens, Cx tarsalis   111          6  CO2
#> 82 AGENCY 2015      8 County 1              Cx pipiens     3          4  CO2
#> 83 AGENCY 2015      9 County 1 Cx pipiens, Cx tarsalis    59         12  CO2
#> 84 AGENCY 2015     10 County 1 Cx pipiens, Cx tarsalis   164         15  CO2
#> 85 AGENCY 2015     11 County 1 Cx pipiens, Cx tarsalis   140          5  CO2
#> 86 AGENCY 2015     12 County 1 Cx pipiens, Cx tarsalis   356         11  CO2
#> 87 AGENCY 2015     13 County 1 Cx pipiens, Cx tarsalis   535         17  CO2
#> 88 AGENCY 2015     14 County 1 Cx pipiens, Cx tarsalis   664         10  CO2
#> 89 AGENCY 2015     15 County 1 Cx pipiens, Cx tarsalis  1427         10  CO2
#> 90 AGENCY 2015     16 County 1 Cx pipiens, Cx tarsalis  4855         14  CO2
#> 91 AGENCY 2015     17 County 1 Cx pipiens, Cx tarsalis   118          8  CO2
#> 92 AGENCY 2015     18 County 1              Cx pipiens     9          6  CO2
#> 93 AGENCY 2015     19 County 1 Cx pipiens, Cx tarsalis   223         15  CO2
#> 94 AGENCY 2015     20 County 1 Cx pipiens, Cx tarsalis   107         12  CO2
#> 95 AGENCY 2015     21 County 1 Cx pipiens, Cx tarsalis    76          4  CO2
#>    Abundance
#> 1       0.67
#> 2       7.14
#> 3      13.17
#> 4       4.56
#> 5      39.21
#> 6     510.43
#> 7     112.50
#> 8      11.67
#> 9       7.27
#> 10     53.00
#> 11      2.00
#> 12      4.83
#> 13      6.33
#> 14      4.67
#> 15      0.33
#> 16      0.57
#> 17      2.45
#> 18      0.11
#> 19     16.20
#> 20    192.33
#> 21     10.50
#> 22     34.25
#> 23      2.83
#> 24    125.75
#> 25      5.21
#> 26      0.20
#> 27     20.71
#> 28      2.86
#> 29      2.00
#> 30     11.60
#> 31      3.00
#> 32     45.92
#> 33      0.50
#> 34    119.20
#> 35     15.00
#> 36    488.70
#> 37    146.13
#> 38    399.33
#> 39    554.27
#> 40     22.67
#> 41     12.62
#> 42     49.43
#> 43     11.21
#> 44      0.70
#> 45    302.40
#> 46     23.10
#> 47    149.43
#> 48    329.80
#> 49     15.75
#> 50     36.86
#> 51     52.10
#> 52      6.40
#> 53      5.00
#> 54      2.00
#> 55      0.73
#> 56      5.15
#> 57    106.50
#> 58     28.27
#> 59     44.44
#> 60    126.90
#> 61    126.25
#> 62     80.10
#> 63    192.85
#> 64    175.67
#> 65      4.73
#> 66     12.82
#> 67      4.29
#> 68      0.43
#> 69      3.54
#> 70     15.75
#> 71      2.11
#> 72     36.29
#> 73     61.75
#> 74    189.15
#> 75    170.40
#> 76    332.70
#> 77    182.67
#> 78      5.64
#> 79      4.14
#> 80      1.25
#> 81     18.50
#> 82      0.75
#> 83      4.92
#> 84     10.93
#> 85     28.00
#> 86     32.36
#> 87     31.47
#> 88     66.40
#> 89    142.70
#> 90    346.79
#> 91     14.75
#> 92      1.50
#> 93     14.87
#> 94      8.92
#> 95     19.00

Abundance Anomaly (comparison to 5 year average)

getAbundanceAnomaly()

Description

getAbundanceAnomaly(...) requires at least five years prior to the target_year of mosquito collections data to calculate for the specified parameters. The function uses the methods of the Gateway Abundance Anomaly calculator, and will not work if there is fewer than five years of data present.

Usage

getAbundanceAnomaly(collections,interval,target_year, species = NULL, trap = NULL, separate_by = NULL)

Arguments


getAbundanceAnomaly(sample_collections,
                    interval = "Biweek",
                    target_year = 2020,
                    species = c("Cx tarsalis", "Cx pipiens"),
                    trap = "CO2",
                    separate_by  = "species") 
#> Warning in getAbundanceAnomaly(sample_collections, interval = "Biweek", : There
#> are years greater than the target year in the data. These years will not be
#> included in the anomaly calculation.
#>    Agency Year Biweek   County     Species Count TrapEvents Trap Abundance
#> 1  AGENCY 2020      9 County 1  Cx pipiens     1          3  CO2      0.33
#> 2  AGENCY 2020     10 County 1  Cx pipiens     4          7  CO2      0.57
#> 3  AGENCY 2020     11 County 1  Cx pipiens    18         11  CO2      1.64
#> 4  AGENCY 2020     11 County 1 Cx tarsalis     9         11  CO2      0.82
#> 5  AGENCY 2020     12 County 1 Cx tarsalis     1          9  CO2      0.11
#> 6  AGENCY 2020     13 County 1  Cx pipiens    81          5  CO2     16.20
#> 7  AGENCY 2020     14 County 1  Cx pipiens    14          9  CO2      1.56
#> 8  AGENCY 2020     14 County 1 Cx tarsalis  1717          9  CO2    190.78
#> 9  AGENCY 2020     15 County 1 Cx tarsalis    63          6  CO2     10.50
#> 10 AGENCY 2020     16 County 1  Cx pipiens    67          8  CO2      8.38
#> 11 AGENCY 2020     16 County 1 Cx tarsalis   207          8  CO2     25.88
#> 12 AGENCY 2020     17 County 1  Cx pipiens     2          6  CO2      0.33
#> 13 AGENCY 2020     17 County 1 Cx tarsalis    15          6  CO2      2.50
#> 14 AGENCY 2020     18 County 1  Cx pipiens     4          4  CO2      1.00
#> 15 AGENCY 2020     18 County 1 Cx tarsalis   499          4  CO2    124.75
#> 16 AGENCY 2020     19 County 1  Cx pipiens    15         14  CO2      1.07
#> 17 AGENCY 2020     19 County 1 Cx tarsalis    58         14  CO2      4.14
#> 18 AGENCY 2020     20 County 1 Cx tarsalis     1          5  CO2      0.20
#> 19 AGENCY 2020     21 County 1  Cx pipiens   145          7  CO2     20.71
#> 20 AGENCY 2020     22 County 1  Cx pipiens    20          7  CO2      2.86
#> 21 AGENCY 2020     23 County 1  Cx pipiens     3          4  CO2      0.75
#> 22 AGENCY 2020     23 County 1 Cx tarsalis     5          4  CO2      1.25
#>    FiveYearAvg           YearsInAverage  Delta
#> 1       1.3300      2015,2016,2017,2019 -75.19
#> 2       2.4300 2015,2016,2017,2018,2019 -76.54
#> 3      15.7200 2015,2016,2017,2018,2019 -89.57
#> 4      23.0280 2015,2016,2017,2018,2019 -96.44
#> 5      15.5600           2015,2016,2017 -99.29
#> 6      15.7175      2015,2016,2017,2018   3.07
#> 7      45.4125      2015,2016,2017,2018 -96.56
#> 8      47.7800 2015,2016,2017,2018,2019 299.29
#> 9     189.7940 2015,2016,2017,2018,2019 -94.47
#> 10    106.2950      2015,2016,2017,2019 -92.12
#> 11    162.0680 2015,2016,2017,2018,2019 -84.03
#> 12     74.4520 2015,2016,2017,2018,2019 -99.56
#> 13     86.6160 2015,2016,2017,2018,2019 -97.11
#> 14     47.5250      2015,2016,2017,2019 -97.90
#> 15    145.9575      2016,2017,2018,2019 -14.53
#> 16      9.2560 2015,2016,2017,2018,2019 -88.44
#> 17     10.4440 2015,2016,2017,2018,2019 -60.36
#> 18      3.5900      2015,2016,2017,2018 -94.43
#> 19      8.4920 2015,2016,2017,2018,2019 143.88
#> 20          NA                     <NA>     NA
#> 21          NA                     <NA>     NA
#> 22          NA                     <NA>     NA

Infection Rate

getInfectionRate()

Description

getInfectionRate(...) estimates the arbovirus infection rate based on testing pools of mosquitoes.

Usage

getInfectionRate(pools,interval, target_year, target_disease,pt_estimate, scale = 1000, species = c(NULL), trap = c(NULL))

Arguments

getInfectionRate(sample_pools, 
                      interval = "Week",
                      target_disease = "WNV",
                      pt_estimate = "mle", 
                      scale = 1000,
                      species = c("Cx pipiens", "Cx tarsalis"),
                      trap = c("CO2"),
                      separate_by="species")
#> # A tibble: 275 × 9
#> # Groups:   Year, Week [160]
#>     Year  Week Agency Species     Trap  Disease InfectionRate LowerCI UpperCI
#>    <dbl> <dbl> <chr>  <chr>       <chr> <chr>           <dbl>   <dbl>   <dbl>
#>  1  2015    18 AGENCY Cx pipiens  CO2   WNV                 0       0       0
#>  2  2015    18 AGENCY Cx tarsalis CO2   WNV                 0       0       0
#>  3  2015    19 AGENCY Cx pipiens  CO2   WNV                 0       0       0
#>  4  2015    20 AGENCY Cx tarsalis CO2   WNV                 0       0       0
#>  5  2015    21 AGENCY Cx pipiens  CO2   WNV                 0       0       0
#>  6  2015    21 AGENCY Cx tarsalis CO2   WNV                 0       0       0
#>  7  2015    22 AGENCY Cx pipiens  CO2   WNV                 0       0       0
#>  8  2015    22 AGENCY Cx tarsalis CO2   WNV                 0       0       0
#>  9  2015    23 AGENCY Cx pipiens  CO2   WNV                 0       0       0
#> 10  2015    23 AGENCY Cx tarsalis CO2   WNV                 0       0       0
#> # ℹ 265 more rows

Vector Index

getVectorIndex()

Description

getVectorIndex(...) The vector index is the relative abundance of infected mosquitoes and is a way to quickly estimate the risk of arbovirus transmission in an area. Vector index is the product of the abundance and infection rate for a given time interval: \(Vector Index = Infection Rate * Abundance\)

Usage

getVectorIndex(collections, pools, interval, , target_disease, pt_estimate,species=NULL, trap = NULL,)

Arguments - collections: collections data retrieved from getArthroCollections(...) - pools: Pools data retrieved from getPools(...)

Note: Years from pools and collections data must overlap

getVectorIndex(sample_collections, 
               sample_pools,
               interval = "Biweek",
               target_disease = "WNV",
               pt_estimate = "bc-mle", 
              
               separate_by = c("agency","species")) 
#> # A tibble: 1,114 × 13
#>     Year Biweek Agency Species         Count Trap   TrapEvents Abundance Disease
#>    <dbl>  <dbl> <chr>  <chr>           <int> <chr>       <int>     <dbl> <chr>  
#>  1  2015      1 AGENCY An freeborni        4 " MMT…        122      0.03 WNV    
#>  2  2015      1 AGENCY Cs incidens         1 " MMT…        122      0.01 WNV    
#>  3  2015      1 AGENCY Cs inornata       117 " MMT…        122      0.96 WNV    
#>  4  2015      1 AGENCY Cx pipiens         40 " MMT…        122      0.33 WNV    
#>  5  2015      1 AGENCY Cx stigmatosoma     2 " MMT…        122      0.02 WNV    
#>  6  2015      1 AGENCY Cx tarsalis         1 " MMT…        122      0.01 WNV    
#>  7  2015      2 AGENCY Cs incidens        10 " MMT…        110      0.09 WNV    
#>  8  2015      2 AGENCY Cs inornata        92 " MMT…        110      0.84 WNV    
#>  9  2015      2 AGENCY Cx pipiens         11 " MMT…        110      0.1  WNV    
#> 10  2015      2 AGENCY Cx stigmatosoma     1 " MMT…        110      0.01 WNV    
#> # ℹ 1,104 more rows
#> # ℹ 4 more variables: InfectionRate <dbl>, LowerCI <dbl>, UpperCI <dbl>,
#> #   VectorIndex <dbl>
sample_collections%>%filter(species_display_name=="Cx tarsalis", trap_acronym=="CO2")
#> # A tibble: 222 × 18
#>    agency_code collection_id collection_date surv_year species_display_name
#>    <chr>               <int> <date>              <dbl> <chr>               
#>  1 AGENCY            1392963 2015-04-26           2015 Cx tarsalis         
#>  2 AGENCY            1395391 2015-04-26           2015 Cx tarsalis         
#>  3 AGENCY            1392822 2015-04-26           2015 Cx tarsalis         
#>  4 AGENCY            1398260 2015-05-03           2015 Cx tarsalis         
#>  5 AGENCY            1409186 2015-05-15           2015 Cx tarsalis         
#>  6 AGENCY            1400680 2015-05-08           2015 Cx tarsalis         
#>  7 AGENCY            1411484 2015-05-17           2015 Cx tarsalis         
#>  8 AGENCY            1402328 2015-05-11           2015 Cx tarsalis         
#>  9 AGENCY            1425396 2015-06-07           2015 Cx tarsalis         
#> 10 AGENCY            1419375 2015-06-01           2015 Cx tarsalis         
#> # ℹ 212 more rows
#> # ℹ 13 more variables: sex_type <chr>, trap_acronym <chr>,
#> #   trap_problem_bit <lgl>, num_trap <int>, trap_nights <int>, num_count <int>,
#> #   site_code <dbl>, agency_id <dbl>, county <chr>, collection_longitude <dbl>,
#> #   collection_latitude <dbl>, spatial_feature <chr>, multiple_features <lgl>

Tables

getPoolsComparisionTable()

Description

getPoolsComparisionTable() produces a frequency table for positive and negative pools counts by year and species. The more years present in the data, the larger the table.

Usage

getPoolsComparisionTable(pools,target_disease, species_separate=F)

Arguments

getPoolsComparisionTable(
  sample_pools,
  interval = "Week",
  target_disease = "WNV"
)
#> # A tibble: 169 × 6
#> # Groups:   Year, Week [169]
#>     Year  Week Negative Confirmed Total `Percent Positive`
#>    <dbl> <dbl>    <int>     <int> <int>              <dbl>
#>  1  2015    18        3         0     3                  0
#>  2  2015    19        1         0     1                  0
#>  3  2015    20        3         0     3                  0
#>  4  2015    21        9         0     9                  0
#>  5  2015    22        9         0     9                  0
#>  6  2015    23        5         0     5                  0
#>  7  2015    24        6         0     6                  0
#>  8  2015    25        8         0     8                  0
#>  9  2015    26        5         0     5                  0
#> 10  2015    27        9         1    10                 10
#> # ℹ 159 more rows

Styling Dataframes with ‘kable’

Professional looking tables can be produced using the ‘kable’ and ‘kableExtra’ packages.



library(kableExtra)
#> 
#> Attaching package: 'kableExtra'
#> The following object is masked from 'package:dplyr':
#> 
#>     group_rows

AbAnOutput = getAbundance(
  sample_collections,
  interval = "Biweek",
  
  species = c("Cx tarsalis", "Cx pipiens"),
  trap = "CO2",
  separate_by = "species")

head(AbAnOutput)
#>   Agency Year Biweek   County     Species Count TrapEvents Trap Abundance
#> 1 AGENCY 2021      7 County 1 Cx tarsalis     2          3  CO2      0.67
#> 2 AGENCY 2021      8 County 1  Cx pipiens    19          7  CO2      2.71
#> 3 AGENCY 2021      8 County 1 Cx tarsalis    31          7  CO2      4.43
#> 4 AGENCY 2021     10 County 1  Cx pipiens    28          6  CO2      4.67
#> 5 AGENCY 2021     10 County 1 Cx tarsalis    51          6  CO2      8.50
#> 6 AGENCY 2021     11 County 1  Cx pipiens    18          9  CO2      2.00

#kable table where column names, font_size, style and much more can be customized

AbAnOutput %>%
  kbl() %>%
  kable_styling(
    bootstrap_options = "striped",
    font_size = 14,
    latex_options = "scale_down"
  ) %>%
  footnote(general = "Table X: Combined biweekly Abundance Calculation for Cx. tarsalis, pipiens in CO2 traps", general_title = "")
Agency Year Biweek County Species Count TrapEvents Trap Abundance
AGENCY 2021 7 County 1 Cx tarsalis 2 3 CO2 0.67
AGENCY 2021 8 County 1 Cx pipiens 19 7 CO2 2.71
AGENCY 2021 8 County 1 Cx tarsalis 31 7 CO2 4.43
AGENCY 2021 10 County 1 Cx pipiens 28 6 CO2 4.67
AGENCY 2021 10 County 1 Cx tarsalis 51 6 CO2 8.50
AGENCY 2021 11 County 1 Cx pipiens 18 9 CO2 2.00
AGENCY 2021 11 County 1 Cx tarsalis 23 9 CO2 2.56
AGENCY 2021 12 County 1 Cx pipiens 207 14 CO2 14.79
AGENCY 2021 12 County 1 Cx tarsalis 342 14 CO2 24.43
AGENCY 2021 13 County 1 Cx tarsalis 3573 7 CO2 510.43
AGENCY 2021 14 County 1 Cx pipiens 80 8 CO2 10.00
AGENCY 2021 14 County 1 Cx tarsalis 820 8 CO2 102.50
AGENCY 2021 15 County 1 Cx pipiens 1 6 CO2 0.17
AGENCY 2021 15 County 1 Cx tarsalis 69 6 CO2 11.50
AGENCY 2021 16 County 1 Cx pipiens 73 11 CO2 6.64
AGENCY 2021 16 County 1 Cx tarsalis 7 11 CO2 0.64
AGENCY 2021 17 County 1 Cx pipiens 17 7 CO2 2.43
AGENCY 2021 17 County 1 Cx tarsalis 354 7 CO2 50.57
AGENCY 2021 18 County 1 Cx tarsalis 8 4 CO2 2.00
AGENCY 2021 19 County 1 Cx tarsalis 29 6 CO2 4.83
AGENCY 2021 20 County 1 Cx pipiens 57 9 CO2 6.33
AGENCY 2021 21 County 1 Cx pipiens 9 3 CO2 3.00
AGENCY 2021 21 County 1 Cx tarsalis 5 3 CO2 1.67
AGENCY 2020 9 County 1 Cx pipiens 1 3 CO2 0.33
AGENCY 2020 10 County 1 Cx pipiens 4 7 CO2 0.57
AGENCY 2020 11 County 1 Cx pipiens 18 11 CO2 1.64
AGENCY 2020 11 County 1 Cx tarsalis 9 11 CO2 0.82
AGENCY 2020 12 County 1 Cx tarsalis 1 9 CO2 0.11
AGENCY 2020 13 County 1 Cx pipiens 81 5 CO2 16.20
AGENCY 2020 14 County 1 Cx pipiens 14 9 CO2 1.56
AGENCY 2020 14 County 1 Cx tarsalis 1717 9 CO2 190.78
AGENCY 2020 15 County 1 Cx tarsalis 63 6 CO2 10.50
AGENCY 2020 16 County 1 Cx pipiens 67 8 CO2 8.38
AGENCY 2020 16 County 1 Cx tarsalis 207 8 CO2 25.88
AGENCY 2020 17 County 1 Cx pipiens 2 6 CO2 0.33
AGENCY 2020 17 County 1 Cx tarsalis 15 6 CO2 2.50
AGENCY 2020 18 County 1 Cx pipiens 4 4 CO2 1.00
AGENCY 2020 18 County 1 Cx tarsalis 499 4 CO2 124.75
AGENCY 2020 19 County 1 Cx pipiens 15 14 CO2 1.07
AGENCY 2020 19 County 1 Cx tarsalis 58 14 CO2 4.14
AGENCY 2020 20 County 1 Cx tarsalis 1 5 CO2 0.20
AGENCY 2020 21 County 1 Cx pipiens 145 7 CO2 20.71
AGENCY 2020 22 County 1 Cx pipiens 20 7 CO2 2.86
AGENCY 2020 23 County 1 Cx pipiens 3 4 CO2 0.75
AGENCY 2020 23 County 1 Cx tarsalis 5 4 CO2 1.25
AGENCY 2019 9 County 1 Cx pipiens 15 10 CO2 1.50
AGENCY 2019 9 County 1 Cx tarsalis 101 10 CO2 10.10
AGENCY 2019 10 County 1 Cx pipiens 15 5 CO2 3.00
AGENCY 2019 11 County 1 Cx pipiens 7 13 CO2 0.54
AGENCY 2019 11 County 1 Cx tarsalis 590 13 CO2 45.38
AGENCY 2019 12 County 1 Cx pipiens 2 4 CO2 0.50
AGENCY 2019 13 County 1 Cx tarsalis 596 5 CO2 119.20
AGENCY 2019 14 County 1 Cx tarsalis 60 4 CO2 15.00
AGENCY 2019 15 County 1 Cx pipiens 46 10 CO2 4.60
AGENCY 2019 15 County 1 Cx tarsalis 4841 10 CO2 484.10
AGENCY 2019 16 County 1 Cx pipiens 2089 15 CO2 139.27
AGENCY 2019 16 County 1 Cx tarsalis 103 15 CO2 6.87
AGENCY 2019 17 County 1 Cx pipiens 1950 6 CO2 325.00
AGENCY 2019 17 County 1 Cx tarsalis 446 6 CO2 74.33
AGENCY 2019 18 County 1 Cx pipiens 1622 11 CO2 147.45
AGENCY 2019 18 County 1 Cx tarsalis 4475 11 CO2 406.82
AGENCY 2019 19 County 1 Cx pipiens 43 6 CO2 7.17
AGENCY 2019 19 County 1 Cx tarsalis 93 6 CO2 15.50
AGENCY 2019 21 County 1 Cx pipiens 64 8 CO2 8.00
AGENCY 2019 21 County 1 Cx tarsalis 37 8 CO2 4.62
AGENCY 2018 10 County 1 Cx pipiens 3 7 CO2 0.43
AGENCY 2018 10 County 1 Cx tarsalis 343 7 CO2 49.00
AGENCY 2018 11 County 1 Cx pipiens 126 19 CO2 6.63
AGENCY 2018 11 County 1 Cx tarsalis 87 19 CO2 4.58
AGENCY 2018 12 County 1 Cx pipiens 7 10 CO2 0.70
AGENCY 2018 13 County 1 Cx pipiens 11 10 CO2 1.10
AGENCY 2018 13 County 1 Cx tarsalis 3013 10 CO2 301.30
AGENCY 2018 14 County 1 Cx pipiens 35 10 CO2 3.50
AGENCY 2018 14 County 1 Cx tarsalis 196 10 CO2 19.60
AGENCY 2018 15 County 1 Cx pipiens 445 7 CO2 63.57
AGENCY 2018 15 County 1 Cx tarsalis 601 7 CO2 85.86
AGENCY 2018 16 County 1 Cx tarsalis 1649 5 CO2 329.80
AGENCY 2018 17 County 1 Cx pipiens 120 8 CO2 15.00
AGENCY 2018 17 County 1 Cx tarsalis 6 8 CO2 0.75
AGENCY 2018 18 County 1 Cx tarsalis 258 7 CO2 36.86
AGENCY 2018 19 County 1 Cx pipiens 278 10 CO2 27.80
AGENCY 2018 19 County 1 Cx tarsalis 243 10 CO2 24.30
AGENCY 2018 20 County 1 Cx pipiens 62 10 CO2 6.20
AGENCY 2018 20 County 1 Cx tarsalis 2 10 CO2 0.20
AGENCY 2018 21 County 1 Cx pipiens 23 7 CO2 3.29
AGENCY 2018 21 County 1 Cx tarsalis 12 7 CO2 1.71
AGENCY 2017 4 County 1 Cx tarsalis 2 1 CO2 2.00
AGENCY 2017 9 County 1 Cx pipiens 8 11 CO2 0.73
AGENCY 2017 10 County 1 Cx pipiens 11 13 CO2 0.85
AGENCY 2017 10 County 1 Cx tarsalis 56 13 CO2 4.31
AGENCY 2017 11 County 1 Cx pipiens 418 8 CO2 52.25
AGENCY 2017 11 County 1 Cx tarsalis 434 8 CO2 54.25
AGENCY 2017 12 County 1 Cx pipiens 24 11 CO2 2.18
AGENCY 2017 12 County 1 Cx tarsalis 287 11 CO2 26.09
AGENCY 2017 13 County 1 Cx pipiens 392 9 CO2 43.56
AGENCY 2017 13 County 1 Cx tarsalis 8 9 CO2 0.89
AGENCY 2017 14 County 1 Cx pipiens 726 10 CO2 72.60
AGENCY 2017 14 County 1 Cx tarsalis 543 10 CO2 54.30
AGENCY 2017 15 County 1 Cx pipiens 391 16 CO2 24.44
AGENCY 2017 15 County 1 Cx tarsalis 1629 16 CO2 101.81
AGENCY 2017 16 County 1 Cx pipiens 460 10 CO2 46.00
AGENCY 2017 16 County 1 Cx tarsalis 341 10 CO2 34.10
AGENCY 2017 17 County 1 Cx pipiens 163 13 CO2 12.54
AGENCY 2017 17 County 1 Cx tarsalis 2344 13 CO2 180.31
AGENCY 2017 18 County 1 Cx pipiens 436 12 CO2 36.33
AGENCY 2017 18 County 1 Cx tarsalis 1672 12 CO2 139.33
AGENCY 2017 19 County 1 Cx pipiens 40 11 CO2 3.64
AGENCY 2017 19 County 1 Cx tarsalis 12 11 CO2 1.09
AGENCY 2017 20 County 1 Cx pipiens 40 11 CO2 3.64
AGENCY 2017 20 County 1 Cx tarsalis 101 11 CO2 9.18
AGENCY 2017 21 County 1 Cx pipiens 28 14 CO2 2.00
AGENCY 2017 21 County 1 Cx tarsalis 32 14 CO2 2.29
AGENCY 2016 8 County 1 Cx pipiens 1 7 CO2 0.14
AGENCY 2016 8 County 1 Cx tarsalis 2 7 CO2 0.29
AGENCY 2016 9 County 1 Cx pipiens 12 13 CO2 0.92
AGENCY 2016 9 County 1 Cx tarsalis 34 13 CO2 2.62
AGENCY 2016 10 County 1 Cx pipiens 16 8 CO2 2.00
AGENCY 2016 10 County 1 Cx tarsalis 110 8 CO2 13.75
AGENCY 2016 11 County 1 Cx pipiens 16 9 CO2 1.78
AGENCY 2016 11 County 1 Cx tarsalis 3 9 CO2 0.33
AGENCY 2016 12 County 1 Cx pipiens 253 7 CO2 36.14
AGENCY 2016 12 County 1 Cx tarsalis 1 7 CO2 0.14
AGENCY 2016 13 County 1 Cx pipiens 23 12 CO2 1.92
AGENCY 2016 13 County 1 Cx tarsalis 718 12 CO2 59.83
AGENCY 2016 14 County 1 Cx pipiens 1354 13 CO2 104.15
AGENCY 2016 14 County 1 Cx tarsalis 1105 13 CO2 85.00
AGENCY 2016 15 County 1 Cx pipiens 285 10 CO2 28.50
AGENCY 2016 15 County 1 Cx tarsalis 1419 10 CO2 141.90
AGENCY 2016 16 County 1 Cx pipiens 2032 10 CO2 203.20
AGENCY 2016 16 County 1 Cx tarsalis 1295 10 CO2 129.50
AGENCY 2016 17 County 1 Cx pipiens 99 15 CO2 6.60
AGENCY 2016 17 County 1 Cx tarsalis 2641 15 CO2 176.07
AGENCY 2016 18 County 1 Cx pipiens 53 11 CO2 4.82
AGENCY 2016 18 County 1 Cx tarsalis 9 11 CO2 0.82
AGENCY 2016 19 County 1 Cx pipiens 15 7 CO2 2.14
AGENCY 2016 19 County 1 Cx tarsalis 14 7 CO2 2.00
AGENCY 2016 20 County 1 Cx pipiens 15 16 CO2 0.94
AGENCY 2016 20 County 1 Cx tarsalis 5 16 CO2 0.31
AGENCY 2016 21 County 1 Cx pipiens 109 6 CO2 18.17
AGENCY 2016 21 County 1 Cx tarsalis 2 6 CO2 0.33
AGENCY 2015 8 County 1 Cx pipiens 3 4 CO2 0.75
AGENCY 2015 9 County 1 Cx pipiens 26 12 CO2 2.17
AGENCY 2015 9 County 1 Cx tarsalis 33 12 CO2 2.75
AGENCY 2015 10 County 1 Cx pipiens 88 15 CO2 5.87
AGENCY 2015 10 County 1 Cx tarsalis 76 15 CO2 5.07
AGENCY 2015 11 County 1 Cx pipiens 87 5 CO2 17.40
AGENCY 2015 11 County 1 Cx tarsalis 53 5 CO2 10.60
AGENCY 2015 12 County 1 Cx pipiens 131 11 CO2 11.91
AGENCY 2015 12 County 1 Cx tarsalis 225 11 CO2 20.45
AGENCY 2015 13 County 1 Cx pipiens 277 17 CO2 16.29
AGENCY 2015 13 County 1 Cx tarsalis 258 17 CO2 15.18
AGENCY 2015 14 County 1 Cx pipiens 14 10 CO2 1.40
AGENCY 2015 14 County 1 Cx tarsalis 650 10 CO2 65.00
AGENCY 2015 15 County 1 Cx pipiens 74 10 CO2 7.40
AGENCY 2015 15 County 1 Cx tarsalis 1353 10 CO2 135.30
AGENCY 2015 16 County 1 Cx pipiens 514 14 CO2 36.71
AGENCY 2015 16 County 1 Cx tarsalis 4341 14 CO2 310.07
AGENCY 2015 17 County 1 Cx pipiens 105 8 CO2 13.12
AGENCY 2015 17 County 1 Cx tarsalis 13 8 CO2 1.62
AGENCY 2015 18 County 1 Cx pipiens 9 6 CO2 1.50
AGENCY 2015 19 County 1 Cx pipiens 83 15 CO2 5.53
AGENCY 2015 19 County 1 Cx tarsalis 140 15 CO2 9.33
AGENCY 2015 20 County 1 Cx pipiens 51 12 CO2 4.25
AGENCY 2015 20 County 1 Cx tarsalis 56 12 CO2 4.67
AGENCY 2015 21 County 1 Cx pipiens 44 4 CO2 11.00
AGENCY 2015 21 County 1 Cx tarsalis 32 4 CO2 8.00
Table X: Combined biweekly Abundance Calculation for Cx. tarsalis, pipiens in CO2 traps

Data using ‘datatables’

Interactive html only tables can be produced using the ‘DT’ package. ‘DT’ tables allow for sorting and filtering with in a webpage. These are ideal for viewing data but are not compatible with pdf or word formats.

library(DT)

AbAnOutput %>%
  datatable(colnames =  c("Disease Year", "Biweek", "Count", "Species","Trap Type","Trap Events", "Abundance"))

table(vectorsurvR:::testing_collections$trap_acronym, vectorsurvR:::testing_collections$surv_year) %>%
  kbl(align = "c") %>%
  kable_paper(
    full_width = F,
    html_font = "arial",
    lightable_options = "striped",
  ) %>%
  add_header_above(c("Trap Type", "Years" = 6)) %>%
  footnote(general = "Table 3: Traps deployed by year", general_title = "") %>%
  row_spec(c(3, 9, 10), background = "yellow") %>%
  column_spec(c(4), background = "orange")
Trap Type
Years
2019 2020 2021 2022 2023 2024
BACKPACK 0 0 26 33 11 5
BGSENT 2318 90 11158 14163 13535 18943
BTLJC 30 33 63 0 0 0
CDCAGO 20 0 0 0 0 0
CO2 12201 11622 10901 9719 12364 13475
FLANNEL 3 3 9 14 11 6
GRVD 9560 10184 9221 8611 9069 8910
LCKR 1434 3119 3707 3693 3559 3831
NJLT 3062 844 0 0 0 0
OTHER 0 0 10 11 37 517
OVI 4 0 0 294 0 0
WRKR 0 0 77 0 0 0
Table 3: Traps deployed by year