
NCL Home >
Documentation >
Functions >
Array query,
Lat/Lon functions
niceLatLon2D
Check two-dimensional map coordinates to see if they have a "nice" structure.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ; This library is automatically loaded ; from NCL V6.2.0 onward. ; No need for user to explicitly load. function niceLatLon2D ( lat2d [*][*] : numeric, lon2d [*][*] : numeric )
Arguments
lat2dA two-dimensional (2D) array of latitudes.
lon2dA two-dimensional (2D) array of longitudes.
Return value
Returns True if both the latitude and longitude two dimensional arrays hace a "nice" structure; otherwise return False.
Description
The function executes the following:
dimll = dimsizes(lat2d) ; (south_north,west_east) nLeft = dimll(0) nRght = dimll(1) if (all(lat2d(:,0).eq.lat2d(:,nRght/2)) .and. \ all(lat2d(:,0).eq.lat2d(:,nRght-1)) .and. \ all(lon2d(0,:).eq.lon2d(nLeft/2,:)) .and. \ all(lon2d(0,:).eq.lon2d(nLeft-1,:)) ) then return(True) else return(False) end if ; if True then ; the data could be made accessible via classic ; netCDF coordinate array subscripting. ; ; lat = lat2d(:,0) ; lon = lon2d(0,:) ; lat@units= "degrees_north" ; lon@units= "degrees_east" ; lat!0 = "lat" ; lon!0 = "lon" ; lat&lat = lat ; lon&lon = lon ; ; assign to a variable
Examples
Example 1
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" fName = "wrfout_d01_2003-07-13_12:00:00.nc" f = addfile(fName, "r") lat2d = f->XLAT(0,:,:) ; [south_north | 160] x [west_east | 180] lon2d = f->XLONG(0,:,:) if(niceLatLon2D(lat2d,lon2d)) then lat = lat2d(:,0) ; create classic 1D coordinate arrays lon = lon2d(0,:) lat@units= "degrees_north" lon@units= "degrees_east" lat!0 = "lat" lon!0 = "lon" lat&lat = lat lon&lon = lon else exit end if T = f->T ; (time,lev,lat2d,lon2d) T!2 = "lat" ; rename dimension T!3 = "lon" T&lat = lat ; assign values T&lon = lon