; RGBMP ;--------------------------------------------------------------- ;! Task to create an RGB image from the 3rd dim of an image ;# TASK TV ;----------------------------------------------------------------------- ;; Copyright (C) 1995, 2002, 2006, 2009 ;; Associated Universities, Inc. Washington DC, USA. ;; ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2 of ;; the License, or (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public ;; License along with this program; if not, write to the Free ;; Software Foundation, Inc., 675 Massachusetts Ave, Cambridge, ;; MA 02139, USA. ;; ;; Correspondence concerning AIPS should be addressed as follows: ;; Internet email: aipsmail@nrao.edu. ;; Postal address: AIPS Project Office ;; National Radio Astronomy Observatory ;; 520 Edgemont Road ;; Charlottesville, VA 22903-2475 USA ;----------------------------------------------------------------------- RGBMP LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC RGBMP: Task to create an RGB image from the 3rd dim of an image INNAME Input name(name). INCLASS Input name(class). INSEQ 0.0 9999.0 Input name(seq. #). 0=> high INDISK 0.0 9.0 Input disk drive #. 0=> any OUTNAME Output name(name). OUTCLASS Output name(class). OUTSEQ -1.0 9999.0 Output name(seq. #). 0 => highest unique OUTDISK 0.0 9.0 Output image disk drive # 0 => highest with space BLC Bottom left corner of input TRC Top right corner of input OPTYPE Allows experimental summing algorithms, else additive FUNCTYPE Image intensity transfer func 'L2' Very logarithmic 'LG' Logarithmic 'SQ' Square root else linear PIXRANGE Image intensity extrema allowed FACTOR 0.0 10.0 Scale "optical depths" ---------------------------------------------------------------- RGBMP Type: Task Use: RGBMP will create a new cube with 3 planes from the weighted planes of an input cube. The 3 planes can then be used to display the 3rd dimension as color on the TV or with display tasks such as GREYS, PCNTR, and KNTR. There are a number of experimental algorithms for summing the images into the 3 colors. The default is a simple sum, weighted by "triangles in color: 1 *---------------------------* | * * | | * * | | * Green * | | * * | | Blue * * Red | | * * | 0 |-------------*-------------- where the Green is weighted down by ~1/2 since ~2 times as many channels contribute. All other algorithms use this basic color weighting and adjust other parameters, If the third axis has a positive increment, then the first channel on that axis is the most blue as shown above. Else, the last channel is the most blue. If the axis type begins with FREQ, this convention is reversed. Adverbs: INNAME......Input name of image(name). Standard defaults. INCLASS.....Input name of image(class). Standard defaults. INSEQ.......Input name of image(seq. #). 0 => highest. INDISK......Disk drive # of image. 0 => any. OUTNAME.....Output name of image(name). Standard defaults. OUTCLASS....Output name of image(class). Standard defaults. OUTSEQ......Output name of image(seq. #). 0 => highest unique OUTDISK.....Disk drive # of Output image. 0 => highest with space. BLC.........The bottom left-hand pixel of the input image which becomes the bottom left corner of the new image. The value (0,0) means (1,1). TRC.........The top right-hand pixel of the input image which becomes the top right corner of the new image. The value (0,0) means take the top right hand corner of the image. ******* Experimental algorithm parameters *********** OPTYPE......Other than for the special values below, the output is the simple sum of the channel weights times the image at each channel. Current special values are 'CLIP', 'CLIS', 'OPTD', 'OPT2', 'POPT', and 'POP2'. See EXPLAIN. FUNCTYPE....'SQ' square root, 'LG' logarithmic [log10(1+9*x)], 'L2' [0.5*log(1+99*X)] else linear to scale the image intensities in PIXRANGE to 0-1. Used only if OPTYPE is a special value. PIXRANGE....Clip image values below PIXRANGE(1) and above PIXRANGE(2) in converting the scale. Used only if OPTYPE is a special value. FACTOR......The "optical depth" is the scaled image values times FACTOR. Used only if OPTYPE is a special value. ---------------------------------------------------------------- In order to offer a variety of ways to sum the image planes, a number of experimental algorithms are available under control of OPTYPE, enhanced with adverbs FUNCTYPE, PIXRANGE, and FACTOR. Current special values for OPTYPE are 'CLIP', 'CLIS', 'OPTD', 'OPT2', 'POPT', and 'POP2'. All of the special algorithms can produce good RGB images and all can prduce useless ones. If the input image at each plane of the cube is Bi (x,y) then for all OPTYPEs other than the special value Ti(x,y) = Bi(x,y) while for all special OPTYPEs, the clipped image is Ci(x,y) = MAX (PIXRANGE(1), MIN (PIXRANGE(2), Bi(x,y))) For OPTYPE 'CLIP' when PIXRANGE(1) > 0, if Ci(x,y)=PIXRANGE(1) then Ti(x,y) = 0 else Ti(x,y) = Ci(x,y) For all special OPTYPEs except CLIP, the image is then scaled and warped to values between zero and one by z(x,y) = (Ci(x,y)-PIXRANGE(1)) / (PIXRANGE(2)-PIXRANGE(1)) z(x,y) = min (1.0, max (0.0, z(x,y))) Si(x,y) = F[z] where if FUNCTYPE='LN' F(z) = z 'SQ' F(z) = sqrt (z) 'LG' F(z) = log10 (9*z + 1.0) 'L2' F(z) = 0.5 * log10 (99*z + 1.0) For OPTYPE = 'CLIS', Ti(x,y) = Si(x,y). The "optical depth" associated with Si(x,y) is then t(x,y) = FACTOR * Si(x,y) OPTYPEs 'POPT' and 'OPTD' then compute Ti(x,y) = Si(x,y) * (1 - exp(-t(x,y))) while OPTYPEs 'POP2' and 'OPT2' then compute Ti(x,y) = Bi(x,y) * (1 - exp(-t(x,y))) For all OPTYPEs except 'OPTD' and 'OPT2', the Ti(x,y) computed above and then weighted by the channel/color weight is summed: SUM(i) = Wi Ti(x,y) + SUM(i-1) For OPTYPEs 'OPTD' and 'OPT2' however, the previous sum is "absorbed" by the current optical depth: SUM(i) = Wi Ti(x,y) + SUM(i-1) * exp(-t(x,y)) Clearly, in this case, the order in which the channels are summed is important and may be changed by running TRANS with TRANSCODE='12-3'.