aboutsummaryrefslogtreecommitdiff
path: root/pkg/proto/doc/mskregions.hlp
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /pkg/proto/doc/mskregions.hlp
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'pkg/proto/doc/mskregions.hlp')
-rw-r--r--pkg/proto/doc/mskregions.hlp279
1 files changed, 279 insertions, 0 deletions
diff --git a/pkg/proto/doc/mskregions.hlp b/pkg/proto/doc/mskregions.hlp
new file mode 100644
index 00000000..ed397d8a
--- /dev/null
+++ b/pkg/proto/doc/mskregions.hlp
@@ -0,0 +1,279 @@
+.help mskregions Dec01 proto
+.ih
+NAME
+mskregions -- Create mask from a list of region specifications
+.ih
+USAGE
+mskregions regions masks refimages
+.ih
+PARAMETERS
+.ls regions
+The list of input regions files. The number of regions files must be one or
+equal to the number of output mask images. Regions files contain a list of
+region specifications one region per line. The region specifications may be
+a simple region description, e.g. "circle 100. 100. 50.", or a region
+expression, e.g. "circle (100., 100., 50.) && circle (125., 100., 50.)".
+.le
+.ls masks
+The output masks. The size of the output masks defaults to the size of
+the reference image or the value of the dims parameter in that order of
+precedence.
+.le
+.ls refimages
+The optional list of reference images. If the reference image list is defined
+there must be one reference image for every output mask.
+.le
+.ls dims = "512,512"
+The default output mask dimensions. The value of dims is a comma delimited
+list of dimensions.
+.le
+.ls depth = 0
+The default output mask depth in bits currently 27.
+.le
+.ls regnumber = "constant"
+The region definition scheme. The options are:
+.ls constant
+Assign all the mask regions the value of \fIregval\fR.
+.le
+.ls number
+Assign each region a sequential value beginning with \fIregval\fR.
+.le
+.le
+.ls regval = 1
+The starting mask region value.
+.le
+.ls exprdb = "none"
+The file name of an optional expression database. An expression database
+may be used to define symbolic constants or a library of custom function
+macros.
+.le
+.ls append = no
+Add the region list to an existing mask ?
+.le
+.ls verbose = yes
+Print task status messages ?
+.le
+
+.ih
+DESCRIPTION
+
+Mskregions reads a list of region specifications from the input files
+\fIregions\fR and writes the results to the output masks \fImasks\fR image.
+The number of regions files must be on or equal to the number of output
+masks. The size of the output mask is determined by the reference image
+\fIrefimages\fR if any \fIrefmasks\fR if any or the values in the
+\fIdims\fR parameter in that order of precedence.
+
+The output mask is an integer image. Therefore all mask values must be
+integer. The mask values assigned to the regions in \fIregions\fR are
+determined by the \fIregnumber\fR and \fIregval\fR parameters. By
+default all new regions are assigned the value of 1. The depth of the output
+mask in bits is defined by the \fIdepth\fR parameter. The default value is
+27 bits.
+
+The input region specifications may be region descriptions or region
+expressions. Region descriptions are simple definitions of common geometric
+shapes. Evaluation of the regions expressions is carried out one line at a time.
+
+\fBRegions Definitions\fR
+
+The following region definitions are supported.
+
+.nf
+ point x1 y1
+ circle xc yc r
+ ellipse xc yc r ratio theta
+ box x1 y1 x2 y2)
+ rectangle xc yc r ratio theta
+ vector x1 y1 x2 y2 width
+ pie xc yc theta1 theta2
+ polygon x1 y1 ..., xn yn
+ cols ranges
+ lines ranges
+ cannulus xc yc r1 r2
+ eannulus xc yc r1 r2 ratio theta
+ rannulus xc yc r1 r2 ratio theta
+ pannulus width x1 y1 ... xn yn
+.fi
+
+\fBOperands Used in Region Expressions\fR
+
+Input operands are represented symbolically in the input expression. Use of
+symbolic operands allows the same expression to be used with different data
+sets, simplifies the expression syntax, and allows a single input image
+to be used several places in the same expression.
+
+There is a special builtin type of operand used to represent the
+mask pixel coordinates in a mask expression. These operands have the
+special reserved names "I", "J", "K", etc., up to the dimensions of the
+output image. The names must be upper case to avoid confusion to with the
+input operands "i" and "m".
+
+.nf
+ I x coordinate of pixel (column)
+ J y coordinate of pixel (line)
+ K z coordinate of pixel (band)
+.fi
+
+\fBOperators Used in Region Expressions\fR
+
+The expression syntax implemented by mskexpr provides the following
+set of operators:
+
+.nf
+ ( expr ) grouping
+ && logical and
+ || logical or
+ ! logical not
+.fi
+
+
+\fBFunctions Used in Region Expressions\fR
+
+Mskexpr supports a group of boolean region functions which can be used to set
+values inside or outside of certain geometric shapes. The routines may be
+called in two ways. The first way assumes that the output masks are two-
+dimensional. The second way assumes that they are multi-dimensional and
+specifies which dimensions the geometric operator applies to.
+
+.nf
+ point (x1, x2)
+ circle (xc, yc, r)
+ ellipse (xc, yc, r, ratio, theta)
+ box (x1, y1, x2, y2)
+ rectangle (xc, yc, r, ratio, theta)
+ vector (x1, y1, x2, y2, width)
+ pie (xc, yc, theta1, theta2)
+ polygon (x1, y1, ..., xn, yn)
+ cols (ranges)
+ lines (ranges)
+ cannulus (xc, yc, r1, r2)
+ eannulus (xc, yc, r1, r2, ratio, theta)
+ rannulus (xc, yc, r1, r2, ratio, theta)
+ pannulus (width, x1, y1, ..., xn, yn)
+
+ point (I, J, x1, x2)
+ circle (I, J, xc, yc, r)
+ ellipse (I, J, xc, yc, r, ratio, theta)
+ box (I, J, x1, y1, x2, y2)
+ rectangle (I, J, xc, yc, r, ratio, theta)
+ vector (I, J, x1, y1, x2, y2, width)
+ pie (I, J, xc, yc, theta1, theta2)
+ polygon (I, J, x1, y1, .., xn, yn)
+ cols (I, ranges)
+ lines (J, ranges)
+ cannulus (I, J, xc, yc, r1, r2)
+ eannulus (I, J, xc, yc, r1, r2, ratio, theta)
+ rannulus (I, J, xc, yc, r1, r2, ratio, theta)
+ pannulus (I, J, width, x1, y1, ..., xn, yn)
+
+ xc,yc - center coordinates in pixels
+ r1,r2 - semi-major axis lengths in pixels
+ ratio - ratio of semi-minor / semi-major axes
+ theta[n] - position angle in degrees
+ x1,y1 - starting coordinates in pixels
+ x2,y2 - ending coordinates in pixels
+ x[n],y[n] - vertices of a polygon
+ ranges - string defining a range, e.g. "100-200,300,400-500"
+.fi
+
+\fBThe Expression Database\fR
+
+The \fImskexpr\fR expression database provides a macro facility which can be
+used to create custom libraries of functions for specific applications. A
+simple example follows.
+
+.nf
+ # Sample MSKEXPR expression database file.
+
+ # Constants.
+ SQRTOF2= 1.4142135623730950488
+ PI= 3.1415926535897932385
+
+ # Simple bad data functions.
+ bdata1 (i < -100 || i > 25000)
+ bdata2 (i < -100 || i > 32000)
+
+ # New regions functions.
+ cmpie(xc,yc,r,t1,t2) circle (xc, yc, r) && (! pie (xc, yc, t1, t2))
+.fi
+
+The complete syntax of a macro entry is as follows:
+
+ <symbol>['(' arg-list ')'][':'|'='] replacement-text
+
+The replacement text may appear on the same line as the macro name or may
+start on the next line, and may extend over multiple input lines if necessary.
+If so, continuation lines must be indented. The first line with no whitespace
+at the beginning of the line terminates the macro. Macro functions may be
+nested. Macro functions are indistinguishable from intrinsic functions in
+expressions.
+
+
+.ih
+EXAMPLES
+
+1. Create a 0-valued 512 x 512 mask and set all the pixels inside a circular
+annulus to 1.
+
+.nf
+cl> type regions.dat
+cannulus 256. 256. 20. 40.
+cl> mskregions regions.dat mask.pl ""
+.fi
+
+2. Repeat the previous example but set all the pixels outside the circular
+annulus to 1. Note that in this case the user must use regions expression
+syntax not region definition syntax
+
+.nf
+cl> type region.dat
+! cannulus (256., 256., 20., 40.)
+cl> mskregions regions.dat mask.pl ""
+.fi
+
+3. Create a 0-valued 512 x 512 mask and set all the pixels inside the
+intersection of 2 circles to 1. The & operator produces the same result
+as &&.
+
+.nf
+cl> type regions.dat
+circle (220., 220., 50.) && circle (240., 220., 50.)
+cl> mskexpr regions.dat mask.pl ""
+.fi
+
+4. Create a 0 valued 512 x 512 mask and set all the pixels inside a circle
+excluding a wedge shaped region to 1. The expression cmpie is used defined
+and stored in the expression database "myexpr.db"
+
+.nf
+cl> type myexpr.db
+# Sample MSKEXPR expression database file.
+
+# Constants.
+SQRTOF2= 1.4142135623730950488
+PI= 3.1415926535897932385
+
+# Simple bad data functions.
+bdata1 (i < -100 || i > 25000)
+bdata2 (i < -100 || i > 32000)
+
+# New regions functions.
+cmpie(xc,yc,r,t1,t2) circle (xc, yc, r) && (! pie (xc, yc, t1, t2))
+
+cl> type regions.dat
+cmpie (256., 256., 50., 0., 30.) ? 1 : 0
+
+cl> mskregions regions.dat mask.pl "" exprdb=myexpr.db
+.fi
+
+.ih
+TIME REQUIREMENTS
+
+.ih
+BUGS
+
+.ih
+SEE ALSO
+imexpr, mskexpr
+.endhelp