1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
# AMAP -- Vector linear transformation. Map the range of pixel values
# a1,a2 from a into the range b1,b2 in b. It is assumed that a1 < a2
# and b1 < b2.
procedure amap$t (a, b, npix, a1, a2, b1, b2)
PIXEL a[ARB], b[ARB]
PIXEL a1, a2, b1, b2
$if (datatype == sil)
long minout, maxout, aoff, boff, pixval
$else
PIXEL minout, maxout, aoff, boff, pixval
$endif
$if (datatype == ld)
double scalar
$else
real scalar
$endif
int npix, i
begin
$if (datatype == ld)
scalar = (double (b2) - double (b1)) / (double (a2) - double (a1))
$else
scalar = (real (b2) - real (b1)) / (real (a2) - real (a1))
$endif
minout = min (b1, b2)
maxout = max (b1, b2)
aoff = a1
boff = b1
do i = 1, npix {
pixval = (a[i] - aoff) * scalar
b[i] = max(minout, min(maxout, pixval + boff))
}
end
|