Last modified 11 years ago Last modified on 04/05/12 21:41:05

Different ways of plotting HOMME grid data

This run is an "ne9np8" test case.

The original HOMME grid has 23816 cells and 20 levels. It uses an 8x8 grid of Gauss-Labatto points instead of the normal 4x4.

A single 3D variable takes up 3.8MB.

Plotting data directly from model

Passing in 3 1D arrays


    (abbreviated code)
    sfile   = addfile("","r")
    zeta    = sfile->zeta
    lon1d   = sfile->lon
    lat1d   = sfile->lat

    [email protected] = lon1d
    [email protected] = lat1d
    plot_orig   = gsn_csm_contour_map(wks,zeta(lasttime,20,:),res_orig)

Using connectivity information

orig with connectivity

  f1 = addfile("","r")
  el_corners = f1->element_corners
  t_el = el_corners(ncells|:,ncorners|:)
  size = dimsizes(t_el)
  tri_el = new((/2 * size(0),3/), integer)
  tri_el(::4,:) = t_el(::2,(/0,1,2/))           !  convert the quads into triangles
  tri_el(1::4,:) = t_el(::2,(/2,3,0/))  
  tri_el(2::4,:) = t_el(1::2,(/1,2,3/))
  tri_el(3::4,:) = t_el(1::2,(/3,0,1/)) 

   [email protected]            = lon1d        ; Required to tell NCL where to
   [email protected]            = lat1d        ; overlay data on globe.
   [email protected]      = tri_el
   [email protected]    = 1

    plot   = gsn_csm_contour_map(wks,zeta(lasttime,20,:),res)

Plotting data after interpolation to lat/lon grid

Interpolate internally in HOMME to 192x384 grid

Internal Interp

ESMF Bilinear to 1 degree grid

Plotting after binlinear map to lat/lon

ESMF Patch to 1 degree grid

Plot after patch mapping