
wrf_user_interp_line
Interpolates a two-dimensional WRF-ARW field along a line.
Available in version 6.6.0 and later.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" ; These two libraries are automatically load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" ; loaded from NCL V6.4.0 onward. ; No need for user to explicitly load. function wrf_user_interp_line ( var2d : numeric, loc_param : numeric, opt [1] : logical ) return_val : numeric
Arguments
var2dA WRF-ARW field to be interpolated; it must have at least two dimensions, with the rightmost dimensions being latitude x longitude.
loc_paramFour values representing the start point and end point for the line (start_x, start_y, end_x, end_y), OR two values representing a single point when opt@use_pivot is set to True, representing the pivot point.
The values can be in grid coordinates or lat/lon coordinates (start_x = start_lon, start_y = start_lat, end_x = end_lon, end_y = end_lat). See the description below for more information.
optA logical scalar that can optionally contain attributes. See description below.
Return value
Data interpolated to a specified line on the model domain.
Description
This function interpolates two-dimensional WRF-ARW model data onto a specified line.
This function replaces wrf_user_intrp2d, which will be deprecated in NCL V6.6.0.
The interpolation can be further customized by attaching attributes to the opt argument:
- use_pivot - set to True to indicate that loc_param
and opt@angle are used. Otherwise, loc_param
must be set to four values to indicate a start and end point.
Default: False
- angle - an angle for vertical plots - 90 represents a WE
interpolation line; ignored if opt@use_pivot is either not
set or is set to False.
Default: 0.0
- latlon - set to True if the values in loc_param
are latitude and longitude values rather than grid values
Default: False
- file_handle - must be set to an NCL file handle (returned
from
addfile or addfiles)
when opt@latlon is True
or opt@linecoords is True; otherwise, this is ignored.
- timeidx - the time index to use for moving nests
when latlon is True. Set to 0 if the nest is not moving.
Default: 0
- linecoords - set to True to attach the latitude and
longitude coordinates for the interpolation line as attributes "lats"
and "lons" on the return variable.
Default: False
See Also
wrf_user_interp_level, wrf_user_vert_cross
Examples
Example 1: Interpolate a 2D field to two lines: one using a west-east line and one using a north-south line.
a = addfile("wrfout_d01_2008-09-28_06:30:00","r") ;---Calculate T2 at first time step t2 = wrf_user_getvar(a,"T2",0) printVarSummary(t2) ; [south_north | 197] x [west_east | 206] ;---Interpolate the field to a line using a pivot point in the middle of the domain and an angle. dims = dimsizes(t2) loc_param = (/ dims(1)/2, dims(0)/2 /) opt = True opt@use_pivot = True opt@angle = 90. ; line from west to east t2_line_we = wrf_user_interp_line(t2,loc_param,opt) opt@angle = 0. ; line from south to north t2_line_sn = wrf_user_interp_line(t2,loc_param,opt) printVarSummary(t2_line_we) ; [line_idx | 206] printVarSummary(t2_line_sn) ; [line_idx | 197]
Output:
Variable: t2 Type: float Total Size: 162328 bytes 40582 values Number of Dimensions: 2 Dimensions and sizes : [south_north | 197] x [west_east | 206] Coordinates: Number Of Attributes: 6 FieldType : 104 MemoryOrder : XY description : TEMP at 2 M units : K stagger : coordinates : XLONG XLAT Variable: t2_line_we Type: float Total Size: 824 bytes 206 values Number of Dimensions: 1 Dimensions and sizes : [line_idx | 206] Coordinates: Number Of Attributes : 3 units : K description : TEMP at 2 M _FillValue : 9.96921e+36 Variable: t2_line_sn Type: float Total Size: 788 bytes 197 values Number of Dimensions: 1 Dimensions and sizes : [line_idx | 197] Coordinates: Number Of Attributes: 3 units : K description : TEMP at 2 M _FillValue : 9.96921e+36
Example 2: Interpolate a 2D filed to a line (read from 105 WRF output files) using start and end lat/lon values.
;---Open multiple WRF output files dir = "./" filenames = systemfunc("ls " + dir + "wrfout_d01_2008-09*") ; 105 files a = addfiles(filenames,"r") ;---Get T2 for all time steps t2 = wrf_user_getvar(a, "T2",-1) ; [Time | 105] x [south_north | 197] x [west_east | 206] ;---Start/end lat/lon line for interpolation start_lon = 115 end_lon = 130 start_lat = 52 end_lat = 42 ;---Options for lat/lon line opt = True opt@latlon = True opt@file_handle = a[0] ; use first file; only valid if not a moving nest opt@linecoords = True ; returns lat/lon values on line as attributes of return value ;---Interpolate the 2D field to the lat/lon line t2_line = wrf_user_interp_line(t2,(/start_lon,start_lat,end_lon,end_lat/),opt) printVarSummary(t2_line) ; [Time | 105] x [south_north | 197] x [west_east | 206]
Output:
Variable: t2 Total Size: 17044440 bytes 4261110 values Type: float Number of Dimensions: 3 Dimensions and sizes : [Time | 105] x [south_north | 197] x [west_east | 206] Coordinates: Number Of Attributes: 6 FieldType : 104 MemoryOrder : XY description : TEMP at 2 M units : K stagger : coordinates : XLONG XLAT Variable: t2_line Type: float Total Size: 27720 bytes 6930 values Number of Dimensions: 2 Dimensions and sizes : [Time | 105] x [line_idx | 66] Coordinates: Number Of Attributes : 5 units : K description : TEMP at 2 M _FillValue : 9.96921e+36 lats : <ARRAY of 66 elements> lons : <ARRAY of 66 elements>