This blog shows you how to calculate and symbolize wind or current speed and direction when the underlying data is stored as U and V vectors. In order to capture the speed and direction of wind or a water current, anemometers or Doppler current profilers measure the velocity of the wind or water in two perpendicular directions, U and V. U is the velocity toward east and V is the velocity toward north. U is sometimes referred to as the zonal velocity and V the meridional velocity. Using U and V, both the speed and direction of the wind or water current can be calculated.

Storing information about the flow of wind or water as vectors provides flexibility in how we calculate direction. This is important because meteorologists and oceanographers describe the flow of wind differently. Oceanographers prefer to describe wind in terms of the “direction of mass flow” or in other words the direction **towards** which the wind is blowing. In the oceanographic convention, wind flowing from the south to the north is symbolized by an arrow pointing north. Meteorologists use an arrow or a special symbol called a wind barb to show the direction **from which** the wind is blowing. The head of the arrow or wind barb points in the direction from which the wind is blowing. In the meteorological convention, a wind blowing from west to east is symbolized by an arrow pointing west. Water currents are almost always symbolized using the oceanographic convention.

**Displaying Direction**

To correctly display wind or current direction in ArcMap, the U and V components must be converted to a symbol rotation angle. The steps below assume that you have a point feature class with the attribute fields u and v. To calculate the rotation, follow the steps below:

- Right-click the point layer in the table of contents.
- Click
**Properties**and click the**Symbology**tab. - Click the Symbol. The
**Symbol Selector**dialog box opens. - Choose an arrow or wind barb whose head is pointing north.
- Click
**OK**to close the Symbol Selector dialog. - Click
**Advanced**and choose**Rotation**from the drop-down list. The Rotation dialog box opens. - Choose <expression> in the drop-down list.
- Click the Expression Builder button to provide the expression to use for rotating the symbol.
- Specify one of the following expression:
- Oceanographic Convention: (180/3.14) * Atn2([u],[v])
- Meteorological Convention: (180/3.14) * Atn2([u],[v])+180

Note: The formulas above are correct only if U and V are measured relative to a grid where true north consistently points straight up (e.g. no rotation). Otherwise, a convergence angle correction must be applied based on the projection of the data.

- Click
**OK**to close the Expression Builder dialog. - Click
**Geographic**for the Rotation Style. - Click
**OK**on all dialog boxes.

This image shows the Symbology tab and Symbol Selector with the steps marked to apply symbol rotation.

This image shows the Expression Builder dialog with the steps marked to apply symbol rotation.

**Displaying Speed**

Using a similar procedure, U and V components can be used to calculate and display wind or current speed in ArcMap.

- Right-click the point layer in the table of contents.
- Click
**Properties**and click the**Symbology**tab. - Click
**Advanced**and choose**Size**from the drop-down list. The Size dialog box opens. - Choose <expression> in the drop-down list.
- Click the Expression Builder button to provide the expression to use for the size of the symbols.
- Specify the following for the expression: Sqr([u]**2 + [v]**2)Tip: ArcMap assumes that the size of the symbol returned from the expression is in points (1/72 of an inch). If the wind or current speeds are relatively low in your data, the symbols may be too small and cartographically unpleasing. You can adjust the size of the symbols by including a scaling factor in the formula. For example, Sqr([u]**2 + [v]**2) * 10 will increase the size of the symbols by a factor of 10.
- Click
**OK**to close the Expression Builder dialog. - Click
**OK**on all dialog boxes.

Without sounding smug, I had developed my own method for creating two types of visualizations of meso-scale windfields back in 1989 using Arc Macro Language (AML) within Arc/INFO version 4.0. I developed a set of maps with the characteristics defined in this blog post, I used the oceanographic convention for the rotated and scaled arrows since it is much easier for the map reader to understand. The purpose of the map products was to support my Masters Thesis research at UC-Riverside on integrating topographic slope and surface wind to produce areas of critical concern for wildfire risk assessment:

http://www.ingentaconnect.com/content/saf/fs/1991/00000037/00000002/art00012

It is a strange coincidence that this blog entry was posted today as the wildfire in the San Jacinto Mountains threatens the homes in the interface between centers of human habitation and the wildlands that surround them. The study area for my research included the threatened area.

I also developed an automated means to display the surface windfield as streamlines by using the the Spot AML command to figure where the next point along the windstream should be. Now the process is much easier. Thanks esri!

Hi Kevin, This is a very interesting post. I am trying to model the movement of a ship on the ocean from a fixed starting point, basically measuring the accumulative resistance from wind and current as it moves in any given direction. I have collected a very large dataset and subdivided the data per month so I can say something sensible about seasonality, etc. However, I am experiencing some difficulties in coming up with an accurate model. So far I used the past distance function in the Spatial analyst tools, but do not know how to integrate wind speed and direction and current speed and direction in a single calculation. Is there any chance that you can give me some advice with this? There should be an opportunity for an academic collaboration. You can personal message me on wpv20@cam.ac.uk if you want more details.

Kevin, I would like more information on how to use your process. Can you contact me? gistracy@gmail.com

This a very interesting approach to display wind fields. What I would like to do, however, is create actual line vectors that contain the direction and speed information in order to find the Linear Directional Mean in a particular area. Is there a similar process that utilizes some components of the above procedure? Many thanks.