
nngetaspectd
Retrieves an aspect at a specified coordinate position.
Prototype
function nngetaspectd ( i [1] : integer, j [1] : integer ) return_val [1] : double
Arguments
iA subscript indexing the first dimensioned variable in the output grid of the most recent call to natgrid or natgridd.
jA subscript indexing the second dimensioned variable in the output grid of the most recent call to natgrid or natgridd.
Return value
The aspect (a scalar value) at the specified coordinate position (if aspects were computed during the last call to natgrid or natgridd).
Description
This function is part of the Natgrid package, which implements a natural neighbor interpolation method. Much useful information is available at the above link, including the descriptions of many control parameters that can be modified to materially change its behavior. (The functions nngetp and nnsetp are used to access these parameters.)
nngetaspectd is used to retrieve values which may have been computed during the last call to natgrid or natgridd. Note that these values will have been computed only if you set the value of the control parameter "sdi" appropriately and that the value of the control parameter "rad" says whether they are to be returned in degrees or radians.
See Also
Examples
begin ; ; Define constants ; RAD2DEG = 57.29578 NUMXOUT = 21 NUMYOUT = 21 ; ; Coordinate data are defined as random numbers between -0.2 ; and 1.2 and are explicitly defined here for uniformity ; across platforms. ; x = (/ \ 1.16, 0.47, 0.29, 0.72, 0.52, 1.12, 0.33, 0.20, 0.30, \ 0.78, 0.92, 0.52, 0.44, 0.22, -0.10, 0.11, 0.59, 1.13, \ 0.68, 1.11, 0.93, 0.29, 0.74, 0.43, 0.87, 0.87, -0.10, \ 0.26, 0.85, 0.00, -0.02, 1.01, -0.12, 0.65, 0.39, 0.96, \ 0.39, 0.38, 0.94, -0.03, -0.17, 0.00, 0.03, 0.67, -0.06, \ 0.82, -0.03, 1.08, 0.37, 1.02, -0.11, -0.13, 1.03, 0.61, \ 0.26, 0.18, 0.62, 0.42, 1.03, 0.72, 0.97, 0.08, 1.18, \ 0.00, 0.69, 0.10, 0.80, 0.06, 0.82, 0.20, 0.46, 0.37, \ 1.16, 0.93, 1.09, 0.96, 1.00, 0.80, 0.01, 0.12, 1.01, \ 0.48, 0.79, 0.04, 0.42, 0.48, -0.18, 1.16, 0.85, 0.97, \ 0.14, 0.40, 0.78, 1.12, 1.19, 0.68, 0.65, 0.41, 0.90, \ 0.84, -0.11, -0.01, -0.02, -0.10, 1.04, 0.58, 0.61, 0.12, \ -0.02, -0.03, 0.27, 1.17, 1.02, 0.16, -0.17, 1.03, 0.13, \ 0.04, -0.03, 0.15, 0.00, -0.01, 0.91, 1.20, 0.54, -0.14, \ 1.03, 0.93, 0.42, 0.36, -0.10, 0.57, 0.22, 0.74, 1.15, \ 0.40, 0.82, 0.96, 1.09, 0.42, 1.13, 0.24, 0.51, 0.60, \ 0.06, 0.38, 0.15, 0.59, 0.76, 1.16, 0.02, 0.86, 1.14, \ 0.37, 0.38, 0.26, 0.26, 0.07, 0.87, 0.90, 0.83, 0.09, \ 0.03, 0.56, -0.19, 0.51, 1.07, -0.13, 0.99, 0.84, 0.22 /) y = (/ \ -0.11, 1.07, 1.11, -0.17, 0.08, 0.09, 0.91, 0.17, -0.02, \ 0.83, 1.08, 0.87, 0.46, 0.66, 0.50, -0.14, 0.78, 1.08, \ 0.65, 0.00, 1.03, 0.06, 0.69, -0.16, 0.02, 0.59, 0.19, \ 0.54, 0.68, 0.95, 0.30, 0.77, 0.94, 0.76, 0.56, 0.12, \ 0.05, -0.07, 1.01, 0.61, 1.04, -0.07, 0.46, 1.07, 0.87, \ 0.11, 0.63, 0.06, 0.53, 0.95, 0.78, 0.48, 0.45, 0.77, \ 0.78, 0.29, 0.38, 0.85, -0.10, 1.17, 0.35, 1.14, -0.04, \ 0.34, -0.18, 0.78, 0.17, 0.63, 0.88, -0.12, 0.58, -0.12, \ 1.00, 0.99, 0.45, 0.86, -0.15, 0.97, 0.99, 0.90, 0.42, \ 0.61, 0.74, 0.41, 0.44, 1.08, 1.06, 1.18, 0.89, 0.74, \ 0.74, -0.06, 0.00, 0.99, 0.03, 1.00, -0.04, 0.24, 0.65, \ 0.12, 0.13, -0.09, -0.05, 1.03, 1.07, -0.02, 1.18, 0.19, \ 0.03, -0.03, 0.86, 1.12, 0.38, 0.72, -0.20, -0.08, -0.18, \ 0.32, 0.13, -0.19, 0.93, 0.81, 0.31, 1.09, -0.03, 1.01, \ -0.17, 0.84, -0.11, 0.45, 0.18, 0.23, 0.81, 0.39, 1.09, \ -0.05, 0.58, 0.53, 0.96, 0.43, 0.48, 0.96, -0.03, 1.13, \ 1.16, 0.16, 1.15, 0.57, 0.13, 0.71, 0.35, 1.04, 0.62, \ 1.03, 0.98, 0.31, 0.70, 0.97, 0.87, 1.14, 0.08, 1.19, \ 0.88, 1.00, 0.51, 0.03, 0.17, 1.01, 0.44, 0.17, -0.11 /) z = (x-0.25)*(x-0.25) + (y-0.50)*(y-0.50) u = new((/NUMXOUT,NUMYOUT/),double) v = new((/NUMXOUT,NUMYOUT/),double) xc = 1./(NUMXOUT-1.) xo = ispan(0,NUMXOUT-1,1) * xc yc = 1./(NUMYOUT-1.) yo = ispan(0,NUMXOUT-1,1) * yc ; ; Turn on gradient estimate calculations, flag calculation of ; aspects and slopes, set flag to return aspects and slopes in ; radians. ; nnsetp("SDI - compute slopes and aspects",1) nnsetp("IGR - use gradient estimates",1) nnsetp("RAD - return results in radians",1) ; ; Do the interpolation. ; out = natgrid(x, y, z, xo, yo) ; ; Get the aspects. ; do i=0,NUMXOUT-1 do j=0,NUMYOUT-1 rtmp = nngetaspectd(i,j) u(i,j) = sin(rtmp) v(i,j) = cos(rtmp) end do end do ; ; Get the slopes. ; do i = 0,NUMXOUT-1 do j = 0,NUMYOUT-1 rtmp = nngetsloped(i, j); u(i,j) = RAD2DEG*rtmp end do end do end