Index: trunk/ippconfig/gpc1/camera.config
===================================================================
--- trunk/ippconfig/gpc1/camera.config	(revision 26692)
+++ trunk/ippconfig/gpc1/camera.config	(revision 26902)
@@ -149,3 +149,3 @@
 PHOTCODE.RULE           STR     {DETECTOR}.{FILTER.ID}.{CHIP.NAME}	# Rule for generating photcode
 
-BURNTOOL.STATE.GOOD     S16     13  # Value for burntool_state with the most recent bt version.
+BURNTOOL.STATE.GOOD     S16     14  # Value for burntool_state with the most recent bt version.
Index: trunk/ippconfig/gpc1/ppImage.config
===================================================================
--- trunk/ippconfig/gpc1/ppImage.config	(revision 26692)
+++ trunk/ippconfig/gpc1/ppImage.config	(revision 26902)
@@ -24,6 +24,6 @@
 NOISEMAP                BOOL    FALSE          # Apply read noise map
 
-PATTERN		BOOL 	FALSE	# Do any pattern subtraction at all?
-PATTERN.SUBSET	METADATA	# List of chips and whether to do pattern subtraction
+PATTERN.ROW		BOOL 	FALSE	# Do any row pattern correction at all?
+PATTERN.ROW.SUBSET	METADATA	# List of chips and whether to do row pattern correction
 	XY01	BOOL	FALSE
 	XY02	BOOL	FALSE
@@ -37,66 +37,5 @@
 	XY13	BOOL	FALSE
 	XY14	BOOL	FALSE
-	XY15	METADATA
-		xy01	BOOL	TRUE
-		xy02	BOOL	TRUE
-		xy03	BOOL	TRUE
-		xy04	BOOL	TRUE
-		xy05	BOOL	TRUE
-		xy06	BOOL	TRUE
-		xy10	BOOL	FALSE
-		xy11	BOOL	FALSE
-		xy12	BOOL	FALSE
-		xy13	BOOL	FALSE
-		xy14	BOOL	FALSE
-		xy15	BOOL	FALSE
-		xy16	BOOL	FALSE
-		xy17	BOOL	FALSE
-		xy20	BOOL	FALSE
-		xy21	BOOL	FALSE
-		xy22	BOOL	FALSE
-		xy23	BOOL	FALSE
-		xy24	BOOL	FALSE
-		xy25	BOOL	FALSE
-		xy26	BOOL	FALSE
-		xy27	BOOL	FALSE
-		xy30	BOOL	FALSE
-		xy31	BOOL	FALSE
-		xy32	BOOL	FALSE
-		xy33	BOOL	FALSE
-		xy34	BOOL	FALSE
-		xy35	BOOL	FALSE
-		xy36	BOOL	FALSE
-		xy37	BOOL	FALSE
-		xy40	BOOL	FALSE
-		xy41	BOOL	FALSE
-		xy42	BOOL	FALSE
-		xy43	BOOL	FALSE
-		xy44	BOOL	FALSE
-		xy45	BOOL	FALSE
-		xy46	BOOL	FALSE
-		xy47	BOOL	FALSE
-		xy50	BOOL	FALSE
-		xy51	BOOL	FALSE
-		xy52	BOOL	FALSE
-		xy53	BOOL	FALSE
-		xy54	BOOL	FALSE
-		xy55	BOOL	FALSE
-		xy56	BOOL	FALSE
-		xy57	BOOL	FALSE
-		xy60	BOOL	FALSE
-		xy61	BOOL	FALSE
-		xy62	BOOL	FALSE
-		xy63	BOOL	FALSE
-		xy64	BOOL	FALSE
-		xy65	BOOL	FALSE
-		xy66	BOOL	FALSE
-		xy67	BOOL	FALSE
-		xy71	BOOL	FALSE
-		xy72	BOOL	FALSE
-		xy73	BOOL	FALSE
-		xy74	BOOL	FALSE
-		xy75	BOOL	FALSE
-		xy76	BOOL	FALSE
-	END
+	XY15	STR     1111111100000000000000000000000000000000000000000000000000000000 # cols: 0
 	XY16	BOOL	FALSE
 	XY17	BOOL	FALSE
@@ -108,69 +47,8 @@
 	XY25	BOOL	FALSE
 	XY26	BOOL	FALSE
-	XY27	BOOL	FALSE
+	XY27	STR     1111111111111111111111111111111100000000000000000000000011111111 # cols: 0,1,2,3,7
 	XY30	BOOL	FALSE
 	XY31	BOOL	FALSE
-	XY32	METADATA
-		xy01	BOOL	FALSE
-		xy02	BOOL	FALSE
-		xy03	BOOL	FALSE
-		xy04	BOOL	FALSE
-		xy05	BOOL	FALSE
-		xy06	BOOL	FALSE
-		xy10	BOOL	FALSE
-		xy11	BOOL	FALSE
-		xy12	BOOL	FALSE
-		xy13	BOOL	FALSE
-		xy14	BOOL	FALSE
-		xy15	BOOL	FALSE
-		xy16	BOOL	FALSE
-		xy17	BOOL	FALSE
-		xy20	BOOL	FALSE
-		xy21	BOOL	FALSE
-		xy22	BOOL	FALSE
-		xy23	BOOL	FALSE
-		xy24	BOOL	FALSE
-		xy25	BOOL	FALSE
-		xy26	BOOL	FALSE
-		xy27	BOOL	FALSE
-		xy30	BOOL	TRUE
-		xy31	BOOL	TRUE
-		xy32	BOOL	TRUE
-		xy33	BOOL	TRUE
-		xy34	BOOL	TRUE
-		xy35	BOOL	TRUE
-		xy36	BOOL	TRUE
-		xy37	BOOL	TRUE
-		xy40	BOOL	FALSE
-		xy41	BOOL	FALSE
-		xy42	BOOL	FALSE
-		xy43	BOOL	FALSE
-		xy44	BOOL	FALSE
-		xy45	BOOL	FALSE
-		xy46	BOOL	FALSE
-		xy47	BOOL	FALSE
-		xy50	BOOL	FALSE
-		xy51	BOOL	FALSE
-		xy52	BOOL	FALSE
-		xy53	BOOL	FALSE
-		xy54	BOOL	FALSE
-		xy55	BOOL	FALSE
-		xy56	BOOL	FALSE
-		xy57	BOOL	FALSE
-		xy60	BOOL	FALSE
-		xy61	BOOL	FALSE
-		xy62	BOOL	FALSE
-		xy63	BOOL	FALSE
-		xy64	BOOL	FALSE
-		xy65	BOOL	FALSE
-		xy66	BOOL	FALSE
-		xy67	BOOL	FALSE
-		xy71	BOOL	TRUE
-		xy72	BOOL	TRUE
-		xy73	BOOL	TRUE
-		xy74	BOOL	TRUE
-		xy75	BOOL	TRUE
-		xy76	BOOL	TRUE
-	END
+	XY32	STR     0000000000000000000000001111111100000000000000000000000011111111 # cols: 3,7
 	XY33	BOOL	FALSE
 	XY34	BOOL	FALSE
@@ -183,66 +61,69 @@
 	XY43	BOOL	FALSE
 	XY44	BOOL	FALSE
-	XY45	METADATA
-		xy01	BOOL	FALSE
-		xy02	BOOL	FALSE
-		xy03	BOOL	FALSE
-		xy04	BOOL	FALSE
-		xy05	BOOL	FALSE
-		xy06	BOOL	FALSE
-		xy10	BOOL	FALSE
-		xy11	BOOL	FALSE
-		xy12	BOOL	FALSE
-		xy13	BOOL	FALSE
-		xy14	BOOL	FALSE
-		xy15	BOOL	FALSE
-		xy16	BOOL	FALSE
-		xy17	BOOL	FALSE
-		xy20	BOOL	FALSE
-		xy21	BOOL	FALSE
-		xy22	BOOL	FALSE
-		xy23	BOOL	FALSE
-		xy24	BOOL	FALSE
-		xy25	BOOL	FALSE
-		xy26	BOOL	FALSE
-		xy27	BOOL	FALSE
-		xy30	BOOL	TRUE
-		xy31	BOOL	TRUE
-		xy32	BOOL	TRUE
-		xy33	BOOL	TRUE
-		xy34	BOOL	TRUE
-		xy35	BOOL	TRUE
-		xy36	BOOL	TRUE
-		xy37	BOOL	TRUE
-		xy40	BOOL	FALSE
-		xy41	BOOL	FALSE
-		xy42	BOOL	FALSE
-		xy43	BOOL	FALSE
-		xy44	BOOL	FALSE
-		xy45	BOOL	FALSE
-		xy46	BOOL	FALSE
-		xy47	BOOL	FALSE
-		xy50	BOOL	FALSE
-		xy51	BOOL	FALSE
-		xy52	BOOL	FALSE
-		xy53	BOOL	FALSE
-		xy54	BOOL	FALSE
-		xy55	BOOL	FALSE
-		xy56	BOOL	FALSE
-		xy57	BOOL	FALSE
-		xy60	BOOL	FALSE
-		xy61	BOOL	FALSE
-		xy62	BOOL	FALSE
-		xy63	BOOL	FALSE
-		xy64	BOOL	FALSE
-		xy65	BOOL	FALSE
-		xy66	BOOL	FALSE
-		xy67	BOOL	FALSE
-		xy71	BOOL	TRUE
-		xy72	BOOL	TRUE
-		xy73	BOOL	TRUE
-		xy74	BOOL	TRUE
-		xy75	BOOL	TRUE
-		xy76	BOOL	TRUE
-	END
+	XY45	STR     0000000000000000000000001111111100000000000000000000000011111111 # cols: 3,7
+	XY46	BOOL	FALSE
+	XY47	STR     1111111100000000000000001111111100000000111111110000000011111111 # cols: 0,3,5,7
+	XY50	BOOL	FALSE
+	XY51	BOOL	FALSE
+	XY52	BOOL	FALSE
+	XY53	BOOL	FALSE
+	XY54	BOOL	FALSE
+	XY55	BOOL	FALSE
+	XY56	BOOL	FALSE
+	XY57	STR     1111111111111111111111110000000000000000000000001111111111111111 # cols: 0,1,2,6,7
+	XY60	STR	0000000000000000000000000000000000000000000001000000000000000000 # cell xy55
+	XY61	BOOL	FALSE
+	XY62	BOOL	FALSE
+	XY63	BOOL	FALSE
+	XY64	BOOL	FALSE
+	XY65	BOOL	FALSE
+	XY66	BOOL	FALSE
+	XY67	BOOL	FALSE
+	XY71	BOOL	FALSE
+	XY72	BOOL	FALSE
+	XY73	BOOL	FALSE
+	XY74	STR     0000000000000000111111110000000000000000000000000000000011111111 # cols: 2,7
+	XY75	BOOL	FALSE
+	XY76	BOOL	FALSE
+END
+
+PATTERN.CELL	BOOL 	FALSE		# by default, do not do any cell pattern correction
+PATTERN.CELL.SUBSET	METADATA	# List of chips and whether to do cell pattern correction
+	XY01	BOOL	FALSE
+	XY02	BOOL	FALSE
+	XY03	BOOL	FALSE
+	XY04	BOOL	FALSE
+	XY05	BOOL	FALSE
+	XY06    STR     11010000000100000001101001000000000000000000000000000000000000000
+	XY10	BOOL	FALSE
+	XY11	BOOL	FALSE
+	XY12	BOOL	FALSE
+	XY13	BOOL	FALSE
+	XY14	STR     0000000000000000000000000000000000000000000000010000000000101101
+	XY15	STR     0011111100011000000001000000010000001001000111110001010000011111
+	XY16	STR     0000000100000000000000000000000000000001000000000000000000000000
+	XY17	BOOL	FALSE
+	XY20	BOOL	FALSE
+	XY21	BOOL	FALSE
+	XY22	BOOL	FALSE
+	XY23	BOOL	FALSE
+	XY24	STR     0000000000100000000000000110100000100000001000000011100000000000
+	XY25	STR     0100010000001001001011000000001000000111000110000000100000000010
+	XY26	STR     0000000000000100000000000000000000001000001000000000000000000000
+	XY27	BOOL	FALSE
+	XY30	BOOL	FALSE
+	XY31	BOOL	FALSE
+	XY32	BOOL	FALSE
+	XY33	BOOL	FALSE
+	XY34	STR     0000000000000000000000000000000000000001000011000000101000111111
+	XY35	BOOL	FALSE
+	XY36	STR     0000000000000000000000000000000000010000000000000000000000000000
+	XY37	STR     0000000000000000000000000000000100010001000000001011000010110110
+	XY40	STR     0000000000000000000000000010110000000000000001110000001000011111
+	XY41	BOOL	FALSE
+	XY42	BOOL	FALSE
+	XY43	STR     0000000000000000000000010000000100000000000010000100000100000100
+	XY44	BOOL	FALSE
+	XY45	BOOL	FALSE
 	XY46	BOOL	FALSE
 	XY47	BOOL	FALSE
@@ -257,5 +138,5 @@
 	XY60	BOOL	FALSE
 	XY61	BOOL	FALSE
-	XY62	BOOL	FALSE
+	XY62	STR     0000000000000000000000000000000000001000000000000000000100001010
 	XY63	BOOL	FALSE
 	XY64	BOOL	FALSE
@@ -264,11 +145,10 @@
 	XY67	BOOL	FALSE
 	XY71	BOOL	FALSE
-	XY72	BOOL	FALSE
-	XY73	BOOL	FALSE
+	XY72	STR     0000000000000000000000000000000000000000000000000000000000000001
+	XY73	STR     0001100000000000000000000000001000000000000000000000000000000000
 	XY74	BOOL	FALSE
 	XY75	BOOL	FALSE
 	XY76	BOOL	FALSE
 END
-
 
 TILTYSTREAK.BY.CLASS METADATA              # apply the 'tiltystreak' tool
@@ -403,7 +283,8 @@
   FLAT             BOOL    TRUE            # Flat-field normalisation
   MASK             BOOL    TRUE            # Mask bad pixels
-  MASK.BURNTOOL      BOOL    TRUE            # Mask potential burntool trails
-  PATTERN          BOOL    TRUE            # Subtract pattern noise
-  FRINGE           BOOL    FALSE           # Fringe subtraction
+  MASK.BURNTOOL    BOOL    TRUE            # Mask potential burntool trails
+  PATTERN.ROW      BOOL    TRUE            # Row pattern correction
+  PATTERN.CELL	   BOOL	   TRUE		   # Cell pattern correction
+  FRINGE           BOOL    TRUE            # Fringe subtraction
   BIN1.FITS        BOOL    TRUE            # Save 1st binned chip image?
   BIN2.FITS        BOOL    TRUE            # Save 2nd binned chip image?
@@ -1179,5 +1060,6 @@
   MASK             BOOL    TRUE            # Mask bad pixels
   FRINGE           BOOL    FALSE           # Fringe subtraction
-  PATTERN          BOOL    TRUE            # Subtract pattern noise
+  PATTERN.ROW      BOOL    TRUE            # Row pattern correction
+  PATTERN.CELL	   BOOL	   TRUE		   # Cell pattern correction
   BIN1.FITS        BOOL    TRUE            # Save 1st binned chip image?
   BIN2.FITS        BOOL    TRUE            # Save 2nd binned chip image?
@@ -1188,5 +1070,4 @@
   CROSSTALK.MEASURE  BOOL  TRUE            # Subtract model background?
 END
-
 
 
@@ -1216,5 +1097,6 @@
   CROSSTALK.MEASURE  BOOL    TRUE            # Subtract model background?
   TILTYSTREAK.APPLY  BOOL    FALSE           # apply the 'tiltystreak' tool
-  PATTERN            BOOL    TRUE            # Subtract pattern noise
+  PATTERN.ROW        BOOL    TRUE            # Row pattern correction
+  PATTERN.CELL	     BOOL    TRUE	     # Cell pattern correction
   NOISEMAP           BOOL    TRUE            # Apply read noise map
 END
Index: trunk/ippconfig/gpc1/ppMerge.config
===================================================================
--- trunk/ippconfig/gpc1/ppMerge.config	(revision 26692)
+++ trunk/ippconfig/gpc1/ppMerge.config	(revision 26902)
@@ -43,6 +43,23 @@
 # END
 
+# 2010.02.02 -- this was the dark rule for the dark master from 20100124
 # Ordinates for fitting dark current as function of darktime and fpa temp:
 # Counts = C0 + (CT0 + CT1*Temp + CT2*Temp^2)*exptime
+# the 0th order term is implied, right?
+# Note: GPC1 has bad values for DARKTIME in unpredictable cells; use EXPOSURE for now
+# DARK.ORDINATES	METADATA
+# 	CELL.EXPOSURE	S32	1
+#  	TEMP	METADATA
+#  		ORDER	S32	1
+# 		RULE	STR	CHIP.TEMP * CELL.EXPOSURE
+#  	END
+#  	TEMP2	METADATA
+#  		ORDER	S32	1
+# 		RULE	STR	CHIP.TEMP * CHIP.TEMP * CELL.EXPOSURE
+#  	END
+# END
+
+# Ordinates for fitting dark current as function of darktime and fpa temp:
+# Counts = C0 + (CT0 + CT1*Temp)*exptime
 # the 0th order term is implied, right?
 # Note: GPC1 has bad values for DARKTIME in unpredictable cells; use EXPOSURE for now
@@ -53,7 +70,3 @@
 		RULE	STR	CHIP.TEMP * CELL.EXPOSURE
  	END
- 	TEMP2	METADATA
- 		ORDER	S32	1
-		RULE	STR	CHIP.TEMP * CHIP.TEMP * CELL.EXPOSURE
- 	END
 END
Index: trunk/ippconfig/gpc1/psastro.config
===================================================================
--- trunk/ippconfig/gpc1/psastro.config	(revision 26692)
+++ trunk/ippconfig/gpc1/psastro.config	(revision 26902)
@@ -69,4 +69,5 @@
 PSASTRO.MOSAIC.MODE         BOOL   TRUE
 
+# for iterations >= N, require a single match per reference
 PSASTRO.MOSAIC.CHIP.NITER     S32      5  # fit clipping iterations (NOTE: last iteration is NITER, not NITER - 1)
 PSASTRO.MOSAIC.CHIP.NSIGMA    F32      3  # fit clipping sigmas
@@ -151,4 +152,10 @@
   GHOST_MAX_MAG                   F32 -25.0
 END
+PHOTCODE.DATA METADATA
+  FILTER   STR w
+  ZEROPT   F32 25.1
+  PHOTCODE STR r_SYNTH
+  GHOST_MAX_MAG                   F32 -20.0
+END
 
 REFSTAR_MASK                    BOOL TRUE
@@ -156,10 +163,11 @@
 REFSTAR_MASK_SATSTAR_MAG_MAX    F32 -17.40
 REFSTAR_MASK_SATSTAR_MAG_SLOPE  F32  13.45
-REFSTAR_MASK_SATSTAR_POS_ZERO   F32  -0.779
-
-# Length = SLOPE*(MAG_MAX - InstMag)
-
-REFSTAR_MASK_SATSPIKE_MAG_SLOPE F32  52.00
-REFSTAR_MASK_SATSPIKE_MAG_MAX   F32 -16.20
+REFSTAR_MASK_SATSTAR_POS_ZERO   F32  -0.798
+
+# Length = 10**(SLOPE*(MAG_MAX - InstMag)) - OFFSET
+
+REFSTAR_MASK_SATSPIKE_MAG_SLOPE F32  0.096
+REFSTAR_MASK_SATSPIKE_MAG_MAX   F32  7.35
+REFSTAR_MASK_SATSPIKE_OFFSET    F32 200.0
 
 # pair 1 (longer)
