Deer Monitoring Data Quality

deer data-quality

A data quality assessment of statewide deer monitoring data

Justin G Cally https://justincally.github.io/blog/ (Arthur Rylah Institute)https://www.ari.vic.gov.au/
05-17-2022
Show code
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
# library(deervic)
library(sf)
library(DBI)
library(dplyr)
library(pointblank)

# Postgres connection: better for rasters (and easier to set up)
con <- RPostgreSQL::dbConnect(RPostgres::Postgres(),
                              host = '10.110.7.201',
                              dbname = 'ari-dev-weda-psql-01',
                              user = "psql_admin",
                              password = keyring::key_get(service = "ari-dev-weda-psql-01", username = "psql_admin"),
                              port = 5432,
                              service = NULL,
                              list(sslmode = "require"))


curated_final_site_selection <- st_read(dsn = con,
                                        layer = Id(schema = "deervic", table = "curated_final_site_selection"))

curated_site_data <- tbl(con, dbplyr::in_schema(schema = "deervic", table = "curated_site_data")) %>%
  collect()

curated_site_retrieval_data <-  tbl(con, dbplyr::in_schema(schema = "deervic", table = "curated_site_retrieval_data")) %>%
  collect()

data_dictionary <- tbl(con, dbplyr::in_schema(schema = "deervic", table = "data_dictionary")) %>%
  collect()

all_sites <- tbl(con, dbplyr::in_schema(schema = "deervic", table = "raw_sampling_grid")) %>%
  dplyr::select(ID) %>%
  collect() %>%
  pull()

# Select deer species of interest
deer_species <- c("Dama dama", "Rusa unicolor")

raw_camtrap_records <- tbl(con, dbplyr::in_schema(schema = "deervic", table = "raw_camtrap_records")) %>%
  filter(Species %in% !!deer_species) %>%
  collect()

Site Assessment and Camera Deployment

The following data quality statement is sourced from data relating to the initial site assessment and camera deployment. This data quality statement can help identify issues relating to the deployment of camera traps and site assessments such is unequal sampling/search area (transects) or data entry issues.

Show code
site_agent <- 
  create_agent(
    tbl = curated_site_data,
    tbl_name = "curated_site_data",
    label = "VALID-I Curated Site Data"
  ) %>% # Site ID
  col_vals_in_set(vars(SiteID), set = c(curated_final_site_selection$ID)) %>%
  col_vals_between(vars(SiteID), left = 0, right = max(all_sites)) %>%
  rows_distinct(columns = vars(SiteID, Iteration)) %>%
  # Personel
  col_vals_not_null(vars(User_Name, Personnel)) %>%
  # Date 
  pointblank::col_is_date(vars(Date)) %>%
  col_vals_gt(columns = vars(Date), value = "2021-07-01") %>%
  # Latitude Longitude
  col_is_numeric(vars(Latitude, Longitude)) %>%
  col_vals_between(vars(Latitude), left = -39.13658, right = -33.98128) %>%
  col_vals_between(vars(Longitude), left = 140.96190, right = 149.97629) %>%
  # cameraID 
  col_vals_regex(columns = vars(CameraID), regex = "^[a-zA-Z]{2}[0-9]{8}$") %>%
  # Height 
  col_vals_not_null(vars(CamHeight)) %>%
  col_vals_equal(vars(CamHeight), value = 1) %>%
  col_vals_not_null(vars(DistanceM1, DistanceM2, DistanceM3, DistanceM4)) %>%
  col_vals_equal(vars(DistanceM1), value = 2.5) %>%
  col_vals_equal(vars(DistanceM2), value = 5) %>%
  col_vals_equal(vars(DistanceM3), value = 7.5) %>%
  col_vals_equal(vars(DistanceM4), value = 10) %>%
  # CamBearing
  col_vals_between(vars(CamBearing), left = 0, right = 360) %>%
  col_vals_between(vars(CamBearing), left = 135, right = 225, brief = "South facing camera") %>%
  # Slope
  col_vals_between(vars(Slope), left = 0, right = 100) %>%
  #Trail
  col_vals_in_set(vars(Trail), set = c("Yes", "No", "Not sure")) %>%
  col_vals_not_null(vars(DistanceToTrail), preconditions = ~ . %>% dplyr::filter(Trail == "Yes")) %>%
  # Images
  col_vals_not_null(vars(ImageNorth, ImageEast, ImageSouth, ImageWest)) %>%
  #Transects
  col_vals_equal(vars(TransDistance), value = 450) %>%
  col_vals_equal(vars(Transects), value = 3) %>%
  col_vals_not_null(vars(Pellets, Rubbings, Footprints, Wallows)) %>%
  # veg measurements
  col_vals_not_null(vars(NWUCover, NNWHUCover, EWUCover, ENWHUCover, BGroundCover, TopHeight, CanopyCov, Saplings, Seedlings)) %>%
  interrogate()
Show code
site_agent
Pointblank Validation
VALID-I Curated Site Data

tibble curated_site_data
STEP COLUMNS VALUES TBL EVAL UNITS PASS FAIL W S N EXT
1
 col_vals_in_set()

SiteID

85, 115, 229, 553, 676, 811, 832, 900, 1358, 1479, 1597, 1687, 1957, 2198, 2602, 2630, 2661, 2987, 3010, 3176, 3227, 3416, 3721, 3760, 3779, 3787, 4085, 4257, 4416, 4585, 4659, 4905, 5173, 5232, 5573, 5860, 5938, 5989, 5996, 6149, 6217, 6252, 6727, 6794, 7113, 7323, 7455, 8300, 8347, 8399, 8458, 8721, 8998, 9589, 9765, 9941, 9986, 10696, 10788, 11084, 11733, 11805, 12059, 12812, 12887, 27415, 12933, 12979, 13417, 13421, 13657, 13786, 14226, 14276, 14392, 14622, 14624, 14692, 15080, 15300, 15628, 16177, 31764, 16287, 16290, 16293, 16508, 16615, 17411, 17874, 17992, 18398, 20703, 23204, 23205, 23308, 23310, 24090, 24138, 24141, 24247, 24526, 24644, 24954, 25067, 25492, 25505, 25706, 26308, 26361, 26456, 26489, 26712, 26826, 26873, 27135, 27149, 27184, 27331, 27386, 27448, 27637, 27750, 27817, 28112, 28341, 28465, 28724, 29053, 29886, 30062, 30626, 30755, 30775, 31003, 31368, 31524, 31694, 31919, 31922, 32127, 32232, 32405, 32411, 32597, 32742, 32948, 33018, 33376, 34174, 34504, 34729, 34948, 34956, 35075, 35311, 35527, 47387, 35738, 35739, 35929, 36160, 36521, 36602, 36749, 36846, 36905, 36917, 37044, 37075, 37852, 38070, 38303, 38368, 38876, 39299, 39389, 39633, 39638, 39643, 39804, 39880, 39889, 40475, 40721, 40722, 40789, 40797, 40801, 40873, 40880, 40972, 41118, 41203, 41287, 41312, 41572, 41639, 41655, 41742, 41760, 41761, 41917, 41934, 42005, 42093, 42104, 42273, 42352, 42372, 42516, 42519, 42680, 42697, 42760, 42792, 42847, 43021, 43134, 43198, 43367, 43446, 47978, 43462, 43540, 43650, 43703, 43707, 43825, 43926, 43958, 43983, 43996, 44081, 44142, 44225, 44235, 44241, 44288, 44368, 44408, 46362, 44496, 44499, 44546, 44679, 44749, 44765, 44841, 44849, 44911, 44940, 45039, 45044, 45077, 45143, 45193, 45198, 45201, 45206, 45225, 45309, 45475, 45485, 45575, 45641, 45668, 45818, 46031, 46063, 46082, 46130, 46132, 46135, 46149, 46236, 46238, 46272, 46297, 46327, 46354, 46453, 46462, 46476, 46493, 46503, 46504, 46553, 46685, 46703, 46738, 46766, 46792, 46993, 47055, 47110, 47115, 47128, 47191, 47203, 47271, 47272, 47406, 47439, 47468, 47548, 47565, 47566, 47609, 47615, 47662, 47682, 47689, 47768, 47800, 47819, 47830, 47840, 47841, 47850, 47863, 47865, 48009, 48033, 48070, 48076, 48088, 48113, 48129, 48148, 48162, 48210, 48233, 48361, 48363, 48387, 48388, 48422, 48588, 48603, 48613, 48679, 48746, 48765, 48822, 48847, 48903, 48911, 48966, 48968, 48969, 48988, 48998, 49055, 49111, 49116, 49122, 49186, 49191, 49195, 49334, 49410, 49419, 49468, 49485, 49487, 49492, 49539, 49554, 49613, 49636, 49653, 49760, 49768, 49770, 49839, 49865, 49890, 49897, 49921, 49928, 50113, 50197, 50207, 50213, 50262, 50268, 50281, 50342, 50411, 50444, 50461, 50527, 50599, 50689, 50725, 50744, 50751, 50819, 50823, 50843, 51037, 51076, 51096, 51207, 51219, 51220, 51261, 51463, 51618, 51685, 51724, 51790, 51797, 51823, 51833, 51871, 51898, 51932, 51957, 51968, 51995, 52018, 52036, 52868, 52192, 52206, 52224, 52254, 52286, 52291, 52356, 52394, 52400, 52412, 52438, 52497, 52510, 52596, 52651, 52708, 52716, 52774, 52780, 52807, 52834, 53059, 53091, 53117, 53191, 53240, 53254, 53282, 53336, 53392, 53438, 53452, 53453, 53456, 53554, 53577, 53581, 53748, 53797, 53808, 53838, 53857, 54005, 54008, 54011, 54034, 54082, 54132, 54134, 54157, 54188, 54189, 54200, 54223, 54315, 54328, 54330, 54449, 54462, 54507, 54555, 54575, 54618, 54646, 54669, 54670, 54744, 54767, 54790, 54800, 54815, 54817, 54825, 54903, 54909, 54910, 54912, 54967, 55040, 55047, 55057, 55076, 55083, 55090, 55092, 55105, 55192, 55210, 55212, 55252, 55302, 55311, 55335, 55349, 55404, 55502, 55579, 55582, 55586, 55626, 55695, 55736, 55742, 55744, 55757, 55785, 55806, 55879, 55882, 55985, 55986, 55990, 56037, 56087, 56106, 56194, 56253, 56323, 56354, 56370, 56383, 56438, 56453, 56465, 56505, 56518, 56587, 56621, 56637, 56658, 56661, 56667, 56741, 56814, 56833, 56834, 56881, 56890, 56908, 56919, 56950, 56953, 56958, 57018, 57049, 57101, 57661, 57119, 57148, 57166, 57281, 57288, 57298, 57318, 57333, 57345, 57354, 57380, 57407, 57470, 57491, 57542, 57591, 57597, 57615, 57619, 57680, 57707, 57718, 57797, 57810, 57857, 57878, 57924, 57936

100 100
1.00
0
0.00

2
 col_vals_between()

SiteID

[0, 57,944]

100 100
1.00
0
0.00

3
 rows_distinct()

SiteID, Iteration

100 100
1.00
0
0.00

4
 col_vals_not_null()

User_Name

100 100
1.00
0
0.00

5
 col_vals_not_null()

Personnel

100 100
1.00
0
0.00

6
D
 col_is_date()

Date

1 1
1.00
0
0.00

7
 col_vals_gt()

Date

2021-07-01

100 100
1.00
0
0.00

8
d
 col_is_numeric()

Latitude

1 1
1.00
0
0.00

9
d
 col_is_numeric()

Longitude

1 1
1.00
0
0.00

10
 col_vals_between()

Latitude

[−39.1366, −33.9813]

100 100
1.00
0
0.00

11
 col_vals_between()

Longitude

[140.9619, 149.9763]

100 100
1.00
0
0.00

12
 col_vals_regex()

CameraID

^[a-zA-Z]{2}[0-9]{8}$

100 100
1.00
0
0.00

13
 col_vals_not_null()

CamHeight

100 99
0.99
1
0.01

14
 col_vals_equal()

CamHeight

1

100 96
0.96
4
0.04

15
 col_vals_not_null()

DistanceM1

100 100
1.00
0
0.00

16
 col_vals_not_null()

DistanceM2

100 100
1.00
0
0.00

17
 col_vals_not_null()

DistanceM3

100 100
1.00
0
0.00

18
 col_vals_not_null()

DistanceM4

100 100
1.00
0
0.00

19
 col_vals_equal()

DistanceM1

2.5

100 99
0.99
1
0.01

20
 col_vals_equal()

DistanceM2

5

100 99
0.99
1
0.01

21
 col_vals_equal()

DistanceM3

7.5

100 98
0.98
2
0.02

22
 col_vals_equal()

DistanceM4

10

100 100
1.00
0
0.00

23
 col_vals_between()

CamBearing

[0, 360]

100 100
1.00
0
0.00

24
 col_vals_between()

CamBearing

[135, 225]

100 97
0.97
3
0.03

25
 col_vals_between()

Slope

[0, 100]

100 100
1.00
0
0.00

26
 col_vals_in_set()

Trail

Yes, No, Not sure

100 100
1.00
0
0.00

27
 col_vals_not_null()

DistanceToTrail

51 51
1.00
0
0.00

28
 col_vals_not_null()

ImageNorth

100 100
1.00
0
0.00

29
 col_vals_not_null()

ImageEast

100 100
1.00
0
0.00

30
 col_vals_not_null()

ImageSouth

100 100
1.00
0
0.00

31
 col_vals_not_null()

ImageWest

100 100
1.00
0
0.00

32
 col_vals_equal()

TransDistance

450

100 83
0.83
17
0.17

33
 col_vals_equal()

Transects

3

100 93
0.93
7
0.07

34
 col_vals_not_null()

Pellets

100 100
1.00
0
0.00

35
 col_vals_not_null()

Rubbings

100 100
1.00
0
0.00

36
 col_vals_not_null()

Footprints

100 100
1.00
0
0.00

37
 col_vals_not_null()

Wallows

100 100
1.00
0
0.00

38
 col_vals_not_null()

NWUCover

100 100
1.00
0
0.00

39
 col_vals_not_null()

NNWHUCover

100 100
1.00
0
0.00

40
 col_vals_not_null()

EWUCover

100 100
1.00
0
0.00

41
 col_vals_not_null()

ENWHUCover

100 100
1.00
0
0.00

42
 col_vals_not_null()

BGroundCover

100 100
1.00
0
0.00

43
 col_vals_not_null()

TopHeight

100 100
1.00
0
0.00

44
 col_vals_not_null()

CanopyCov

100 100
1.00
0
0.00

45
 col_vals_not_null()

Saplings

100 100
1.00
0
0.00

46
 col_vals_not_null()

Seedlings

100 100
1.00
0
0.00

2022-05-17 10:31:04 AEST 2.0 s 2022-05-17 10:31:06 AEST

Camera Retrieval

This data quality statement focuses on data collected during camera retrieval and focuses on whether the data collected during retrieval is valid and can be matched up to the deployment data.

Show code
retrieval_agent <- 
  create_agent(
    tbl = curated_site_retrieval_data,
    tbl_name = "curated_site_retrieval_data",
    label = "VALID-I Curated Retrieval Data"
  ) %>% # Site ID
  col_vals_in_set(vars(SiteID), set = c(curated_final_site_selection$ID)) %>%
  col_vals_between(vars(SiteID), left = 0, right = max(all_sites)) %>%
  col_vals_in_set(vars(SiteID), set = curated_site_data$SiteID) %>%
  rows_distinct(columns = vars(SiteID, Iteration)) %>%
  # Personel
  col_vals_not_null(vars(User_Name, Personnel)) %>%
  # Date 
  pointblank::col_is_date(vars(Date)) %>%
  col_vals_gt(columns = vars(Date), value = "2021-07-01") %>%
  # cameraID 
  col_vals_regex(columns = vars(CameraID), regex = "^[a-zA-Z]{2}[0-9]{8}$") %>%
  col_vals_in_set(vars(CameraID), set = curated_site_data$CameraID) %>%
  interrogate()
Show code
retrieval_agent
Pointblank Validation
VALID-I Curated Retrieval Data

tibble curated_site_retrieval_data
STEP COLUMNS VALUES TBL EVAL UNITS PASS FAIL W S N EXT
1
 col_vals_in_set()

SiteID

85, 115, 229, 553, 676, 811, 832, 900, 1358, 1479, 1597, 1687, 1957, 2198, 2602, 2630, 2661, 2987, 3010, 3176, 3227, 3416, 3721, 3760, 3779, 3787, 4085, 4257, 4416, 4585, 4659, 4905, 5173, 5232, 5573, 5860, 5938, 5989, 5996, 6149, 6217, 6252, 6727, 6794, 7113, 7323, 7455, 8300, 8347, 8399, 8458, 8721, 8998, 9589, 9765, 9941, 9986, 10696, 10788, 11084, 11733, 11805, 12059, 12812, 12887, 27415, 12933, 12979, 13417, 13421, 13657, 13786, 14226, 14276, 14392, 14622, 14624, 14692, 15080, 15300, 15628, 16177, 31764, 16287, 16290, 16293, 16508, 16615, 17411, 17874, 17992, 18398, 20703, 23204, 23205, 23308, 23310, 24090, 24138, 24141, 24247, 24526, 24644, 24954, 25067, 25492, 25505, 25706, 26308, 26361, 26456, 26489, 26712, 26826, 26873, 27135, 27149, 27184, 27331, 27386, 27448, 27637, 27750, 27817, 28112, 28341, 28465, 28724, 29053, 29886, 30062, 30626, 30755, 30775, 31003, 31368, 31524, 31694, 31919, 31922, 32127, 32232, 32405, 32411, 32597, 32742, 32948, 33018, 33376, 34174, 34504, 34729, 34948, 34956, 35075, 35311, 35527, 47387, 35738, 35739, 35929, 36160, 36521, 36602, 36749, 36846, 36905, 36917, 37044, 37075, 37852, 38070, 38303, 38368, 38876, 39299, 39389, 39633, 39638, 39643, 39804, 39880, 39889, 40475, 40721, 40722, 40789, 40797, 40801, 40873, 40880, 40972, 41118, 41203, 41287, 41312, 41572, 41639, 41655, 41742, 41760, 41761, 41917, 41934, 42005, 42093, 42104, 42273, 42352, 42372, 42516, 42519, 42680, 42697, 42760, 42792, 42847, 43021, 43134, 43198, 43367, 43446, 47978, 43462, 43540, 43650, 43703, 43707, 43825, 43926, 43958, 43983, 43996, 44081, 44142, 44225, 44235, 44241, 44288, 44368, 44408, 46362, 44496, 44499, 44546, 44679, 44749, 44765, 44841, 44849, 44911, 44940, 45039, 45044, 45077, 45143, 45193, 45198, 45201, 45206, 45225, 45309, 45475, 45485, 45575, 45641, 45668, 45818, 46031, 46063, 46082, 46130, 46132, 46135, 46149, 46236, 46238, 46272, 46297, 46327, 46354, 46453, 46462, 46476, 46493, 46503, 46504, 46553, 46685, 46703, 46738, 46766, 46792, 46993, 47055, 47110, 47115, 47128, 47191, 47203, 47271, 47272, 47406, 47439, 47468, 47548, 47565, 47566, 47609, 47615, 47662, 47682, 47689, 47768, 47800, 47819, 47830, 47840, 47841, 47850, 47863, 47865, 48009, 48033, 48070, 48076, 48088, 48113, 48129, 48148, 48162, 48210, 48233, 48361, 48363, 48387, 48388, 48422, 48588, 48603, 48613, 48679, 48746, 48765, 48822, 48847, 48903, 48911, 48966, 48968, 48969, 48988, 48998, 49055, 49111, 49116, 49122, 49186, 49191, 49195, 49334, 49410, 49419, 49468, 49485, 49487, 49492, 49539, 49554, 49613, 49636, 49653, 49760, 49768, 49770, 49839, 49865, 49890, 49897, 49921, 49928, 50113, 50197, 50207, 50213, 50262, 50268, 50281, 50342, 50411, 50444, 50461, 50527, 50599, 50689, 50725, 50744, 50751, 50819, 50823, 50843, 51037, 51076, 51096, 51207, 51219, 51220, 51261, 51463, 51618, 51685, 51724, 51790, 51797, 51823, 51833, 51871, 51898, 51932, 51957, 51968, 51995, 52018, 52036, 52868, 52192, 52206, 52224, 52254, 52286, 52291, 52356, 52394, 52400, 52412, 52438, 52497, 52510, 52596, 52651, 52708, 52716, 52774, 52780, 52807, 52834, 53059, 53091, 53117, 53191, 53240, 53254, 53282, 53336, 53392, 53438, 53452, 53453, 53456, 53554, 53577, 53581, 53748, 53797, 53808, 53838, 53857, 54005, 54008, 54011, 54034, 54082, 54132, 54134, 54157, 54188, 54189, 54200, 54223, 54315, 54328, 54330, 54449, 54462, 54507, 54555, 54575, 54618, 54646, 54669, 54670, 54744, 54767, 54790, 54800, 54815, 54817, 54825, 54903, 54909, 54910, 54912, 54967, 55040, 55047, 55057, 55076, 55083, 55090, 55092, 55105, 55192, 55210, 55212, 55252, 55302, 55311, 55335, 55349, 55404, 55502, 55579, 55582, 55586, 55626, 55695, 55736, 55742, 55744, 55757, 55785, 55806, 55879, 55882, 55985, 55986, 55990, 56037, 56087, 56106, 56194, 56253, 56323, 56354, 56370, 56383, 56438, 56453, 56465, 56505, 56518, 56587, 56621, 56637, 56658, 56661, 56667, 56741, 56814, 56833, 56834, 56881, 56890, 56908, 56919, 56950, 56953, 56958, 57018, 57049, 57101, 57661, 57119, 57148, 57166, 57281, 57288, 57298, 57318, 57333, 57345, 57354, 57380, 57407, 57470, 57491, 57542, 57591, 57597, 57615, 57619, 57680, 57707, 57718, 57797, 57810, 57857, 57878, 57924, 57936

100 100
1.00
0
0.00

2
 col_vals_between()

SiteID

[0, 57,944]

100 100
1.00
0
0.00

3
 col_vals_in_set()

SiteID

31919, 31922, 32742, 30775, 47565, 47800, 30755, 24526, 2198, 4257, 9941, 4905, 2602, 832, 5173, 4585, 6727, 6217, 7113, 12979, 12812, 14624, 13421, 13417, 16293, 24247, 28724, 27750, 27448, 32411, 34729, 31368, 56881, 57619, 57470, 56661, 57707, 55785, 57101, 57166, 57354, 56637, 37044, 47865, 47055, 48387, 46738, 42792, 43134, 42352, 39638, 37852, 54903, 56621, 56505, 49897, 49468, 52438, 47662, 47271, 45077, 44911, 46362, 46453, 45198, 43958, 44841, 44225, 42847, 51790, 53117, 55192, 41639, 44749, 43021, 49111, 48969, 51871, 54817, 53254, 55092, 54912, 52018, 51968, 52036, 52286, 53282, 54507, 54669, 53808, 50819, 49770, 49768, 49410, 46236, 45575, 44679, 44765, 44499, 42697

100 100
1.00
0
0.00

4
 rows_distinct()

SiteID, Iteration

100 100
1.00
0
0.00

5
 col_vals_not_null()

User_Name

100 100
1.00
0
0.00

6
 col_vals_not_null()

Personnel

100 100
1.00
0
0.00

7
D
 col_is_date()

Date

1 1
1.00
0
0.00

8
 col_vals_gt()

Date

2021-07-01

100 100
1.00
0
0.00

9
 col_vals_regex()

CameraID

^[a-zA-Z]{2}[0-9]{8}$

100 100
1.00
0
0.00

10
 col_vals_in_set()

CameraID

Ho04102709, HO04102720, HO04101711, Ho04102691, HO04102719, HO04102707, HO04101047, HO04101053, HO04104854, HO04103994, HO04101051, HO04101038, HO04102687, HO04102395, HO04104854, HO04101065, HO04102421, HO04102800, HO04102703, HO04104982, HO04104948, HO04104950, HO04102872, HO04104900, HO04102875, HO04101664, HO04102688, HO04104979, HO04104980, HO04102716, HO04101653, HO04104916, HO04104841, HO04101535, HO04101259, HO04101261, HO04101250, HO04104519, HO04102450, HO04102718, HO04102717, HO04102721, HO04104179, HO04104925, HO04104981, HO04102879, HO04102689, HO04102878, HO04104906, HO04101049, HO04101059, HO04102802, HO04101183, HO04101248, HO04104895, HO04104538, HO04104878, HO04101177, HO04101284, Ho04101286, HO04105111, HO04101714, HO04104503, HO04104866, HO04102693, HO04101180, HO04104839, HO04105165, HO04104549, HO04101909, HO04101276, HO04101907, HO04102692, HO04102694, HO04104897, HO04103668, HO04104511, HO04105163, HO04105113, HO04102811, HO04104514, HO04104949, HO04104875, HO04101176, HO04101930, HO04104535, HO04101181, HO04102748, HO04102708, HO04101704, HO04101249, HO04104912, HO04102802, HO04101247, HO04101185, HO04102776, HO04101278, HO04101050, HO04101059, HO04104547

100 90
0.90
10
0.10

2022-05-17 10:31:09 AEST < 1 s 2022-05-17 10:31:10 AEST

Camera Images

Using the R package camtrapR we loaded 10949 photos of deer from the retrieved cameras. The following data quality statement ensures that photos of deer have been appropriately tagged with key metadata.

Show code
camtrap_agent <- 
  create_agent(
    tbl = raw_camtrap_records,
    tbl_name = "raw_camtrap_records",
    label = "VALID-I Raw Camera Trap Photo Data"
  ) %>% # Site ID
  col_vals_in_set(vars(Station), set = c(curated_final_site_selection$ID)) %>%
  col_vals_between(vars(Station), left = 0, right = max(all_sites)) %>%
  col_vals_in_set(vars(Station), set = curated_site_data$SiteID) %>%
  # Personel
  col_vals_not_null(vars(Station, Species, Date, Time, metadata_Distance)) %>%
  # Date 
  pointblank::col_is_date(vars(Date)) %>%
  col_vals_gt(columns = vars(Date), value = "2021-07-01") %>%
  # cameraID 
  interrogate()
Show code
camtrap_agent
Pointblank Validation
VALID-I Raw Camera Trap Photo Data

tibble raw_camtrap_records
STEP COLUMNS VALUES TBL EVAL UNITS PASS FAIL W S N EXT
1
 col_vals_in_set()

Station

85, 115, 229, 553, 676, 811, 832, 900, 1358, 1479, 1597, 1687, 1957, 2198, 2602, 2630, 2661, 2987, 3010, 3176, 3227, 3416, 3721, 3760, 3779, 3787, 4085, 4257, 4416, 4585, 4659, 4905, 5173, 5232, 5573, 5860, 5938, 5989, 5996, 6149, 6217, 6252, 6727, 6794, 7113, 7323, 7455, 8300, 8347, 8399, 8458, 8721, 8998, 9589, 9765, 9941, 9986, 10696, 10788, 11084, 11733, 11805, 12059, 12812, 12887, 27415, 12933, 12979, 13417, 13421, 13657, 13786, 14226, 14276, 14392, 14622, 14624, 14692, 15080, 15300, 15628, 16177, 31764, 16287, 16290, 16293, 16508, 16615, 17411, 17874, 17992, 18398, 20703, 23204, 23205, 23308, 23310, 24090, 24138, 24141, 24247, 24526, 24644, 24954, 25067, 25492, 25505, 25706, 26308, 26361, 26456, 26489, 26712, 26826, 26873, 27135, 27149, 27184, 27331, 27386, 27448, 27637, 27750, 27817, 28112, 28341, 28465, 28724, 29053, 29886, 30062, 30626, 30755, 30775, 31003, 31368, 31524, 31694, 31919, 31922, 32127, 32232, 32405, 32411, 32597, 32742, 32948, 33018, 33376, 34174, 34504, 34729, 34948, 34956, 35075, 35311, 35527, 47387, 35738, 35739, 35929, 36160, 36521, 36602, 36749, 36846, 36905, 36917, 37044, 37075, 37852, 38070, 38303, 38368, 38876, 39299, 39389, 39633, 39638, 39643, 39804, 39880, 39889, 40475, 40721, 40722, 40789, 40797, 40801, 40873, 40880, 40972, 41118, 41203, 41287, 41312, 41572, 41639, 41655, 41742, 41760, 41761, 41917, 41934, 42005, 42093, 42104, 42273, 42352, 42372, 42516, 42519, 42680, 42697, 42760, 42792, 42847, 43021, 43134, 43198, 43367, 43446, 47978, 43462, 43540, 43650, 43703, 43707, 43825, 43926, 43958, 43983, 43996, 44081, 44142, 44225, 44235, 44241, 44288, 44368, 44408, 46362, 44496, 44499, 44546, 44679, 44749, 44765, 44841, 44849, 44911, 44940, 45039, 45044, 45077, 45143, 45193, 45198, 45201, 45206, 45225, 45309, 45475, 45485, 45575, 45641, 45668, 45818, 46031, 46063, 46082, 46130, 46132, 46135, 46149, 46236, 46238, 46272, 46297, 46327, 46354, 46453, 46462, 46476, 46493, 46503, 46504, 46553, 46685, 46703, 46738, 46766, 46792, 46993, 47055, 47110, 47115, 47128, 47191, 47203, 47271, 47272, 47406, 47439, 47468, 47548, 47565, 47566, 47609, 47615, 47662, 47682, 47689, 47768, 47800, 47819, 47830, 47840, 47841, 47850, 47863, 47865, 48009, 48033, 48070, 48076, 48088, 48113, 48129, 48148, 48162, 48210, 48233, 48361, 48363, 48387, 48388, 48422, 48588, 48603, 48613, 48679, 48746, 48765, 48822, 48847, 48903, 48911, 48966, 48968, 48969, 48988, 48998, 49055, 49111, 49116, 49122, 49186, 49191, 49195, 49334, 49410, 49419, 49468, 49485, 49487, 49492, 49539, 49554, 49613, 49636, 49653, 49760, 49768, 49770, 49839, 49865, 49890, 49897, 49921, 49928, 50113, 50197, 50207, 50213, 50262, 50268, 50281, 50342, 50411, 50444, 50461, 50527, 50599, 50689, 50725, 50744, 50751, 50819, 50823, 50843, 51037, 51076, 51096, 51207, 51219, 51220, 51261, 51463, 51618, 51685, 51724, 51790, 51797, 51823, 51833, 51871, 51898, 51932, 51957, 51968, 51995, 52018, 52036, 52868, 52192, 52206, 52224, 52254, 52286, 52291, 52356, 52394, 52400, 52412, 52438, 52497, 52510, 52596, 52651, 52708, 52716, 52774, 52780, 52807, 52834, 53059, 53091, 53117, 53191, 53240, 53254, 53282, 53336, 53392, 53438, 53452, 53453, 53456, 53554, 53577, 53581, 53748, 53797, 53808, 53838, 53857, 54005, 54008, 54011, 54034, 54082, 54132, 54134, 54157, 54188, 54189, 54200, 54223, 54315, 54328, 54330, 54449, 54462, 54507, 54555, 54575, 54618, 54646, 54669, 54670, 54744, 54767, 54790, 54800, 54815, 54817, 54825, 54903, 54909, 54910, 54912, 54967, 55040, 55047, 55057, 55076, 55083, 55090, 55092, 55105, 55192, 55210, 55212, 55252, 55302, 55311, 55335, 55349, 55404, 55502, 55579, 55582, 55586, 55626, 55695, 55736, 55742, 55744, 55757, 55785, 55806, 55879, 55882, 55985, 55986, 55990, 56037, 56087, 56106, 56194, 56253, 56323, 56354, 56370, 56383, 56438, 56453, 56465, 56505, 56518, 56587, 56621, 56637, 56658, 56661, 56667, 56741, 56814, 56833, 56834, 56881, 56890, 56908, 56919, 56950, 56953, 56958, 57018, 57049, 57101, 57661, 57119, 57148, 57166, 57281, 57288, 57298, 57318, 57333, 57345, 57354, 57380, 57407, 57470, 57491, 57542, 57591, 57597, 57615, 57619, 57680, 57707, 57718, 57797, 57810, 57857, 57878, 57924, 57936

11K 11K
1.00
0
0.00

2
 col_vals_between()

Station

[0, 57,944]

11K 11K
1.00
0
0.00

3
 col_vals_in_set()

Station

31919, 31922, 32742, 30775, 47565, 47800, 30755, 24526, 2198, 4257, 9941, 4905, 2602, 832, 5173, 4585, 6727, 6217, 7113, 12979, 12812, 14624, 13421, 13417, 16293, 24247, 28724, 27750, 27448, 32411, 34729, 31368, 56881, 57619, 57470, 56661, 57707, 55785, 57101, 57166, 57354, 56637, 37044, 47865, 47055, 48387, 46738, 42792, 43134, 42352, 39638, 37852, 54903, 56621, 56505, 49897, 49468, 52438, 47662, 47271, 45077, 44911, 46362, 46453, 45198, 43958, 44841, 44225, 42847, 51790, 53117, 55192, 41639, 44749, 43021, 49111, 48969, 51871, 54817, 53254, 55092, 54912, 52018, 51968, 52036, 52286, 53282, 54507, 54669, 53808, 50819, 49770, 49768, 49410, 46236, 45575, 44679, 44765, 44499, 42697

11K 11K
1.00
0
0.00

4
 col_vals_not_null()

Station

11K 11K
1.00
0
0.00

5
 col_vals_not_null()

Species

11K 11K
1.00
0
0.00

6
 col_vals_not_null()

Date

11K 11K
1.00
0
0.00

7
 col_vals_not_null()

Time

11K 11K
1.00
0
0.00

8
 col_vals_not_null()

metadata_Distance

11K 11K
1.00
0
0.00

9
D
 col_is_date()

Date

1 1
1.00
0
0.00

10
 col_vals_gt()

Date

2021-07-01

11K 11K
1.00
0
0.00

2022-05-17 10:31:11 AEST < 1 s 2022-05-17 10:31:12 AEST

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Citation

For attribution, please cite this work as

Cally (2022, May 17). Justin's Code Blog: Deer Monitoring Data Quality. Retrieved from https://justincally.github.io/blog/posts/2022-05-17-deer-monitoring-data-quality/

BibTeX citation

@misc{cally2022deerdataquality,
  author = {Cally, Justin G},
  title = {Justin's Code Blog: Deer Monitoring Data Quality},
  url = {https://justincally.github.io/blog/posts/2022-05-17-deer-monitoring-data-quality/},
  year = {2022}
}