Vignette_v2
# Choose a Directory
path <- system.file("extdata", package = "filteRjsats")
# List Files in Directory
file <- list.files(path = path, recursive = TRUE)
# Get a list of Time Zones
# Not Run
# OlsonNames()
# Set Time Zone
timezone <- "America/Los_Angeles"
# Empty list to store dataframes
det_list <- list()
# Process each file in the list of files
for(i in 1:length(file)){
jsats_file <- read_jsats(path, file[i])
det_list[[i]] <- jsats_file
}
#> Warning in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,
#> : embedded nul(s) found in input
#> Warning: Expected 13 pieces. Additional pieces discarded in 1000 rows [1, 2, 3, 4, 5, 6,
#> 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...].
# Get a list of reference tags
reference_tags <- get_reference_tags()
# Empty list to store dataframes
pref_list <- list()
# Apply prefilter
for(i in 1:length(det_list)){
prefilter_file <- prefilter(det_list[[i]], reference_tags)
pref_list[[i]] <- prefilter_file
}
# View all the fish fields
get_fish_fields()
#> variable_name data_type actual_range
#> 1 email String
#> 2 fish_date_tagged String
#> 3 fish_id String
#> 4 fish_length int
#> 5 fish_length_type String
#> 6 fish_origin String
#> 7 fish_release_date String
#> 8 fish_type String
#> 9 fish_weight float
#> 10 release_latitude float 36.843, 40.9674
#> 11 release_location String
#> 12 release_longitude float -123.039, -119.933
#> 13 release_river_km float
#> 14 study_id String
#> 15 tag_id_decimal int
#> 16 tag_id_hex String
#> 17 tag_model String
#> 18 tag_pulse_rate_interval_nominal float
#> 19 tag_warranty_life float
#> 20 tag_weight float
# NOT RUN
# Choose important fields if don't want all fields, shown are the minimum
# important_fields <- c("fish_type","tag_id_hex",
# "fish_release_date", "release_location",
# "release_latitude", "release_longitude",
# "tag_pulse_rate_interval_nominal",
# "tag_warranty_life", "fish_length_type",
# "fish_length","fish_weight")
# Query ERDAPP for all tagged fish
fish <- get_tagged_fish()
# Empty list to store dataframes
fish_list <- list()
# Join fish data to detection and filter based on release date and battery
for(i in 1:length(pref_list)){
fish_file <- add_fish(pref_list[[i]], fish)
fish_list[[i]] <- fish_file
}
#> Detections in File: 996
#> Number of Valid Tag IDs: 1
#> Number of Valid Detections: 967
#> Detections in File: 941
#> Number of Valid Tag IDs: 5
#> Number of Valid Detections: 941
# Empty list to store dataframes
final_list <- list()
# Apply the final 2 hit or 4 hit filter
for(i in 1:length(fish_list)){
final_filter <- second_filter_2h4h(fish_list[[i]])
final_list[[i]] <- final_filter
}
#> Number of Valid Tag IDs: 1
#> Number of Valid Detections: 959
#> Number of Tags with Spurious Detections: 1
#> Warning: Unknown or uninitialised column: `TagHex`.
#> Tags with Only Spurious Detections:
#> Number of Spurious Detections: 8
#> Number of Valid Tag IDs: 4
#> Number of Valid Detections: 865
#> Number of Tags with Spurious Detections: 5
#> Warning: Unknown or uninitialised column: `TagHex`.
#> Tags with Only Spurious Detections:
#> Number of Spurious Detections: 76
# NOT RUN
# Alternately apply a 4 hit filter
# for(i in 1:length(fish_list)){
# final_filter <- second_filter_4h(fish_list[[i]])
# final_list[[i]] <- final_filter
# }
# View all the receiver metadata fields
get_rcvr_fields()
#> variable_name data_type actual_range
#> 1 dep_id int 1, 4761
#> 2 latitude float 36.7735, 40.7988
#> 3 longitude float -123.039, -119.769
#> 4 receiver_agency String
#> 5 receiver_beacon_id_dec String
#> 6 receiver_beacon_id_hex String
#> 7 receiver_beacon_pri float
#> 8 receiver_coverage_problem String
#> 9 receiver_data_coverage String
#> 10 receiver_depth float
#> 11 receiver_end String
#> 12 receiver_general_latitude float
#> 13 receiver_general_location String
#> 14 receiver_general_longitude float
#> 15 receiver_general_river_km float
#> 16 receiver_last_valid String
#> 17 receiver_location String
#> 18 receiver_make String
#> 19 receiver_region String
#> 20 receiver_river_km float
#> 21 receiver_serial_number int
#> 22 receiver_start String
# NOT RUN
# # Choose important fields if don't want all fields, shown are the minimum
# rcvr_fields <- c("dep_id","receiver_serial_number","latitude","longitude",
# "receiver_location","receiver_river_km",
# "receiver_general_location","receiver_general_river_km",
# "receiver_beacon_id_hex", "receiver_start",
# "receiver_end")
#Get the receiver metadata
rcvr_data <- get_rcvr_data()
#Join the receiver metadata to the filtered detections
for(i in 1:length(final_list)){
out <- join_rcvr_data(final_list[[i]], rcvr_data)
final_list[[i]]
}
print(final_list[[1]])
#> # A tibble: 959 × 47
#> # Groups: Tag_Hex [1]
#> ReceiverSN Make DateTime_Local Tag_Decimal Tag_Hex Tilt Volt Temp
#> <chr> <chr> <dttm> <int> <chr> <dbl> <dbl> <dbl>
#> 1 17111 ATS 2021-06-20 00:00:02 50760 C648 41 4.15 26.0
#> 2 17111 ATS 2021-06-20 00:00:05 50760 C648 41 4.16 26.0
#> 3 17111 ATS 2021-06-20 00:00:08 50760 C648 41 4.16 26.0
#> 4 17111 ATS 2021-06-20 00:00:11 50760 C648 41 4.16 26.0
#> 5 17111 ATS 2021-06-20 00:00:14 50760 C648 41 4.16 26.0
#> 6 17111 ATS 2021-06-20 00:00:17 50760 C648 41 4.15 26.0
#> 7 17111 ATS 2021-06-20 00:00:20 50760 C648 41 4.15 26.0
#> 8 17111 ATS 2021-06-20 00:00:23 50760 C648 41 4.15 26.0
#> 9 17111 ATS 2021-06-20 00:00:26 50760 C648 41 4.15 26.0
#> 10 17111 ATS 2021-06-20 00:00:28 50760 C648 41 4.15 26.0
#> # ℹ 949 more rows
#> # ℹ 39 more variables: SigStr <dbl>, Freq <dbl>, Thres <dbl>, CheckMBP <lgl>,
#> # TagInFile <lgl>, fish_id <chr>, study_id <chr>, fish_type <chr>,
#> # fish_origin <chr>, fish_date_tagged <chr>, fish_release_date <dttm>,
#> # tag_id_decimal <int>, tag_weight <chr>, tag_model <chr>,
#> # tag_pulse_rate_interval_nominal <chr>, tag_warranty_life <chr>,
#> # fish_length_type <chr>, fish_length <chr>, fish_weight <chr>, …
print(final_list[[2]])
#> # A tibble: 865 × 45
#> # Groups: Tag_Hex [4]
#> ReceiverSN Make DateTime_Local Tag_Decimal Tag_Hex Volt SigStr Freq
#> <chr> <chr> <dttm> <int> <chr> <dbl> <dbl> <dbl>
#> 1 156007 Tekno 2021-07-05 08:39:29 28477 6F3D 3.71 25.5 417.
#> 2 156007 Tekno 2021-07-05 08:39:32 28477 6F3D 3.71 27.5 417.
#> 3 156007 Tekno 2021-07-05 08:39:35 28477 6F3D 3.71 15.4 417.
#> 4 156007 Tekno 2021-07-05 08:39:38 28477 6F3D 3.71 26.9 417.
#> 5 156007 Tekno 2021-07-05 08:39:41 28477 6F3D 3.71 23.3 417.
#> 6 156007 Tekno 2021-07-05 08:39:43 28477 6F3D 3.71 26.3 417.
#> 7 156007 Tekno 2021-07-05 08:39:49 28477 6F3D 3.71 20.5 417.
#> 8 156007 Tekno 2021-07-05 08:39:52 28477 6F3D 3.71 22.6 417.
#> 9 156007 Tekno 2021-07-05 08:39:55 28477 6F3D 3.71 20.7 417.
#> 10 156007 Tekno 2021-07-05 08:40:01 28477 6F3D 3.71 25.9 417.
#> # ℹ 855 more rows
#> # ℹ 37 more variables: Thres <int>, CheckMBP <lgl>, TagInFile <lgl>,
#> # fish_id <chr>, study_id <chr>, fish_type <chr>, fish_origin <chr>,
#> # fish_date_tagged <chr>, fish_release_date <dttm>, tag_id_decimal <int>,
#> # tag_weight <chr>, tag_model <chr>, tag_pulse_rate_interval_nominal <chr>,
#> # tag_warranty_life <chr>, fish_length_type <chr>, fish_length <chr>,
#> # fish_weight <chr>, release_location <chr>, release_latitude <dbl>, …