## ----------------------------------------------------------------------------- data("birds", package = "FlyingR") results <- FlyingR::migrate(data = birds, method = "cmm", speed_control = 1, min_energy_protein = 0.05) # extract range as a vector results$range ## ----------------------------------------------------------------------------- results <- FlyingR::migrate(data = birds, method = "cmm", settings = list(ipf = 0.9), speed_control = 1, min_energy_protein = 0.05) ## ----------------------------------------------------------------------------- results <- FlyingR::migrate(data = birds, method = "csw", settings = list(ipf = 0.9), speed_control = 1, min_energy_protein = 0.05) # obtain remaining body mass results$bodyMass # starting minimum power speed results$startMinSpeed # end of flight minimum power speed results$endMinSpeed ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # A generic function # migration function each species at different regions. # Function returns a list (each species migrated by region) # ------------------------------------------------------------------------------ region_migrate <- function(data) { # we need dplyr for filter function # we need FlyingR for migration require(dplyr) require(FlyingR) # number of regions in dataset regions <- unique(data$Region) # regions data in a list region_data <- list() for (i in 1:length(regions)) { # filter data by region filter_data_region <-data %>% filter(Region == regions[i]) # migrate filter data user_settings <- list(ipf = 0.9) results <- FlyingR::migrate(data = filter_data_region[, 3:9], method = "csw", speed_control = 0, settings = user_settings, min_energy_protein = 0.05) region_data[[i]] <- cbind(filter_data_region, "range" = as.vector(results$range)) } # return region data as a list return(region_data) } ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # migrating sylvia borin # ------------------------------------------------------------------------------ data("garden_wablers") wablers_migration <- region_migrate(data = garden_wablers) ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # migrating Lesser Whitethroats (sylvia curruca) # ------------------------------------------------------------------------------ data("lesser_whitethroats") whitethroats_migration <- region_migrate(data = lesser_whitethroats) ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # migration list to one dataframe for Garden Wablers(sylvia_borin) # ------------------------------------------------------------------------------ wablers_results <- data.frame() for (i in 1:length(wablers_migration)) { wablers_results <- rbind(wablers_results, wablers_migration[[i]]) } cat("number of rows sylvia borin:", nrow(wablers_results), sep = " ") ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # migration list to one dataframe for Lesser Whitethroats # ------------------------------------------------------------------------------ whitethroats_results <- data.frame() for (i in 1:length(whitethroats_migration)) { whitethroats_results <- rbind(whitethroats_results, whitethroats_migration[[i]]) } cat("number of rows in sylvia curruca:", nrow(whitethroats_results), sep = " ") ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # order of region # rename the regions for clarity # ------------------------------------------------------------------------------ wablers_results$Region <- factor(wablers_results$Region, levels = c("S Balt", "N Med", "E Med"), ordered = TRUE) levels(wablers_results$Region) <- c("S Baltic", "N Medit", "E Medit") whitethroats_results$Region <- factor(whitethroats_results$Region, levels = c("S Balt", "N Med", "E Med", "NE Afr"), ordered = TRUE) levels(whitethroats_results$Region) <- c("S Baltic", "N Medit", "E Medit", "NE Africa") ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # both plots in one # combine the data sets first # ------------------------------------------------------------------------------ results <- rbind(wablers_results, whitethroats_results, deparse.level = 0) # make sure it sums up nrow(wablers_results) + nrow(whitethroats_results) == nrow(results) ## ----------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # new combined plot # ------------------------------------------------------------------------------ require(ggplot2) results_combined_plot <- ggplot(results, aes(x = Region, y = range, colour = species)) + geom_boxplot() + #ggtitle("Sylvia curruca flight range by region") + theme_bw()+ labs(y = "Range")+ ylim(500, 4500) results_combined_plot ## ----------------------------------------------------------------------------- data("curlew_sandpiper") ## ----------------------------------------------------------------------------- # needed data for migration columns 2:9 curlew_range <- FlyingR::migrate( data = curlew_sandpiper[, 2:9], method = "cmm", speed_control = 0, min_energy_protein = 0.05, settings = list(ipf = 0.9) ) # Addin computed range to the dataset curlew_results <- curlew_sandpiper[, 1:2] curlew_results$range <- as.vector(curlew_range$range) ## ----message=FALSE------------------------------------------------------------ # migrate curlew sandpiper require(ggplot2) require(dplyr) curlew_plot <- ggplot(data = curlew_results)+ geom_point(aes(x = day, y = range, color = name))+ theme_bw(base_size = 10)+ ggtitle("")+ scale_color_discrete(name = "Individual")+ xlab("Day")+ ylab("Range (km)") curlew_plot