Simple function to plot a vector field given two components.

## 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.

- preview
(default = TRUE) create a plot. If FALSE it only creates the ggplot2 directive to be added to another plot.

## Value

A `ggplot2`

object if `preview = TRUE`

. A `ggplot2`

a plot, as a `contourPlot2()`

and the vector field will be overlapped.

## 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 grid in the 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, scale = 10) +
coord_fixed(ratio = 1, xlim = c(0, 1000), ylim = c(0, 1000)) +
scale_color_viridis_c()
# Overlap the vector field to a contour plot and set vector colours to black
met$ws <- sqrt(met$u^2 + met$v^2)
contourPlot2(met, z = "ws") +
vectorField(met, everyx = 2, everyy = 2, scale = 10, preview = FALSE) +
scale_colour_gradient(low = "black", high = "black", guide = NULL)
}
```