NCL Home> Application examples> Non-uniform grids || Data files for some examples

Example pages containing: tips | resources | functions/procedures

NCL Graphics: Geodesic Mesh

The geodesic meshes used in the examples on this page form a connection of lines over a sphere. The meshes are defined by a number of cells (ncells), each which of which have a certain number of edges defined by a set of vertices (nvert).

To contour data on a mesh, you must define the cell centers by either setting the sfXArray and sfYArray resources to one-dimensional arrays that represent the cell centers, or, if this is data to be plotted over a map, then by attaching the lat/lon centers of the data as special "lat1d" and "lon1d" attributes to the data being plotted.

When NCL encounters one-dimensional coordinates in this fashion, then under the hood it first converts the data to a triangular mesh before contouring it.

In addition, if your data has 2D arrays that define its cell edges (ncells x nvertices), then you can set the additional resources sfXCellBounds and sfYCellBounds to these arrays, which will likely produce a better looking contour plot.

geo_1.ncl: This particular geodesic grid has 2562 cells, each with 5 edges. The lat/lon cell centers are defined as 1D arrays called grid_center_lat and grid_center_lon on the file, while the cell edges are defined as 2D arrays dimensioned 2562 x 6 (ncells x nvertices), called grid_corner_lat and grid_corner_lon.

To plot this data over a map, sfXArray and sfYArray are set to the mesh centers (grid_center_lat and grid_center_lon), while sfXCellBounds and sfYCellBounds are set to the cell corners (grid_corner_lat and grid_corner_lon). Both sets of lat/lon arrays are in radians, so they have to first be converted to degrees.

The second image draws the cell centers as filled dots, and the geodesic mesh as polylines. Note that the cell edges have to first be closed before drawing them.

See the next example which uses an updated version of gsn_coordinates to draw the mesh edges and centers.

geo_1_660.ncl: This image is similar to the second image from the previous example, except it uses a newer version of gsn_coordinates to draw the mesh edges and cell centers. You must have NCL version 6.6.0 or later for this functionality.
geo_2.ncl: This script plots the same data as the previous examples, except over a polar stereographic plot of the northern hemisphere. Setting gsnPolar to either "NH" or "SH" selects the hemisphere, while mpMinLatF adjusts the minimum latitude (defaults to 0.0). If plotting over the southern hemisphere, then set mpMaxLatF to set the maximum latitude (defaults to 0.0).
geo_3.ncl: This script compares geodesic data drawn over both the northern and southern hemispheres using a panel plot created with gsn_panelk.

gsn_coordinates is again used to draw he cell centers edges, except this time the special resource gsnCoordsAttach is set to True, telling the procedure to attach the lines and markers to the plots. This enables the plots to still contain the lines and markers when they are paneled later.

geo_4.ncl: This script plot data over a higher resolution geodesic mesh (40962 cells) and adds just the cell edges using gsn_coordinates.

Note the cell centers are not drawn because the plot would be too busy otherwise. This is accomplished by using (/ and /) when passing "ke" to gsn_coordinates. This effectively strips the special lat1d and lon1d attributes from the variable, which prevents any cell center information from being passed to the procedure.