Program: EDITSET
Purpose: Program to edit data in a set.
Category: MANIPULATION
File: editset.c
Author: M. Vogelaar
Keywords:
INSET= Give set (, subsets) to edit:
Maximum number of subsets is 2048.
You will be asked in a loop to enter a box for which
you want to edit your data. The loop is aborted with
carriage return at the ANOTHER= keyword.
BOX= Frame for input subsets. [entire subset]
Select a box in which all data must be changed.
If you want to change only one pixel, then enter this
position as a box with sizes 1 in both directions. If
you want to perform the same actions on all data in
BOX= then enter a valid expression at EXPRESSION=.
If you want to edit the pixels manually or want to use
the Hermes database and file functions ('descr', 'table',
'image' & 'file') then switch to 'manual mode' at the
EXPRESSION= keyword.
EXPRESSION= Give expression: [Manual mode]
Enter an expression to change data in the given
box. The parameters are the axis names like RA and DEC
and the parameter 'DATA', which stands for the old.
The syntax of the expressions is described below.
An example is: EXPRESSION=DATA*ABS(RA) which will
multiply all values in BOX= with the absolute value
of the grid in RA.
If carriage return is pressed at EXPRESSION=, then Manual
Mode is selected and the keyword NEWVAL= is prompted for
all pixels in BOX=.
NEWVAL= New value at: (x1,..,xn) [old value]
No expression was entered at EXPRESSION= and you are
prompted with NEWVAL= and the position & value of the
current pixel starting at the lower left position in BOX=.
It is possible to change the value of just one pixel or
to change the values of a series of pixels at once
(with a maximum of 250). This keyword recognizes the
Hermes database and file functions.
Example: NEWVAL=image(AURORA FREQ 0,-5 0 5 0)
which will replace all values in BOX= by values found
in subset AURORA FREQ 0 in the box -5 0 5 0.
ANOTHER= Do you want another box? Y/[N]
You can repeat the actions described above, for
different boxes. Therefore a loop over the BOX= keyword
is made. This loop is aborted by ANOTHER=N
Description: The program EDITSET is an image editor. It can replace
pixel values by user given values, or by new values
generated by a mathematical expression.
Example: for a RA-DEC-FREQ set, this expression can contain
the parameters: RA, DEC, FREQ and DATA.
RA is the RA grid position of the current pixel, DEC
the DEC position etc. and DATA is the value of the
current pixel.
The first pixel to be changed is the first pixel in BOX=
along the first axis in the subset (RA). The order
of evaluation is: increase grid position along RA
for all RA axes along DEC.
If x and y are arbitrary parameters, the expression
may contain:
1) functions; syntax ff(..); where ff is one of the
following available functions:
abs(x) absolute value of x
sqrt(x) square root of x
sin(x) sine of x
asin(x) inverse sine of x
cos(x) cosine of x
acos(x) inverse cosine of x
tan(x) tangent of x
atan(x) inverse tan of x
atan2(x,y) inverse tan (mod 2pi) x = sin, y = cos
exp(x) exponential of x
ln(x) natural log of x
log(x) log (base 10) of x
sinh(x) hyperbolic sine of x
cosh(x) hyperbolic cosine of x
tanh(x) hyperbolic tangent of x
rad(x) convert x to radians
deg(x) convert x to degrees
erf(x) error function of x
erfc(x) 1-error function
max(x,y) maximum of x and y
min(x,y) minimum of x and y
sinc(x) sin(x)/x (sinc function)
sign(x) sign of x (-1,0,1)
mod(x,y) gives remainder of x/y
int(x) truncates to integer
nint(x) nearest integer
ranu(x,y) generates uniform noise between x and y
rang(x,y) generates gaussian noise with mean x
and dispersion y
ranp(x) generates poisson noise with mean x
ifeq(x,y,a,b) returns a if x == y, else b
ifne(x,y,a,b) returns a if x != y, else b
ifgt(x,y,a,b) returns a if x > y, else b
ifge(x,y,a,b) returns a if x >= y, else b
iflt(x,y,a,b) returns a if x < y, else b
ifle(x,y,a,b) returns a if x <= y, else b
ifblank(x,a,b) returns a if x == BLANK, else b
2) constants; syntax cc; where cc is one of the following
available constants:
PI 3.14159....
C speed of light (SI)
H Planck (SI)
K Boltzmann (SI)
G gravitation (SI)
S Stefan-Boltzman (SI)
M mass of sun (SI)
P parsec (SI)
BLANK Universal undefined value
Note: the Hubble constant is not included.
3) operators; syntax op; where op is one of the following
available operators:
+ addition
- subtraction
* multiplication
/ division
** power
Example: Multiply pixels in selected box by the absolute
value of its RA grid position:
EXPRESSION=DATA*ABS(RA)
Updates: Mar 12, 1991: VOG, Document created.
Feb 24, 1993: VOG, Changed default for BOX=
Jul 14, 2010: VOG, Changed userreaul buffer from 250 to 65536