## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set( fig.width = 10, # Set default plot width (adjust as needed) fig.height = 8, # Set default plot height (adjust as needed) fig.align = "center" # Center align all plots ) # so as not to execute this vignette during package development knitr::opts_chunk$set(eval = FALSE) ## ----message=FALSE, warning=FALSE--------------------------------------------- # library(dplyr) # library(gmwmx2) # library(sf) ## ----------------------------------------------------------------------------- # data("df_estimated_velocities_gmwmx") ## ----------------------------------------------------------------------------- # range(df_estimated_velocities_gmwmx$length_signal) ## ----------------------------------------------------------------------------- # # define function to make color transparent # make_transparent <- function(colors, alpha = 0.5) { # # Ensure alpha is between 0 and 1 # if (alpha < 0 || alpha > 1) { # stop("Alpha value must be between 0 and 1") # } # # # Convert colors to RGB and add alpha # transparent_colors <- sapply(colors, function(col) { # rgb_val <- col2rgb(col) / 255 # rgb(rgb_val[1], rgb_val[2], rgb_val[3], alpha = alpha) # }) # # return(transparent_colors) # } ## ----loaddata----------------------------------------------------------------- # countries_sf <- rnaturalearth::ne_countries() ## ----------------------------------------------------------------------------- # # plot all stations # par(mar = c(2.5, 3.5, 1, 1)) # # # set plot limits # xlims <- c(-180, 180) # ylims <- c(-90, 90) # # # plot # plot(NA, # xlim = xlims, ylim = ylims, las = 1, # ylab = "", xlab = "", # xaxt = "n", yaxt = "n" # ) # # # Define longitude labels (X° E/W) # lon_labels <- sapply(seq(-180, 180, by = 30), function(x) { # if (x < 0) { # paste0(abs(x), "° W") # } else if (x > 0) { # paste0(x, "° E") # } else { # "0°" # } # }) # # # Define latitude labels (X° N/S) # lat_labels <- sapply(seq(-90, 90, by = 20), function(y) { # if (y < 0) { # paste0(abs(y), "° S") # } else if (y > 0) { # paste0(y, "° N") # } else { # "0°" # } # }) # # # Plot the axes # axis(side = 1, at = seq(-180, 180, by = 30), labels = lon_labels) # axis(side = 2, at = seq(-90, 90, by = 20), labels = lat_labels, las = 1) # # plot(countries_sf$geometry, add = TRUE, border = "black", lwd = 2) # # # # add axis # for (i in seq(-180, 180, by = 30)) { # abline(v = i, col = "grey80", lty = 5) # } # for (i in seq(-90, 90, by = 20)) { # abline(h = i, col = "grey80", lty = 5) # } # # my_col <- c("#e96bff") # my_col_trans <- make_transparent(my_col, alpha = .4) # # # set param for graph # shift <- 0 # scale_arrow <- 200 # arrow_width <- .1 # arrow_lwd <- 2 # # for (i in seq(nrow(df_estimated_velocities_gmwmx))) { # x0 <- as.numeric(df_estimated_velocities_gmwmx[i, "longitude"]) # y0 <- as.numeric(df_estimated_velocities_gmwmx[i, "latitude"]) # x1 <- as.numeric(df_estimated_velocities_gmwmx[i, "longitude"] + df_estimated_velocities_gmwmx[i, "estimated_trend_E_scaled"] * scale_arrow) # y1 <- as.numeric(df_estimated_velocities_gmwmx[i, "latitude"] + df_estimated_velocities_gmwmx[i, "estimated_trend_N_scaled"] * scale_arrow) # # shape::Arrows( # x0 = x0, y0 = y0, x1 = x1, y1 = y1, # col = my_col_trans, # arr.type = "triangle", # arr.length = .10, # arr.width = arrow_width, # lwd = arrow_lwd # ) # } ## ----------------------------------------------------------------------------- # # Zoom in the US # # set plot limits # xlims <- c(-130, -60) # ylims <- c(30, 55) # # # # plot # plot(NA, # xlim = xlims, ylim = ylims, las = 1, # ylab = "", xlab = "", # xaxt = "n", yaxt = "n" # ) # # # Define longitude labels (X° E/W) # lon_labels <- sapply(seq(-180, 180, by = 10), function(x) { # if (x < 0) { # paste0(abs(x), "° W") # } else if (x > 0) { # paste0(x, "° E") # } else { # "0°" # } # }) # # # Define latitude labels (X° N/S) # lat_labels <- sapply(seq(-90, 90, by = 10), function(y) { # if (y < 0) { # paste0(abs(y), "° S") # } else if (y > 0) { # paste0(y, "° N") # } else { # "0°" # } # }) # # # Plot the axes # axis(side = 1, at = seq(-180, 180, by = 10), labels = lon_labels) # axis(side = 2, at = seq(-90, 90, by = 10), labels = lat_labels, las = 1) # # # plot(countries_sf$geometry, add = TRUE, border = "black", lwd = 2) # # # # add axis # for (i in seq(-180, 180, by = 10)) { # abline(v = i, col = "grey80", lty = 5) # } # for (i in seq(-90, 90, by = 10)) { # abline(h = i, col = "grey80", lty = 5) # } # # my_col <- c("#e96bff") # my_col_trans <- make_transparent(my_col, alpha = .4) # # # set param for graph # shift <- 0 # scale_arrow <- 200 # arrow_width <- .1 # arrow_lwd <- 2 # # for (i in seq(nrow(df_estimated_velocities_gmwmx))) { # x0 <- as.numeric(df_estimated_velocities_gmwmx[i, "longitude"]) # y0 <- as.numeric(df_estimated_velocities_gmwmx[i, "latitude"]) # x1 <- as.numeric(df_estimated_velocities_gmwmx[i, "longitude"] + df_estimated_velocities_gmwmx[i, "estimated_trend_E_scaled"] * scale_arrow) # y1 <- as.numeric(df_estimated_velocities_gmwmx[i, "latitude"] + df_estimated_velocities_gmwmx[i, "estimated_trend_N_scaled"] * scale_arrow) # # shape::Arrows( # x0 = x0, y0 = y0, x1 = x1, y1 = y1, # col = my_col_trans, # arr.type = "triangle", # arr.length = .10, # arr.width = arrow_width, # lwd = arrow_lwd # ) # } # # my_col_trans2 <- make_transparent(my_col, alpha = .6) # points(df_estimated_velocities_gmwmx$longitude, df_estimated_velocities_gmwmx$latitude, pch = 16, col = my_col_trans2)