Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ Description: Process and summarize DAS data files.
and includes a PDF with the DAS data format requirements expected by the package.
URL: https://swfsc.github.io/swfscDAS/, https://github.com/swfsc/swfscDAS/
BugReports: https://github.com/swfsc/swfscDAS/issues/
Depends: R (>= 4.0.0)
Depends: R (>= 4.1)
Imports:
dplyr (>= 1.1.0),
lubridate,
magrittr,
methods,
parallel,
purrr,
Expand Down
1 change: 0 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ importFrom(lubridate,day)
importFrom(lubridate,month)
importFrom(lubridate,tz)
importFrom(lubridate,year)
importFrom(magrittr,"%>%")
importFrom(methods,setOldClass)
importFrom(parallel,clusterExport)
importFrom(parallel,detectCores)
Expand Down
2 changes: 2 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

* Added the SpCodes.dat file (from [`CruzPlot`](https://github.com/SWFSC/CruzPlot)) to 'inst' to have available as a default

* Changed to using R native pip, and updated package dependency to require R >= 4.1


# swfscDAS 0.6.4

Expand Down
28 changes: 14 additions & 14 deletions R/das_check.R
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ das_check <- function(
x.lines <- substr(do.call(c, x.lines.list), 4, 39)

message("Processing DAS file")
x.proc <- suppressWarnings(das_process(x)) %>%
x.proc <- suppressWarnings(das_process(x)) |>
left_join(select(x, "file_das", "line_num", "idx"),
by = c('file_das', "line_num"))
x.proc <- as_das_df(x.proc)
Expand Down Expand Up @@ -188,7 +188,7 @@ das_check <- function(


### Check lat/lon coordinates - NA events are ignored
# x.proc.ll <- x.proc %>% filter(!(Event %in% c("?", 1:8)))
# x.proc.ll <- x.proc |> filter(!(Event %in% c("?", 1:8)))
lat.which <- which(!between(x.proc$Lat, -90, 90))
lon.which <- which(!between(x.proc$Lat, -180, 1800))

Expand Down Expand Up @@ -242,23 +242,23 @@ das_check <- function(
}

# Create data frame with prev_columns
x.proc.prev <- x.proc %>%
x.proc.prev <- x.proc |>
mutate(Event_prev = lag(.data$Event),
OnEffort_prev = lag(.data$OnEffort))

# 2) All R events occur while off effort, or after a B event that occurs while off effort
br.r.which <- x.proc.prev %>%
br.r.which <- x.proc.prev |>
filter((.data$Event == "R" & .data$OnEffort_prev & .data$Event_prev != "B") |
(.data$Event == "B" & .data$OnEffort_prev)) %>%
select("idx") %>%
unlist() %>%
(.data$Event == "B" & .data$OnEffort_prev)) |>
select("idx") |>
unlist() |>
unname()

# 3) All E events occur while on effort
e.which <- x.proc.prev %>%
filter(.data$Event == "E" & !.data$OnEffort_prev) %>%
select("idx") %>%
unlist() %>%
e.which <- x.proc.prev |>
filter(.data$Event == "E" & !.data$OnEffort_prev) |>
select("idx") |>
unlist() |>
unname()


Expand Down Expand Up @@ -293,11 +293,11 @@ das_check <- function(
Extra_data = substr(x.lines, 100, max(nchar(x.lines))),
idx = seq_along(x.lines),
stringsAsFactors = FALSE
) %>%
filter(!(.data$Event %in% c("C", "*", "#"))) %>%
) |>
filter(!(.data$Event %in% c("C", "*", "#"))) |>
mutate(Extra_data = trimws(.data$Extra_data, which = "both"))

x.tmp.filt.data <- x.tmp.filt %>% select(starts_with("Data"))
x.tmp.filt.data <- x.tmp.filt |> select(starts_with("Data"))

x.tmp.which <- lapply(1:ncol(x.tmp.filt.data), function(i) {
x1 <- trimws(x.tmp.filt.data[[i]], which = "left")
Expand Down
22 changes: 11 additions & 11 deletions R/das_chop_condition.R
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,9 @@ das_chop_condition.das_df <- function(x, conditions, seg.min.km = 0.1,
segdata <- data.frame(
do.call(rbind, lapply(eff.chop.list, function(i) i[["das.df.segdata"]])),
stringsAsFactors = FALSE
) %>%
) |>
mutate(segnum = seq_along(.data$seg_idx),
dist = round(.data$dist, 4)) %>%
dist = round(.data$dist, 4)) |>
select("segnum", "seg_idx", everything())

### Segment lengths
Expand All @@ -191,8 +191,8 @@ das_chop_condition.das_df <- function(x, conditions, seg.min.km = 0.1,
x.eff <- data.frame(
do.call(rbind, lapply(eff.chop.list, function(i) i[["das.df"]])),
stringsAsFactors = FALSE
) %>%
left_join(segdata[, c("seg_idx", "segnum")], by = "seg_idx") %>%
) |>
left_join(segdata[, c("seg_idx", "segnum")], by = "seg_idx") |>
select(-"dist_to_next")

### Message about segments that were combined
Expand Down Expand Up @@ -261,11 +261,11 @@ das_chop_condition.das_df <- function(x, conditions, seg.min.km = 0.1,
# even if the last segment is < seg.min.km.
# Because of indexing method, the last break point will still be
# removed to join the final two segments if necessary
d.pre <- das.df %>%
group_by(.data$effort_seg_pre) %>%
d.pre <- das.df |>
group_by(.data$effort_seg_pre) |>
summarise(idx_start = min(.data$idx),
idx_end = max(.data$idx),
dist_length = sum(.data$dist_to_next)) %>%
dist_length = sum(.data$dist_to_next)) |>
slice(-n())

# == 0 check is here in case seg.min.km is 0
Expand All @@ -283,15 +283,15 @@ das_chop_condition.das_df <- function(x, conditions, seg.min.km = 0.1,
effort.seg <- rep(FALSE, nrow(das.df))
effort.seg[cond.idx] <- TRUE

das.df <- das.df %>%
select(-c("effort_seg_pre", "idx")) %>%
das.df <- das.df |>
select(-c("effort_seg_pre", "idx")) |>
mutate(seg_idx = paste(i, cumsum(effort.seg), sep = "_"))


#------------------------------------------------------
### Calculate lengths of effort segments
das.df.dist.summ <- das.df %>%
group_by(.data$seg_idx) %>%
das.df.dist.summ <- das.df |>
group_by(.data$seg_idx) |>
summarise(sum_dist = sum(.data$dist_to_next))

seg.lengths <- das.df.dist.summ$sum_dist
Expand Down
6 changes: 3 additions & 3 deletions R/das_chop_equallength.R
Original file line number Diff line number Diff line change
Expand Up @@ -251,16 +251,16 @@ das_chop_equallength.das_df <- function(x,
segdata <- data.frame(
do.call(rbind, lapply(eff.chop.list, function(i) i[["das.df.segdata"]])),
stringsAsFactors = FALSE
) %>%
) |>
mutate(segnum = seq_along(.data$file),
dist = round(.data$dist, 4)) %>%
dist = round(.data$dist, 4)) |>
select("segnum", everything())

### Each das data point, along with segnum
x.eff <- data.frame(
do.call(rbind, lapply(eff.chop.list, function(i) i[["das.df"]])),
stringsAsFactors = FALSE
) %>%
) |>
left_join(segdata[, c("seg_idx", "segnum")], by = "seg_idx")

### Message about segments with length 0
Expand Down
8 changes: 4 additions & 4 deletions R/das_chop_section.R
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@ das_chop_section.das_df <- function(x, conditions, distance.method = NULL,
randpicks = NA
)

x.summ <- x %>%
x.summ <- x |>
mutate(ces_dup = duplicated(.data$cont_eff_section),
dist_from_prev_sect = ifelse(.data$ces_dup, .data$dist_from_prev, NA)) %>%
group_by(.data$cont_eff_section) %>%
dist_from_prev_sect = ifelse(.data$ces_dup, .data$dist_from_prev, NA)) |>
group_by(.data$cont_eff_section) |>
summarise(dist_sum = sum(.data$dist_from_prev_sect, na.rm = TRUE))

# Call das_chop_equallength using max section length + 1
das_chop_equallength(
x %>% select(-"cont_eff_section"),
x |> select(-"cont_eff_section"),
conditions = conditions,
seg.km = max(x.summ$dist_sum) + 1, randpicks.load = randpicks.df,
num.cores = num.cores
Expand Down
2 changes: 1 addition & 1 deletion R/das_comments.R
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,5 @@ das_comments.das_dfr <- function(x) {
paste(na.omit(i), collapse = "")
})

x.c %>% mutate(comment_str = unname(x.c.c))
x.c |> mutate(comment_str = unname(x.c.c))
}
56 changes: 28 additions & 28 deletions R/das_effort.R
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ das_effort.das_df <- function(
# Prep for chop functions

# Remove comments if specified
if (is.null(event.touse) & comment.drop) x <- x %>% filter(.data$Event != "C")
if (is.null(event.touse) & comment.drop) x <- x |> filter(.data$Event != "C")

# Add index column for adding back in ? and 1:8 events, and extract those events
x$idx_eff <- seq_len(nrow(x))
Expand All @@ -230,9 +230,9 @@ das_effort.das_df <- function(

x.oneff.all <- x[x.oneff.which, ]

x.oneff <- x.oneff.all %>% filter(!(.data$Event %in% event.tmp) )
x.oneff.tmp <- x.oneff.all %>%
filter(.data$Event %in% event.tmp) %>%
x.oneff <- x.oneff.all |> filter(!(.data$Event %in% event.tmp) )
x.oneff.tmp <- x.oneff.all |>
filter(.data$Event %in% event.tmp) |>
mutate(cont_eff_section = NA, dist_from_prev = NA, seg_idx = NA, segnum = NA)

rownames(x.oneff) <- rownames(x.oneff.tmp) <- NULL
Expand All @@ -248,12 +248,12 @@ das_effort.das_df <- function(
stop("Error in row numbers - please report this as an issue")

# Filter for specified events, if applicable
if (!is.null(event.touse)) x.oneff <- x.oneff %>% filter(.data$Event %in% event.touse)
if (!is.null(event.touse)) x.oneff <- x.oneff |> filter(.data$Event %in% event.touse)


# Verbosely remove remaining data without Lat/Lon/DateTime info
if (any(is.na(x.oneff$Lat) | is.na(x.oneff$Lon) | is.na(x.oneff$DateTime))) {
x.nacheck <- x.oneff %>%
x.nacheck <- x.oneff |>
mutate(ll_dt_na = is.na(.data$Lat) | is.na(.data$Lon) | is.na(.data$DateTime),
eff_na = .data$ll_dt_na & (.data$Event %in% c("R", "E")),
sight_na = .data$ll_dt_na & (.data$Event %in% c("S", "K", "M", "G", "t", "A")))
Expand All @@ -273,7 +273,7 @@ das_effort.das_df <- function(
.print_file_line(x.nacheck$file_das, x.nacheck$line_num, which(x.nacheck$sight_na)))

# Remove events with NA lat/lon/dt info
x.oneff <- x.oneff %>% filter(!is.na(.data$Lat) & !is.na(.data$Lon) & !is.na(.data$DateTime))
x.oneff <- x.oneff |> filter(!is.na(.data$Lat) & !is.na(.data$Lon) & !is.na(.data$DateTime))
message(paste0("There were ", sum(x.nacheck$ll_dt_na), " on effort ",
ifelse(comment.drop, "(non-C) ", ""), "events ",
"with NA Lat/Lon/DateTime values that will ignored ",
Expand Down Expand Up @@ -309,17 +309,17 @@ das_effort.das_df <- function(
# If specified, verbosely remove cont eff sections with length <=0.1,
# and no sighting events
if (seg0.drop) {
x.ces.summ <- x.oneff %>%
group_by(.data$cont_eff_section) %>%
x.ces.summ <- x.oneff |>
group_by(.data$cont_eff_section) |>
summarise(dist_sum = sum(.data$dist_from_prev[-1]),
has_sight = any(c("S", "K", "M", "G", "t") %in% .data$Event),
line_min = min(.data$line_num))

ces.keep <- x.ces.summ %>%
filter(.data$has_sight | .data$dist_sum > 0.1) %>%
ces.keep <- x.ces.summ |>
filter(.data$has_sight | .data$dist_sum > 0.1) |>
pull(cont_eff_section)

x.oneff <- x.oneff %>%
x.oneff <- x.oneff |>
filter(.data$cont_eff_section %in% ces.keep)

# Recalculate cont eff section index
Expand Down Expand Up @@ -359,17 +359,17 @@ das_effort.das_df <- function(

# Add strata info to segdata as needed - easiest to do this here
if (!is.null(strata.files)) {
x.strata.summ <- x.eff %>%
group_by(.data$segnum) %>%
x.strata.summ <- x.eff |>
group_by(.data$segnum) |>
summarise(strata_which = unique(.data$strata_which),
stratum = ifelse(.data$strata_which == 0, NA,
names(strata.files)[.data$strata_which])) %>%
names(strata.files)[.data$strata_which])) |>
select("segnum", "stratum")
if (nrow(x.strata.summ) != nrow(segdata))
stop("Error processing strata and segdata - please report this as an issue")

segdata <- segdata %>% left_join(x.strata.summ, by = "segnum")
x.eff <- x.eff %>% select(-!!c(names(strata.files), "strata_which"))
segdata <- segdata |> left_join(x.strata.summ, by = "segnum")
x.eff <- x.eff |> select(-!!c(names(strata.files), "strata_which"))
}

# Check that things are as expected
Expand All @@ -388,33 +388,33 @@ das_effort.das_df <- function(
# Only for sightinfo groupsizes, and thus no segdata info doesn't matter
if (nrow(x.oneff.tmp) > 0) x.eff <- bind_rows(x.eff, x.oneff.tmp)

x.eff.all <- x.eff %>%
arrange(.data$idx_eff) %>%
x.eff.all <- x.eff |>
arrange(.data$idx_eff) |>
select(-"idx_eff")


#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# Summarize sightings
sightinfo <- x.eff.all %>%
sightinfo <- x.eff.all |>
left_join(select(segdata, "segnum", "mlat", "mlon"),
by = "segnum") %>%
das_sight(returnformat = "default") %>%
by = "segnum") |>
das_sight(returnformat = "default") |>
mutate(included = (.data$Bft <= 5 & .data$OnEffort & .data$ObsStd),
included = ifelse(is.na(.data$included), FALSE, .data$included)) %>%
included = ifelse(is.na(.data$included), FALSE, .data$included)) |>
select(-c("dist_from_prev", "cont_eff_section"))

# Clean and return
segdata <- segdata %>% select(-"seg_idx")
segdata <- segdata |> select(-"seg_idx")
# If seg0.drop, then change '0' distances to 0.1
if (seg0.drop) {
segdata <- segdata %>%
segdata <- segdata |>
mutate(dist = if_else(dist < 0.1, 0.1, dist))
}

sightinfo <- sightinfo %>%
mutate(year = year(.data$DateTime)) %>%
select(-"seg_idx") %>%
sightinfo <- sightinfo |>
mutate(year = year(.data$DateTime)) |>
select(-"seg_idx") |>
select("segnum", "mlat", "mlon", "Event", "DateTime", "year", everything())

list(segdata = segdata, sightinfo = sightinfo, randpicks = randpicks)
Expand Down
18 changes: 9 additions & 9 deletions R/das_effort_sight.R
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ das_effort_sight <- function(x.list, sp.codes, sp.events = c("S", "G", "K", "M",

### Prep
segdata <- x.list$segdata
sightinfo <- x.list$sightinfo %>% filter(.data$Event %in% sp.events)
sightinfo <- x.list$sightinfo |> filter(.data$Event %in% sp.events)
randpicks <- x.list$randpicks

### Processing
Expand All @@ -92,15 +92,15 @@ das_effort_sight <- function(x.list, sp.codes, sp.events = c("S", "G", "K", "M",

segdata.col1 <- select(segdata, "seg_idx")
sightinfo.forsegdata.list <- lapply(sp.codes, function(i, sightinfo, d1) {
d0 <- sightinfo %>%
filter(.data$included, .data$SpCode == i) %>%
group_by(.data$seg_idx) %>%
d0 <- sightinfo |>
filter(.data$included, .data$SpCode == i) |>
group_by(.data$seg_idx) |>
summarise(nSI = n(),
ANI = sum(.data$GsSegment))

names(d0) <- c("seg_idx", paste(names(d0)[-1], i, sep = "_"))

z <- full_join(d1, d0, by = "seg_idx") %>% select(-"seg_idx")
z <- full_join(d1, d0, by = "seg_idx") |> select(-"seg_idx")
z[is.na(z)] <- 0

z
Expand All @@ -110,12 +110,12 @@ das_effort_sight <- function(x.list, sp.codes, sp.events = c("S", "G", "K", "M",


### Clean up and return
segdata <- segdata %>%
left_join(sightinfo.forsegdata.df, by = "seg_idx") %>%
segdata <- segdata |>
left_join(sightinfo.forsegdata.df, by = "seg_idx") |>
select(-"seg_idx")

sightinfo <- sightinfo %>%
mutate(included = ifelse(.data$SpCode %in% sp.codes, .data$included, FALSE)) %>%
sightinfo <- sightinfo |>
mutate(included = ifelse(.data$SpCode %in% sp.codes, .data$included, FALSE)) |>
select(-c("seg_idx", "GsSegment"))

list(segdata = segdata, sightinfo = sightinfo, randpicks = randpicks)
Expand Down
Loading
Loading