# csa2lxs

csa2lxs is called to find values for an approximating cubic spline for two-dimensional input data at a list of specified coordinates. csa2xs is called if you want to weight the input data values, calculate derivatives, or handle data sparse areas specially. If you do not want to do any of these three things, then use csa2ls.

Note: This function is only available in version 4.1.1 of NCL. If your site is licensed for version 4.1, then you can get version 4.1.1 for free. To get version 4.1.1 of NCAR Graphics software, please contact your site representative. If you don't know who your site representative is, then send email to ncarginf@ucar.edu or call (303) 497-1201.

## Synopsis

```    function csa2lxs(
xi[*]     : float,
yi[*]     : float,
zi[*]     : float,
wts[*]    : float,
knots[2]  : integer
smth[1]   : float
nderiv[2] : integer
xo[*]     : float
yo[*]     : float
)

```

## Arguments

xi
A one-dimensional array of any size containing the X coordinates of the input data points.
yi
A one-dimensional array of the same size as xi containing the Y coordinates of the input data points.
zi
A one-dimensional array of the same size as xi and yi containing the functional values at the input data coordinates given by xi and yi. zi[k] is the input function value at (xi[k],yi[k]) for k=0 to dimsizes(xi)-1.
wts
An array containing weights for the zi values at the input xi and yi values, that is, wts(k) is a weight for the value of zi(k) for k=0,dimsizes(xi)-1. If you do not desire to weight the input zi values, then set wts to -1, and in that case wts can be a scalar. The weights in the wts array are relative and may be set to any non-negative value. When csa2lxs is called, the weights are summed and the individual weights are normalized so that the weight sum is unity.
knots
The number of knots to be used in constructing the approximating values. knots(0) and knots(1) must both be at least 4. The larger the value for knots, the closer the approximated surface will come to passing through the input function values.
smth
A parameter that controls extrapolation into data sparse regions. If smth is zero, then nothing special is done in data sparse regions. A good first choice for smth is 1.
nderiv
Specifies whether you want functional values (=0), first derivative values (=1), or second derivative values (=2) in each of the two coordinate directions.
xo
A one-dimensional array containing the X coordinates of a list of points where functional values are desired. xo can be a single point.
yo
A one-dimensional array containing the Y coordinates of a list of points where functional values are desired. yo can be a single point.

## Return value

csa2lxs returns a one-dimensional array containing the calculated functional values. The returned value has the same size as xo and yo. If zo is the returned value, then zo(i) contains the functional value at coordinate (xo(i),yo(i)) for i=0,dimsizes(xo)-1.

## Description

csa2lxs is in the csagrid package - a software package that implements a cubic spline approximation algorithm to fit a function to input data. The input for the approximation is a set of randomly-spaced data. These data may be one-dimensional, two-dimensional, or three-dimensional.

The general documentation for csagrid contains several complete examples for entries in the csagrid package.

## Example

```begin

;
;  Create the input arrays.
;
xmin = -1.4
xmax =  1.4
ymin = -1.2
ymax =  1.2

ndata = 500
xi = new(ndata,float)
yi = new(ndata,float)
zi = new(ndata,float)

do i=0,ndata-1
xi(i) = xmin + (xmax-xmin)*rand()/32767.
yi(i) = ymin + (ymax-ymin)*rand()/32767.
zi(i) = xi(i) + yi(i)
t1 = 1.0/((fabs(xi(i)-0.1))^2.75 + fabs(yi(i))^2.75 + 0.09)
t2 = 1.0/((fabs(xi(i)+0.1))^2.75 + fabs(yi(i))^2.75 + 0.09)
zi(i) = 0.3*(zi(i)+t1-t2)
end do

;
;  Find an approximated value for the second order mixed partial at
;  a single point.
;
knots = (/10,10/)
xo = 0.
yo = 0.
knots = 4
wts = -1.
smth = 0.
nderiv = (/1,1/)
zo = csa2lxs(xi,yi,zi,wts,knots,smth,nderiv,xo,yo)
end
```

### Reference Manual Control Panel

\$Revision: 1.3 \$ \$Date: 1999/03/18 22:38:59 \$