
lonFlip
Reorders a global rectilinear array about the central longitude coordinate variable.
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 lonFlip ( x : numeric ) return_val [dimsizes(x)] : typeof(x)
Arguments
xA rectilinear array of any dimensionality. The rightmost dimension must be the longitude dimension, which must be global and without a cyclic point. The size of the longitude dimension must be an even number. The "central value" is assummed to be the Grenwich Meridion (GM; 0 longitude) or the International Data Line; IDL/DL; 180 longitude).
Return value
The results are returned in an array of the same type and dimensionality as x.
Description
This function reorders (flips) the global input array about the longitude coordinate variable associated with the input variable. The size of the longitude dimension must be an even number.
This function implicitly assumes that the grid nominally spans:
- (a): 0 to 360 with the nominal mid-point being the International Data Line (IDL/DL; 180 longitude). Example: lon: [ 0..357.5] or [ 1.25..358.75] with nlon=144
- (b): -180 to 180 with the nominal mid-point being the Grenwich Meridion (GM; 0 longitude). Example: lon: [-180..177.1875] or [-178.59375..178.59375] with nlon=128
The lonPivot is more flexible.
This function only works for a global rectilinear grid. A rectilinear grid is one where both spatial coordinate variables (latitude and longitude) are one dimensional: Eg: lat[*] and lon[*].
See Also
Examples
Example 1: Let variable 't' be:
printVarSummary(t)produces:
Variable: t Type: float Total Size: 589824 bytes 147456 values Number of Dimensions: 4 Dimensions and sizes: [time | 1] x [lev | 18] x [lat | 64] x [lon | 128] Coordinates: time: [ 31.. 31] lev: [4.8093..992.528] lat: [-87.8638..87.8638] lon: [ 0..357.1875] >> mid-point 180 (DL) Number Of Attributes: 3 long_name : temperature units : K time_op : averageThen the following code will reorder the variable about the center longitude (here: 180):
t = lonFlip(t) ; reorder printVarSummary(t)will produce:
Variable: t Type: float Total Size: 589824 bytes 147456 values Number of Dimensions: 4 Dimensions and sizes: [time | 1] x [lev | 18] x [lat | 64] x [lon | 128] Coordinates: time: [ 31.. 31] lev: [4.8093..992.528] lat: [-87.8638..87.8638] lon: [-180..177.1875] >> mid-point 0 (GM) Number Of Attributes: 4 long_name : temperature units : K time_op : averageIf it is preferred to retain the original variable and create a new variable:
; create a new variable t_flip = lonFlip(t) printVarSummary(t_flip)will produce:
Variable: t_flip Type: float Total Size: 589824 bytes 147456 values Number of Dimensions: 4 Dimensions and sizes: [time | 1] x [lev | 18] x [lat | 64] x [lon | 128] Coordinates: time: [ 31.. 31] lev: [4.8093..992.528] lat: [-87.8638..87.8638] lon: [-180..177.1875] Number Of Attributes: 4 long_name : temperature units : K time_op : average