Table of Contents
ccdmath - map arithmetic using function expressions
ccdmath
in=[image1[,image2,...]] out=image fie=expression
ccdmath combines
maps through some simple operations to make a new map. It also handles a
few arithmetic functions, such as sqrt, exp, log10. See fie(3NEMO)
for a
full definition of the available functions and operations. Input maps are
referred to by %n, where n is the ordinal number of the input maps (1 being
the first one), in the function expression fie.
The program can also be
used in creation mode: when no input files are given, parameters %x, %y
and %z in fie= can be used to refer to the X, Y and Z pixel coordinates
in the map to be created, (0,0,0) in pixel coordinates w.r.t. reference pixel.
%w and %r can be used for 2D and 3D radius w.r.t. reference pixel, again in
pixel coordinates.
The following parameters are recognized in
any order if the keyword is also given:
- in=in-file(s)
- list of input file
name(s), each in image(5NEMO)
format. In case of multiple files, the list
must be space or comma separated. If no files are given, the program is
in creation mode.
- out=out-file
- output file, will be in Image(5NEMO)
format
[no default]
- fie=expression
- Expression how to manipulate the input maps
or create output map. Input maps are referred to by %n or $n, in creation
mode position is referred to by %x and %y [no default].
- size=nx,ny,nz
- Size
of the output map in case program is in creation mode [default: 10,10,1].
- crpix=r1,r2,r3
- (New) values for the reference pixel. Note these are in FITS
notation, i.e. (1,1,1) is the lower left of the first plane in a cube. Recall
that (nx+1)/2 is the central pixel in coordinate X, not nx/2! By default
the WCS is transferred from the first input image to the output image,
however, by using all 3 keywords crpix=,crval=,cdelt= the WCS of the output
image can be overwritten. [Default: 1,1,1 for image creation].
- crval=r1,r2,r3
- (New) values for the reference pixel. [Default: 0,0,0 for image creation].
- cdelt=r1,r2,r3
- (New) values for the pixel separation. [Default: 1,1,1 for
image creation].
- seed=integer
- seed for the random number generator (default:
a value 0, which will be converted into a unique new value using UNIX’s
clock time, in seconds since once-upon-a-time-in-the-seventies).
Create
a ’difference’ map from two input maps:
% ccdmath inmap1,inmap2 outmap "abs(%1-%2)"
create the maximum of two maps:
% ccdmath inmap1,inmap2 outmap "ifgt(%1,%2,%1,%2)"
create the difference of two maps if either of the two is not zero:
% ccdmath inmap1,inmap2 outmap "ifne(%1,0,%1-%2,ifne(%2,0,%1-%2,0))"
create a map from scratch:
% ccdmath out=newmap fie="exp(-((%x-50)/25)**2-((%y-50)/25)**2)" size=100,100
create a (2 plane 4x3 image) cube from scratch:
% ccdmath "" cube432 "%x+10*%y+100*%z" 4,3,2
create a new WCS for an existing cube, with reference value (0,0,0) in
the center of the cube, assuming you know the size of the cube (nx,ny,nz)
and pixel sizes (dx,dy,dz):
% ccdmath cube0 cube1 %1 crpix=$nx/2+0.5,$ny/2+0.5,$nz/2+0.5 crval=0,0,0
cdelt=$dx,$dy,$dz
and creating an annulus:
% ccdmath "" map0 "ifgt(%w,20,1,iflt(%w,10,1,0))" size=512 crpix=256,256
Rescaling a map to a linear-log, retaining linear near 0, and logarithmic
in signal/noise for large values from the mean:
set s = 0.19
cddmath map0 map0s "sign(%1)*$s*log(1+abs(%1)/$s)"
Performance on Rigel (SUN 3/160, 16Mhz):
100 * 100 rang: 5.8" +: 3.4" sqrt: 2.6"
200 * 200 rang: 23.2 +: 13.0" sqrt: 8.7"
300 * 300 rang: 51.8" +: 31.3" sqrt: 23.8"
512 * 512 rang: 152.7" +: 88.4" sqrt: 64.2"
fie(3NEMO)
, image(5NEMO)
, tsf(1NEMO)
, ccdgen(1NEMO)
, ccdsky(1NEMO)
Peter Teuben
src/image/trans ccdmath.c ccdmath.1
1-Jul-87 V1.0: Created PJT
6-jul-87 V1.1: order keywords changed for future enhancements PJT
1-jun-88 V2.0: new filestruct, although code is same PJT
18-dec-88 V2.1: new keyword structure, fie() used. PJT
22-jan-89 V2.3: can make map from scratch using %x, %y and %z PJT
1-mar-03 V3.0: set/change the WCS PJT
19-jun-03 V3.1: allow %w and %r, and use offset from crpix PJT
25-aug-04 V3.2: fixed error in setting crpix (off by 2!) PJT
Table of Contents