dspnt2s, dspnt2d

Routines that interpolate 2-d data at specified points. These routines are part of the Dsgrid package which implements a simple inverse distance weighted interpolation algorithm.


Synopsis

    procedure dspnt2s(
        x[*]  : float,
        y[*]  : float,
        z[*]  : float,
        xo[*] : float,
        yo[*] : float
    )

    procedure dspnt2d(
        x[*]  : float,
        y[*]  : float,
        z[*]  : float,
        xo[*] : float,
        yo[*] : float
    )

Arguments

x
1D array of any length (npts) containing the X coordinates of the points where interpolation is desired
y
1D array of length npts containing the Y coordinates of the points where interpolation is desired
z
1D array of length npts containing the functional values of the input data points. z(i) is the value of the input function at coordinate (x(i), y(i)) for i=1,npts.
xo
1D array of length m containing the X coordinates of the output data grid. The values in xo may be in any order and m can be equal to one.
yo
1D array of length m containing the Y coordinates of the output data grid. The values in yo may be in any order and m can be equal to one.

Description

Both the dspnt2s and dspnt2d functions interpolate 2D data at a list of specified points and return the results as a 1D float array dimensioned m.

dspnt2s is the single precision version and dspnt2d is the double precision version.


Example

begin

  NUM = 171
  NX = 21
  NY = 21

  RAND_MAX = 32767.0

  xi = new((/NUM/),float)
  yi = new((/NUM/),float)
  zi = new((/NUM/),float)

  xo = new((/NX/),float)
  yo = new((/NY/),float)
  output2 = new((/NX,NY/),float)

  xminin = -0.2
  yminin = -0.2
  xmaxin = 1.2
  ymaxin = 1.2
  xminot =  0.0
  yminot =  0.0
  xmaxot = 1.0
  ymaxot = 1.0

  xeye = 1.3
  yeye = -1.8
  zeye = 3.6
;
; Create random data in three space and define a function.
;
  rand1 = new((/NUM/),float)
  rand2 = new((/NUM/),float)
  srand(1)
  do i=0,NUM-1
    rand1(i) = rand
    rand2(i) = rand
  end do
  xi = xminin+(xmaxin-xminin)*(rand1 / RAND_MAX)
  yi = yminin+(ymaxin-yminin)*(rand2 / RAND_MAX)
  zi = (xi-0.25)*(xi-0.25) + (yi-0.50)*(yi-0.50)

;
; Create the output grid.
;
  ii = fspan(0.,NX-1,NX)
  xo = xminot + ( ii / (NX-1)) * (xmaxot-xminot)
  yo = yminot + ( ii / (NY-1)) * (ymaxot-yminot)

;
; Interpolate using both dsgrid2s and dspnt2s.
;
  output1 = dsgrid2s(xi, yi, zi, xo, yo)

  do i=0,NX-1
    do j=0,NY-1
      dspnt2s(xi, yi, zi, xo(i), yo(j), output2(i,j))
    end do
  end do
end

Reference Manual Control Panel

NG4.1 Home, Index, Examples, Glossary, Feedback, Ref Contents, Ref WhereAmI?


$Revision: 1.6 $ $Date: 1998/11/11 23:32:15 $