[daip] XSMTH

Eric Greisen egreisen at nrao.edu
Mon Jul 28 13:40:36 EDT 2003


The task figures out the position in each input row corresponding to
the output pixel.  Then it finds the range of pixels in the input row
the corresponds to +- one support radius.  It weights these with the
Gaussian function into the output pixel.

The code is fairly straightforward

         LROW = TRC(1) - BLC(1) + 1.01         input size
         IROW = CATBLK(KINAX)                  output size
         XMUL = (LROW-1.0) / (IROW-1.0)
         XJ = 1.0 - XMUL
         XDIV = IXDIV                          # divisions/cell in
                                                lookup table
         DO 30 I = 1,IROW
            XJ = XJ + XMUL
            J1 = XJ - SUPRAD + 0.9999
            J2 = XJ + SUPRAD
            J1 = MAX (1, J1)
            J2 = MIN (LROW, J2)
            S = 0.0
            W = 0.0
            DO 10 J = J1,J2
               IF (XDATA(J).NE.FBLANK) THEN
                  L = ABS(XJ-J)*XDIV + 1.5
                  S = XDATA(J) * TAB(L) + S
                  W = TAB(L) + W
                  END IF
 10            CONTINUE
 20         RESULT(I) = FBLANK
            IF (W.GT.WCUTOF) RESULT(I) = S / W
 30         CONTINUE

Eric Greisen



More information about the Daip mailing list