METEO 820
Time Series Analytics for Meteorological Data

Steps

Prioritize...

At the end of this section, you should be able to recount the steps for making a Hovmöller diagram.

Read...

We’ve seen how the Hovmöller diagram can be used to visualize large amounts of time-space data. Now we need to learn how to create them ourselves. As with many other applications in R, using the function is relatively easy. The hard part is setting up the data for plotting. Selecting which variables will be plotted on which axis is key, and efficiently prepping your data can be difficult. Remember, a lot of data can go into these plots, so it can be a slow process. However, if you follow the steps below and really give careful thought prior to plotting, you will have no trouble making these diagrams.

Before beginning, I suggest you check out this link that provides a good visual of what we will be doing.

Define the Problem

Before you even begin prepping your data, there needs to be a clearly defined problem. Specifically, you need to decide on what you are trying to solve and how visualization will help you explore the problem. Once you feel the question is well defined, and you know what variable you will use, you can continue on.

Selecting Axis Variables

The next step is to decide on the axes. This is key! What you select drives the visualization. For example, if you select time and longitude, you are going to miss out on latitude variability. Whereas if you select time and a vertical axis, like pressure, you lose out on the spatial aspect.

Once you decide which variables will be used (e.g., longitude and time), selecting the specific axis (y or x) is not a big deal. It really depends on how you visualize. For example, it might be better to place longitude on the x-axis, as that’s how it’s normally displayed on a map. But you could reason that time should be on the x-axis, as that’s how we plot a time series. So, in the end, there’s no real right or wrong selection. What really matters is your careful description and interpretation of the visual. Just make sure you include labels!

Preparing the Data

Once you have selected the axes, you can prepare the data. This usually means averaging over some domain, often the spatial variable (latitude or longitude) you chose not to use as an axis variable. For example, if you are looking at longitude and time, you will probably have to average over latitude.

The next decision is to decide the domain to average over. It should cover the region of interest if you’re interested in looking at all the phenomena impacting that region. On the other hand, if you are focusing on just one phenomenon, it is often best to average over the region in which the phenomenon is strongest. This is what Hovmöller did when selecting his latitude averaging range to capture waves in the jet stream.

How you average over a dimension is up to you. We’ve discussed a lot of these techniques in Meteo 810/815. I will not go into more detail here, and I suggest you review the material if necessary. In most cases, you will probably be applying a latitudinal or longitudinal average.

I strongly encourage you to really think about the variable you are studying and the consequences of averaging on that variable. For example, if I’m examining air temperature, I might not average over all the latitudes but instead separate them into the northern and Southern Hemisphere. If you don’t know what to do, experiment.

R Functions to Plot

There are a few ways in which we can plot a Hovmöller diagram in R. Let’s start with what I will call ‘basic plotting’.

We can use any plotting function that displays 2D data using a color to plot the magnitude of the variable (e.g., contour.filled, ggplot, image, levelplot). To do this, we need to prepare the data ourselves and ensure we are averaging over the correct dimensions and plotting the dimensions on the correct axis. This is not difficult, and I actually prefer this method because you are in charge of what happens to the data.

Now there is another route, and that’s using the function ‘hovmoller’ from the package ‘rasterVis’. This function will automatically average the data for you; but with this ease, comes limitations. You have less flexibility in the methods for averaging and what you can actually display. I personally do not recommend this function as it’s a bit of a black box.