Stream Line Plots of Vector Data

May 2nd, 2010 Posted in Examples

Wind Mapping Data

The vector data set called wind represents air currents over North America. This example uses a combination of techniques:

  • Stream lines to trace the wind velocity
  • Slice planes to show cross-sectional views of the data
  • Contours on the slice planes to improve the visibility of slice-plane coloring
  • 1. Determine the Range of the Coordinates

the data and determine minimum and maximum values to locate the slice planes and contour plots (, , max).

2. Add Slice Planes for Visual Context

1
2
3
4
5
load wind
xmin = min(x(:));
xmax = max(x(:));
ymax = max(y(:));
zmin = min(z(:));

Calculate the magnitude of the vector field (which represents wind speed) to generate scalar data for the slice command. Create slice planes along the x- at xmin, 100, and xmax, along the y- at ymax, and along the z- at zmin. Specify interpolated face coloring so the slice coloring indicates wind speed, and do not draw edges (sqrt, slice, , EdgeColor).

3. Add Contour Lines to the Slice Planes

1
2
3
wind_speed = sqrt(u.^2 + v.^2 + w.^2);
hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);
set(hsurfaces,'FaceColor','interp','EdgeColor','none')

Draw light gray contour lines on the slice planes to help quantify the color mapping (contourslice, EdgeColor, LineWidth).

4. Define the Starting Points for the Stream Lines

1
2
3
hcont = ...
contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);
set(hcont,'EdgeColor',[.7,.7,.7],'LineWidth',.5)

In this example, all stream lines start at an x-axis value of 80 and span the range 20 to 50 in the y-direction and 0 to 15 in the z-direction. Save the handles of the stream lines and set the line width and color (meshgrid, , LineWidth, Color).

5. Define the

1
2
3
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
hlines = streamline(x,y,z,u,v,w,sx,sy,sz);
set(hlines,'LineWidth',2,'Color','r')

Set up the view, expanding the z-axis to make it easier to read the graph (view, daspect, axis).

1
2
3
view(3)
daspect([2,2,1])
axis tight

See coneplot for an example of the same data plotted with cones.

Leave a Reply

You must be logged in to post a comment.