NCL Website header
NCL Home> Application examples> Models || Data files for some examples

Example pages containing: tips | resources | functions/procedures


WRF plotting - zooming in on maps

This page illustrates different ways to zoom in on WRF-ARW plots drawn over maps.

Currently, three methods are illustrated below:

  1. Using wrf_xxxxx plotting functions to draw plot and use the native WRF map projection defined on the file.

  2. Using wrf_map_resources and to define the resources needed for the native projection, but then using gsn_csm_contour_map to plot the data.

  3. Plotting the data in a projection different from what's defined on the file, using gsn_csm_contour_map.
wrf_zoom_1.ncl: This script creates two plots using wrf_xxxx plotting functions:

  1. A simple filled contour plot of the HGT variable read off a WRF output file.
  2. The same data, but zoomed in on the upper left corner of the map.

In order to zoom in on WRF-ARW data and keep the same map projection that is defined on the file, you must:

  • Calculate the indexes of the zoomed in area of interest.
  • Use the indexes to subset the variable(s) you are interested in plotting, before calling wrf_contour or wrf_vector.
  • Use the same indexes for setting the special Xstart, Xend, Ystart, and Yend resources, and set the special ZoomIn resource to True before calling wrf_map_overlays.
wrf_zoom_2.ncl: This example plots the same data as the previous example, except this time gsn_csm_contour_map is used to plot the data.

The data is still being plotted in the native WRF map projection, so you must call wrf_map_resources in order to set the correct map resources. You must also call this function after setting the ZoomIn / Xstart / Xend / / YStart / YEnd resources, or the map won't be properly zoomed.

The reason for using gsn_csm_contour_map instead of wrf_contour and wrf_map_overlays is simply if you don't want all the extra titles and layout that the wrf_xxxx functions give you.

wrf_zoom_3.ncl: This example plots the same data as the previous two examples, except the data is overlaid on a standard lat/lon map projection.

In order to plot data in a non-native projection, you must:

  • Read the 2D lat/lon arrays off the file and attach them as special lat2d / lon2d attributes to the data being plotted.
  • Zoom in on the area of interest by setting desired NCL map resources.

You no longer need to call wrf_map_resources or set the special ZoomIn/X/YStart/End resources when zooming in.

Note that if you plot WRF-ARW data in a different map projection than what's defined on the WRF file, you may see the grid is slightly skewed. The results are still correct, but the image will be oriented a little differently.

The reason for plotting WRF-ARW data in a non-native projection may be if you need to compare WRF data to another data variable that is defined on a different map projection.

Curvilinear grid

Data: wrfout_d01_2003-07-15_00:00:00 (NetCDF WRF output file)

This example plots the Q2 variable read off a WRF output file and illustrates yet another way to zoom in on the data, by actually selection a lat/lon area of interest, instead of "the upper left domain" like the previous examples.

This example shows two ways to zoom in on WRF-ARW data: 1) using the same native WRF map projection, or 2) plotting the data in a different map projection.

The first plot shows how to plot the data in the native map projection by first using the wrf_user_ll_to_ij function to calculate the i,j index locations into the 'q2' array that represent the approximate lat/lon area of interest. These index values are used with the ZoomIn resource to set the special Xstart, Xend, Ystart, and Yend resources before you call wrf_map_resources to set the correct NEW native map projection parameters.

The second plot shows how to plot the data using the 2D lat/lon arrays read off the file. In this case, you don't need the special index values, because NCL will use the lat/lon arrays to figure out the correct subset of the data to plot.

You may notice that the two plots are not plotted in the exact same lat/lon area. This is because the lat/lon corners of the first plot are only *approximately* equal to the requested lat/lon area of interest. The wrf_user_ll_to_ij function gives you the i,j indexes that are closest to the actual lat/lon area of interest.

The second plot is the exact area requested, because NCL now has the actual lat/lon arrays, and can use this to interpolate the data as needed, in the area of interest.

For another example of subsetting a WRF map domain, see the "wrf_Zoom.ncl" example at