Skip to content

Commit

Permalink
check for altitude bin spacing and number of bins, retain most common…
Browse files Browse the repository at this point in the history
… type only
  • Loading branch information
adokter committed Nov 4, 2024
1 parent 4a34476 commit 80c2177
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions R/as.vpts.R
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,27 @@ as.vpts <- function(data) {
height <- datetime <- source_file <- radar <- NULL

# Throw error if nrows per height are not identical

assertthat::assert_that(
remainder_is_zero(dim(data)[1], length(unique(data$height))) > 0,
msg = "Number of rows per height variable must be identical"
)
# FIXME: first if statement is a weak check that could fail, could be improved.
if(!remainder_is_zero(dim(data)[1], length(unique(data$height)))){
data %>%
dplyr::group_by(radar, datetime) %>%
dplyr::mutate(bioRad_internal_interval = height-lag(height)) %>%
dplyr::add_count(name="bioRad_internal_levels") -> data
interval_median <- median(data$bioRad_internal_interval, na.rm=TRUE)
interval_unique <- unique(data$bioRad_internal_interval)
interval_unique <- interval_unique[!is.na(interval_unique)]
if(length(bin_unique)>1){
warning(paste("profiles found with different altitude interval:",paste(sort(bin_unique),collapse=" ")), ", retaining ",bin_median, " only.")
data <- dplyr::filter(data, bioRad_internal_interval == interval_median)
}
levels_median <- median(data$bioRad_internal_levels)
levels_unique <- unique(data$bioRad_internal_levels)
if(length(levels_unique)>1){
warning(paste("profiles found with different number of height layers:",paste(sort(levels_unique),collapse=" ")), ", retaining ",levels_median, " only.")
data <- dplyr::filter(data, bioRad_internal_levels == levels_median)
}
data <- dplyr::select(data, -c(bioRad_internal_interval, bioRad_internal_levels))
}

radar <- unique(data[["radar"]])

Expand Down

0 comments on commit 80c2177

Please sign in to comment.