Skip to contents

Simple function to plot a velocities vector field.

Usage

vectorField(data, scale = 1, everyx = 1, everyy = 1, size = 0.25)

Arguments

data

A dataframe containing data to be plotted in the form of: (x, y, u, v).

scale

length factor of vector components

everyx

keep one out of every everyx values, along x direction.

everyy

keep one out of every everyy values, along y direction.

size

arrow size.

Value

A ggplot2 plot.

Details

This function plots a vector field given a data.frame with coordinates (x, y) and corresponding velocity components (u, v). Vectors are coloured by magnitude (speed). The coordinates are assumed to be on a regular rectangular domain in UTM reference system.

This function is heavily inspired by snippets of code in R Graphics Cookbook by Winston Chang (https://r-graphics.org/index.html).

Examples

if (FALSE) {
metU <- importADSOBIN('/path/to/meteofile',
                      variable = 'U',
                      slice=2,
                      k = 1000,
                      verbose = TRUE)
metU <- as.data.frame(metU)
metU <- metU %>% 
        mutate(u = z, z = NULL)

metV <- importADSOBIN('/path/to/meteofile',
                      variable = 'V', 
                      slice=2, 
                      k = 1000, 
                      verbose = TRUE)
metV <- as.data.frame(metV)
metV <- metV %>%  
        mutate(v = z, z = NULL)

met <- merge(metU, metV, by = c("x", "y"))

vectorField(met, everyx = 2, everyy = 2, scalex = 10, scaley = 10) +
    coord_fixed(ratio = 1, xlim = c(0, 1000), ylim = c(0, 1000)) +
    scale_color_viridis_c()

}