Name
       imgen - image generation

Synopsis
       imgen [commands]

Description
       imgen  creates  images with a given pattern definition and
       according parameters.  Since nearly all astronomical soft-
       ware packages have very extended image generation capabil-
       ities, imgen is deliberately limited to very  simple  pat-
       terns. See the commands below for pattern definitions.

       In  all  options,  whenever  a  reference is made to pixel
       coordinates, the FITS convention is used: the first  image
       pixel  is at coordinates (1,1) in the lower left corner of
       the image. Increasing x go right, increasing y go up.

Image Generation Specifications
       -x value -y value
              to    specify    the    generated    image     size
              (NAXIS1,NAXIS2). Defaults to 256x256.

       -b or --bitsperpix value
              to  request  another  pixel  depth than the default
              one. The default output pixel  type  is  chosen  at
              compilation  time: it is -32 if you did not request
              anything, -64 if  you  requested  double  precision
              format  for internal pixel representation. Possible
              values correspond to pixel depth in the FITS  defi-
              nition: 8, 16, 32, -32, or -64.

       -o or --output name
              gives  a  name  to  the  output  image.  Default is
              `out.fits'.

       -S name or --ref name
              gives the program a reference FITS file name  which
              the  output  image  will match in size. This option
              may not be used together with the -x or -y options.

Theoretical Images
       -a or --airy `width max dx dy'
              to  create an Airy pattern, of given width (in pix-
              els), maximum pixel value at the  peak,  and  given
              dx,  dy  offset.  The offset indicates where should
              the real peak be situtated from the center  of  the
              image.  dx and dy are given in pixels from the cen-
              ter, axes comply with the  FITS  standard.  Enclose
              the four required parameters into simple quotes.

       -g or --gauss `x-center y-center sigma'
              to create a gaussian pattern centered on (x-center,
              y-center) of standard deviation sigma.

       -l or --lorentz `x-center y-center intensity dispersion'
              to create a lorentzian pattern centered on  (x-cen-
              ter,   y-center)   with  intensity  and  dispersion
              strictly positive real numbers. the formula used is
              pixel  value equals intensity over one plus disper-
              sion times the square of the distance of the  given
              pixel   to  the  center  of  the  distribution  (x-
              center,y-center).

       -p `m1 m2 w0 dw pixelscale'
              to generate a optical transfer function for a given
              telescope  and  camera configuration. Enclose the 5
              requested  parameters  into  simple  quotes.    The
              parameters are respectively:

       The  diameter  of  the  primary mirror of the telescope in
       meters (m1).
       The diameter of the secondary mirror of the  telescope  in
       meters (m2).
       The central wavelength of observation (w0) in microns.
       The filter bandwidth (dw) in microns.
       The pixel scale on the sky (pixelscale) in arcseconds.

       All these values can be defaulted to the ESO 3.6m la Silla
       telescope, which are:

       m1 = 3.60 m
       m2 = 1.57 m
       w0 = 2.20 um
       dw = 0.30 um
       pixelscale = 0.05 arcseconds

       An input value of -1 means: use a default value.

       OTF's are square images, only the x-size parameter will be
       used  to  set  the  image size, the y-parameter being dis-
       carded.

       An alternate form uses long options:  --otf  requires  the
       OTF.   Telescope   parameters   are  set  by  --m1,  --m2,
       --lambda0, --dlambda, and --pixelscale.

       -t `m1 m2 w0 dw pixelscale'
              to generate a theoretical PSF for a given telescope
              configuration.   See  option  above, parameters are
              set as for OTF.

       PSF's are square images, only the x-size parameter will be
       used  to  set  the  image size, the y-parameter being dis-
       carded.

       An alternate form uses long options:  --psf  requires  the
       PSF.  Telescope  options are as above for OTF: --m1, --m2,
       --lambda0, --dlambda and --pixelscale.

Random Patterns
       -r `U min max' or --urandom `min max'
              to create an image containing noise having  a  uni-
              form  probability  distribution  in the pixel value
              interval [min,max].

       -r `G mean sigma' or --grandom `mean sigma'
              to create an image containing noise having a  gaus-
              sian  probability distribution centered around mean
              and having a sigma value  of  sigma.   The  default
              value  for sigma is 1/sqrt(2), it will be used if a
              negative value is provided.

       -r `L mean dispersion' or --lrandom `mean disp'
              to  create  an  image  containing  noise  having  a
              lorentzian probability distribution centered around
              mean with a  dispersion  factor  being  dispersion.
              The   default   value  of  1.0  will  be  used  for
              dispersion if a negative value is provided.

Binary Patterns
       -d or --bdisk `x-center y-center radius'
              to create a binary disk, centered in the  image  at
              point  (x-center,  y-center)  ,  having a radius of
              radius.  Center  coordinates  and  radius  are  not
              restricted  to  integer values.  The disk is gener-
              ated as white (1) on a black  (0)  background.  The
              output  can only be generated in FITS 8bit/pel for-
              mat. A perfectly valid alternative long options  is
              --bdisk `x0 y0 r'.

       -R or --brect `llx lly urx ury'
              to  create a binary rectangle, of lower left corner
              situated in (llx, lly) and upper right corner situ-
              ated in (urx, ury).  The given corners are included
              in the rectangle. The  rectangle  is  generated  as
              white (1) on a black (0) background. The output can
              only be generated in FITS 8bit/pel format.  A  per-
              fectly  valid  alternative  long  option is --brect
              `llx lly urx ury'.

       -u or --uniform value
              to create a uniform (flat)  image  of  given  pixel
              value.

       --poly2 `c0 c1 c2 c3 c4 c5'
              This  option  will  create an image of a 2nd degree
              polynomial in x and y.  The coefficients given  are
              in the following order:
              c[0] * x^2
              c[1] * y^2
              c[2] * x * y
              c[3] * x
              c[4] * y
              c[5] * 1

       The  coordinate  system used for the polynomial is the one
       used by the FITS convention: pixel (1,1) is at the  bottom
       left  of  the  image, x-axis increasing from left to right
       and y-axis increasing from bottom to top.

       -P or --polygon filename
              This option allows to create binary maps that  con-
              tain  polygons.  This  option expects a filename in
              input on the command-line. This file  contains  the
              definition  of all the polygons that should be cre-
              ated in the binary map. The format is  the  follow-
              ing:

       *      The polygon definition file is an ASCII file.

       *      In  this file, blank lines or lines starting with a
              hash (#) are simply ignored (comments).

       *      Polygons are given by an ordered list of  vertices.
              Each vertice is defined by a set of two coordinates
              in floating-point or integer format (both are  sup-
              ported).  The  polygon  is  drawn starting from the
              first point given in the list (from left to right),
              ending  with  the last point on the line and coming
              back to the first point.

       *      Polygons must have at  least  3  vertices.  Special
              cases  are  not  tested,  e.g.  when all points are
              aligned.

       Here is an example of a polygon definition file,  defining
       some rectangles in a 256x256 binary map:

       #
       # Example of polygon definition file.
       #
       128 10 246 128 128 246 10 128
       10 10 90 10 90 90 10 90
       150 30 210 40 210 240 150 230
       20.4 217.25 82.31 233.98 68.67 195.2 32.0 175.6 14 190
       # end of file

       To  create  the  binary  map  from this file (assuming you
       named it poly.def), use:

       % imgen -P poly.def

Files
       Input/output files shall all comply with FITS format.

Examples
       To create an image of size 512x512 containing pixels  hav-
       ing  all  the same pixel value: 19.97, named `dummy.fits',
       and a pixel resolution of -32 (IEEE floating point values,
       usually the default pixel depth) you would type:

       % imgen -u 19.97 -o dummy.fits -x 512 -y 512

       To create an Airy pattern in an image of size 64x64, pixel
       depth of 8 bits/pixel,  centered  at  (-10,+15)  from  the
       image  center  (in this case on pixel 22,47), with a width
       of 11 pixels and a maximum pixel value of  1000.0,  having
       the default output name `out.fits', you would type:

       % imgen -a `11 1000.0 -10 +15' -b 8 -x 64 -y 64

       To  create  an  image containing a 2d gaussian signal cen-
       tered on pixel 125,135 with a sigma being 5.0, an image of
       size  of  256x256  (default)  and  a  pixel  depth  of -32
       bits/pixel (default), named `gauss.fits', you would type:

       % imgen -g `125 135 5.0' -o gauss.fits

       To create an image containing a 2d lorentzian signal  cen-
       tered   on   pixel  128,128,  an  image  size  of  256x256
       (default), an intensity of 50.0, a  dispersion  factor  of
       1.414,  a pixel depth of -32 (default), and a default file
       name ('out.fits'), you would type:

       % imgen -l `128 128 50.0 1.414'

       To create an image containing uniform  random  noise  with
       pixel values between -10.0 and 10.0, with all default val-
       ues:

       % imgen -r `U -10.0 10.0'

       To create an image containing noise with a gaussian proba-
       bility  density centered around 1.0, a sigma value of 6.0,
       with all default values:

       % imgen -r `G 1.0 6.0'

       To create an image  containing  noise  with  a  lorentzian
       probability  density  centered  around  1.0,  a dispersion
       value of 50.0, with all default values:

       % imgen -r `L 1.0 50.0'

       To create an OTF for a telescope having a  primary  mirror
       of  8.2m  diameter,  a  secondary  of  2.4m  diameter,  at
       lambda0=2.2 microns, and dlambda 0.1 microns, and a  pixel
       scale of 0.2 arcsec/pixel, with all default values:

       % imgen -p `8.2 2.4 2.2 0.1 0.2'

See Also
       ccube, setpix