Index: trunk/ippconfig/isp/camera.config
===================================================================
--- trunk/ippconfig/isp/camera.config	(revision 17398)
+++ trunk/ippconfig/isp/camera.config	(revision 17523)
@@ -50,268 +50,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	   STR	PPIMAGE_O
-		BIAS_RESID	   STR	PPIMAGE_B
-		BIAS_VERIFY	   STR	PPIMAGE_OB
-		BIAS_STACK	   STR	PPMERGE_BIAS
-		DARK_PROCESS	   STR	PPIMAGE_OB
-		DARK_RESID	   STR	PPIMAGE_D
-		DARK_VERIFY	   STR	PPIMAGE_OBD
-		DARK_STACK	   STR	PPMERGE_DARK
-		SHUTTER_PROCESS	   STR	PPIMAGE_OBD
-		SHUTTER_RESID	   STR	PPIMAGE_S
-		SHUTTER_VERIFY	   STR	PPIMAGE_OBDS
-		SHUTTER_STACK	   STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	   STR	PPIMAGE_OBDS
-		FLAT_RESID	   STR	PPIMAGE_F
-		FLAT_VERIFY	   STR	PPIMAGE_OBDSF
-		FLAT_STACK	   STR	PPMERGE_FLAT
-		FRINGE_PROCESS	   STR	PPIMAGE_OBDSF
-		FRINGE_RESID	   STR	PPIMAGE_R
-		FRINGE_VERIFY	   STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	   STR	PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-	# Detrend Processing only for raw data
-	DETREND_ONLY		METADATA
-		CHIP		STR	PPIMAGE_DET_ONLY
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   PSASTRO.INPUT       STR PSASTRO.INPUT.CMF
-   PSASTRO.OUTPUT      STR PSASTRO.OUTPUT.CMF
-   PSASTRO.OUTPUT.MEF  STR PSASTRO.OUTPUT.CMF
-   PSPHOT.OUTPUT       STR PSPHOT.OUTPUT.CMF
-
-   ### input file definitions
-   ### use @DETDB entries to get the detrend images from the database
-   ### replace @DETDB with @FILES if you want to require it from the 
-   ### command line, or with an explicit name to require a specific file
-   TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE 
-
-   ## files used by ppImage
-   PPIMAGE.INPUT      INPUT @FILES        FPA        IMAGE     
-   PPIMAGE.MASK       INPUT mask.fits     FPA        IMAGE     
-   PPIMAGE.BIAS       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.DARK       INPUT @DETDB        FPA        DARK
-   PPIMAGE.FLAT       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.FRINGE     INPUT @DETDB        FPA        FRINGE
-   PPIMAGE.SHUTTER    INPUT @DETDB        FPA        IMAGE     
-
-   ## Files used by ppMerge
-   PPMERGE.INPUT      INPUT @FILES        CHIP       IMAGE
-   PPMERGE.INPUT.MASK INPUT @FILES        CHIP       MASK
-   PPMERGE.INPUT.WEIGHT INPUT @FILES      CHIP       WEIGHT
-
-   ## files used to build and apply the flat-field correction images
-   DVOCORR.INPUT      INPUT @FILES        FPA        IMAGE
-   DVOCORR.REFHEAD    INPUT @FILES        FPA        HEADER
-   DVOFLAT.INPUT      INPUT @FILES        FPA        IMAGE
-   DVOFLAT.CORR       INPUT @DETDB        FPA        IMAGE
-
-   ## files used by psphot 
-   PSPHOT.LOAD        INPUT @FILES        FPA        IMAGE
-   PSPHOT.INPUT       INPUT @FILES        FPA        IMAGE     
-   PSPHOT.MASK        INPUT @FILES        FPA        MASK     
-   PSPHOT.WEIGHT      INPUT @FILES        FPA        WEIGHT     
-   PSPHOT.PSF.LOAD    INPUT @FILES        FPA        PSF       
-
-   ## files used by psastro 
-   PSASTRO.INPUT.CMP  INPUT @FILES        FPA        CMP       
-   PSASTRO.INPUT.CMF  INPUT @FILES        FPA        CMF       
-
-   ## files used by pswarp
-   PSWARP.INPUT       INPUT @FILES        FPA        IMAGE
-   PSWARP.WEIGHT      INPUT @FILES        FPA        WEIGHT
-   PSWARP.MASK        INPUT @FILES        FPA        MASK
-   PSWARP.SKYCELL     INPUT @FILES        FPA        IMAGE
-   PSWARP.ASTROM      INPUT @FILES        FPA        CMF
-
-   PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-   PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-   ### output file definitions
-   TYPE                  OUTPUT  FILENAME.RULE        FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-   PPIMAGE.OUTPUT      	 OUTPUT  {OUTPUT}.isp.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.MASK 	 OUTPUT  {OUTPUT}.mask.fits   MASK      NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits     WEIGHT    NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP 	 OUTPUT  {OUTPUT}.chip.fits   IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP.MASK 	 OUTPUT  {OUTPUT}.chip.mask.fits MASK   NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP.WEIGHT 	 OUTPUT  {OUTPUT}.chip.wt.fits WEIGHT   NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA1 	 OUTPUT  {OUTPUT}.b1.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 	 OUTPUT  {OUTPUT}.b2.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.STATS 	 OUTPUT  {OUTPUT}.stats       STATS     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.BIN1        	 OUTPUT  {OUTPUT}.b1c.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.BIN2        	 OUTPUT  {OUTPUT}.b2c.fits    IMAGE     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.JPEG1       	 OUTPUT  {OUTPUT}.b1.jpg      JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG2       	 OUTPUT  {OUTPUT}.b2.jpg      JPEG      NONE      FPA        TRUE      NONE
-
-   PPMERGE.OUTPUT.MASK   OUTPUT {OUTPUT}.fits         MASK      NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.BIAS   OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.DARK   OUTPUT {OUTPUT}.fits         DARK      NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.fits        IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.FLAT   OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.FRINGE OUTPUT {OUTPUT}.fits         FRINGE    NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.SIGMA  OUTPUT {OUTPUT}.sigma.fits   IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.COUNT  OUTPUT {OUTPUT}.count.fits   IMAGE     NONE      CHIP       TRUE      NONE
-
-   DVOCORR.OUTPUT    	 OUTPUT  {OUTPUT}.fc.fits     IMAGE     NONE      FPA        TRUE      NONE
-   DVOFLAT.OUTPUT    	 OUTPUT  {OUTPUT}.co.fits     IMAGE     NONE      FPA        TRUE      NONE
-
-   PSPHOT.RESID        	 OUTPUT  {OUTPUT}.res.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKGND      	 OUTPUT  {OUTPUT}.bck.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKSUB      	 OUTPUT  {OUTPUT}.sub.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKMDL      	 OUTPUT  {OUTPUT}.mdl.fits    IMAGE     NONE      FPA        TRUE      NONE
-
-   PSPHOT.OUTPUT.RAW   	 OUTPUT  {OUTPUT}             RAW       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.SX    	 OUTPUT  {OUTPUT}.sx          SX        NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   	 OUTPUT  {OUTPUT}.obj         OBJ       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.CMP   	 OUTPUT  {OUTPUT}.cmp         CMP       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.CMF   	 OUTPUT  {OUTPUT}.cmf         CMF       NONE      FPA        TRUE      NONE
-
-   PSPHOT.PSF.SAVE     	 OUTPUT  {OUTPUT}.psf         PSF       NONE      FPA        TRUE      NONE
-
-   SOURCE.PLOT.MOMENTS   OUTPUT  {OUTPUT}.mnt.png     KAPA      NONE      FPA        TRUE      NONE
-   SOURCE.PLOT.PSFMODEL  OUTPUT  {OUTPUT}.psf.png     KAPA      NONE      FPA        TRUE      NONE
-   SOURCE.PLOT.APRESID   OUTPUT  {OUTPUT}.dap.png     KAPA      NONE      FPA        TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP    OUTPUT  {OUTPUT}.smp         CMP       NONE      FPA        TRUE      NONE
-   PSASTRO.OUTPUT.CMF    OUTPUT  {OUTPUT}.smf         CMF       NONE      FPA        TRUE      NONE
-
-   PSWARP.OUTPUT         OUTPUT {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.MASK    OUTPUT {OUTPUT}.mask.fits    MASK      NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits      WEIGHT    NONE      FPA        TRUE      NONE
-   PSWARP.BIN1           OUTPUT {OUTPUT}.b1.fits      IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.BIN2           OUTPUT {OUTPUT}.b2.fits      IMAGE     NONE      FPA        TRUE      NONE
-
-   SKYCELL.STATS         OUTPUT {OUTPUT}.stats        STATS     NONE      FPA        TRUE      NONE
-   SKYCELL.TEMPLATE      OUTPUT {OUTPUT}.skycell      SKYCELL   NONE      FPA        TRUE      NONE
-
-   PPSIM.OUTPUT          OUTPUT {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      ISP
-   PPSIM.SOURCES   	 OUTPUT {OUTPUT}.cmf          CMF       NONE      FPA        TRUE      NONE
-
-   PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-   PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits         MASK      NONE      CHIP       TRUE      NONE
-
-   LOG.IMFILE            OUTPUT {OUTPUT}.log          TEXT      NONE      FPA        TRUE      NONE
-   LOG.EXP               OUTPUT {OUTPUT}.log          TEXT      NONE      FPA        TRUE      NONE
-END
+FILERULES	STR	recipes/filerules-simple.mdc
 
 EXTNAME.RULES METADATA
