Index: trunk/ippconfig/dvo.photcodes
===================================================================
--- trunk/ippconfig/dvo.photcodes	(revision 38455)
+++ trunk/ippconfig/dvo.photcodes	(revision 38456)
@@ -159,4 +159,25 @@
   2016  WISE_W3              ref   0.000  0.000 0.000     -     - 0.0000     0     -   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
   2017  WISE_W4              ref   0.000  0.000 0.000     -     - 0.0000     0     -   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+
+  2031  UKIRT.Z.01           dep  22.840  0.050 0.000     -     - 0.0000     0     4   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2032  UKIRT.Z.02           dep  22.840  0.050 0.000     -     - 0.0000     0     4   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2033  UKIRT.Z.03           dep  22.840  0.050 0.000     -     - 0.0000     0     4   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2034  UKIRT.Z.04           dep  22.840  0.050 0.000     -     - 0.0000     0     4   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2041  UKIRT.Y.01           dep  22.770  0.050 0.000     -     - 0.0000     0     5   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2042  UKIRT.Y.02           dep  22.770  0.050 0.000     -     - 0.0000     0     5   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2043  UKIRT.Y.03           dep  22.770  0.050 0.000     -     - 0.0000     0     5   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2044  UKIRT.Y.04           dep  22.770  0.050 0.000     -     - 0.0000     0     5   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2051  UKIRT.J.01           dep  23.020  0.050 0.000     -     - 0.0000     0     6   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2052  UKIRT.J.02           dep  23.020  0.050 0.000     -     - 0.0000     0     6   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2053  UKIRT.J.03           dep  23.020  0.050 0.000     -     - 0.0000     0     6   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2054  UKIRT.J.04           dep  23.020  0.050 0.000     -     - 0.0000     0     6   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2061  UKIRT.H.01           dep  23.240  0.050 0.000     -     - 0.0000     0     7   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2062  UKIRT.H.02           dep  23.240  0.050 0.000     -     - 0.0000     0     7   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2063  UKIRT.H.03           dep  23.240  0.050 0.000     -     - 0.0000     0     7   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2064  UKIRT.H.04           dep  23.240  0.050 0.000     -     - 0.0000     0     7   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2071  UKIRT.K.01           dep  22.570  0.050 0.000     -     - 0.0000     0     8   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2072  UKIRT.K.02           dep  22.570  0.050 0.000     -     - 0.0000     0     8   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2073  UKIRT.K.03           dep  22.570  0.050 0.000     -     - 0.0000     0     8   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
+  2074  UKIRT.K.04           dep  22.570  0.050 0.000     -     - 0.0000     0     8   0.080 0.000 5.000  0.000   0x0000 0x0000  0x0000 0x0000
 
   # ICRF QSOs have astrometric error stored in dX,dY as 1/100th mas 
Index: trunk/ippconfig/recipes/ppImage.config
===================================================================
--- trunk/ippconfig/recipes/ppImage.config	(revision 38455)
+++ trunk/ippconfig/recipes/ppImage.config	(revision 38456)
@@ -2056,5 +2056,5 @@
 PPIMAGE_CHIPMOSAIC     METADATA
   OVERSCAN         BOOL    FALSE           # Overscan subtraction
-  NONLIN             BOOL    FALSE           # Non-linearity correction; not implemented
+  NONLIN           BOOL    FALSE           # Non-linearity correction; not implemented
   BIAS             BOOL    FALSE           # Bias subtraction
   DARK             BOOL    FALSE           # Dark subtraction
@@ -2069,8 +2069,8 @@
   BASE.FITS        BOOL    FALSE           # Save base image?
   BASE.MASK.FITS   BOOL    FALSE           # Save base detrended image?
-  BASE.VARIANCE.FITS BOOL    FALSE           # Save base detrended image?
+  BASE.VARIANCE.FITS BOOL  FALSE           # Save base detrended image?
   CHIP.FITS        BOOL    TRUE            # Save chip-mosaic-ed image? 
   CHIP.MASK.FITS   BOOL    FALSE           # Save chip-mosaic-ed image? 
-  CHIP.VARIANCE.FITS BOOL    FALSE           # Save chip-mosaic-ed image? 
+  CHIP.VARIANCE.FITS BOOL  FALSE           # Save chip-mosaic-ed image? 
   BIN1.FITS        BOOL    FALSE           # Save 1st binned chip image?
   BIN2.FITS        BOOL    FALSE           # Save 2nd binned chip image?
Index: trunk/ippconfig/tc3/camera.config
===================================================================
--- trunk/ippconfig/tc3/camera.config	(revision 38455)
+++ trunk/ippconfig/tc3/camera.config	(revision 38456)
@@ -5,4 +5,5 @@
 	RAW	STR	tc3/format.config
 	PS2	STR	tc3/format_ps2.config
+	PS2	STR	tc3/format_tc1.config
 END
 
@@ -34,4 +35,6 @@
 	XY32            STR     xy00 xy01 xy02 xy03 xy04 xy05 xy06 xy07 xy10 xy11 xy12 xy13 xy14 xy15 xy16 xy17 xy20 xy21 xy22 xy23 xy24 xy25 xy26 xy27 xy30 xy31 xy32 xy33 xy34 xy35 xy36 xy37 xy40 xy41 xy42 xy43 xy44 xy45 xy46 xy47 xy50 xy51 xy52 xy53 xy54 xy55 xy56 xy57 xy60 xy61 xy62 xy63 xy64 xy65 xy66 xy67 xy70 xy71 xy72 xy73 xy74 xy75 xy76 xy77
 	XY33            STR     xy00 xy01 xy02 xy03 xy04 xy05 xy06 xy07 xy10 xy11 xy12 xy13 xy14 xy15 xy16 xy17 xy20 xy21 xy22 xy23 xy24 xy25 xy26 xy27 xy30 xy31 xy32 xy33 xy34 xy35 xy36 xy37 xy40 xy41 xy42 xy43 xy44 xy45 xy46 xy47 xy50 xy51 xy52 xy53 xy54 xy55 xy56 xy57 xy60 xy61 xy62 xy63 xy64 xy65 xy66 xy67 xy70 xy71 xy72 xy73 xy74 xy75 xy76 xy77
+
+	xy02            STR     xy00 xy01 xy02 xy03 xy04 xy05 xy06 xy07 xy10 xy11 xy12 xy13 xy14 xy15 xy16 xy17 xy20 xy21 xy22 xy23 xy24 xy25 xy26 xy27 xy30 xy31 xy32 xy33 xy34 xy35 xy36 xy37 xy40 xy41 xy42 xy43 xy44 xy45 xy46 xy47 xy50 xy51 xy52 xy53 xy54 xy55 xy56 xy57 xy60 xy61 xy62 xy63 xy64 xy65 xy66 xy67 xy70 xy71 xy72 xy73 xy74 xy75 xy76 xy77
 END
 
Index: trunk/ippconfig/tc3/format_tc1.config
===================================================================
--- trunk/ippconfig/tc3/format_tc1.config	(revision 38456)
+++ trunk/ippconfig/tc3/format_tc1.config	(revision 38456)
@@ -0,0 +1,315 @@
+# Camera format configuration for Pan-STARRS Test Camera 3
+
+# How to recognise this type
+RULE	METADATA
+#        IMAGESWV        STR     GPC DaqCom v2.05 (Mar 08 2007)
+	ORIGIN		STR	PS1
+	CONTROLR	STR	STARGRASP
+	INSTRUME	STR	tc1
+#	EXTEND		BOOL	T
+END
+
+FILE	METADATA
+	# How to read this data
+	PHU		STR	CHIP	# The FITS file represents a chip
+	EXTENSIONS	STR	CELL	# The extensions represent cells
+	FPA.OBS	STR	OBSTYPE	# A PHU keyword for unique identifier
+	CONTENT	        STR     FPPOS # How to determine content of FITS file
+	CONTENT.RULE	STR	{CHIP.NAME}	# How to derive the CONTENT when writing
+END
+
+# What's in the FITS file?
+CONTENTS	METADATA
+	# File identifier with corresponding file layout name
+  	xy02    STR     XY02:CCD_10u
+  	xy22    STR     XY22:CCD_10u
+  	xy10    STR     XY10:CCD_10u
+  	xy30    STR     XY30:CCD_10u
+END
+
+# Specify the layout
+CHIPS	METADATA
+	CCD_10u		METADATA
+		# Extension name, cellName:cellType
+		xy00	STR	xy00:tc1raw
+		xy01	STR	xy01:tc1raw
+		xy02	STR	xy02:tc1raw
+		xy03	STR	xy03:tc1raw
+		xy04	STR	xy04:tc1raw
+		xy05	STR	xy05:tc1raw
+		xy06	STR	xy06:tc1raw
+		xy07	STR	xy07:tc1raw
+		xy10	STR	xy10:tc1raw
+		xy11	STR	xy11:tc1raw
+		xy12	STR	xy12:tc1raw
+		xy13	STR	xy13:tc1raw
+		xy14	STR	xy14:tc1raw
+		xy15	STR	xy15:tc1raw
+		xy16	STR	xy16:tc1raw
+		xy17	STR	xy17:tc1raw
+		xy20	STR	xy20:tc1raw
+		xy21	STR	xy21:tc1raw
+		xy22	STR	xy22:tc1raw
+		xy23	STR	xy23:tc1raw
+		xy24	STR	xy24:tc1raw
+		xy25	STR	xy25:tc1raw
+		xy26	STR	xy26:tc1raw
+		xy27	STR	xy27:tc1raw
+		xy30	STR	xy30:tc1raw
+		xy31	STR	xy31:tc1raw
+		xy32	STR	xy32:tc1raw
+		xy33	STR	xy33:tc1raw
+		xy34	STR	xy34:tc1raw
+		xy35	STR	xy35:tc1raw
+		xy36	STR	xy36:tc1raw
+		xy37	STR	xy37:tc1raw
+		xy40	STR	xy40:tc1raw
+		xy41	STR	xy41:tc1raw
+		xy42	STR	xy42:tc1raw
+		xy43	STR	xy43:tc1raw
+		xy44	STR	xy44:tc1raw
+		xy45	STR	xy45:tc1raw
+		xy46	STR	xy46:tc1raw
+		xy47	STR	xy47:tc1raw
+		xy50	STR	xy50:tc1raw
+		xy51	STR	xy51:tc1raw
+		xy52	STR	xy52:tc1raw
+		xy53	STR	xy53:tc1raw
+		xy54	STR	xy54:tc1raw
+		xy55	STR	xy55:tc1raw
+		xy56	STR	xy56:tc1raw
+		xy57	STR	xy57:tc1raw
+		xy60	STR	xy60:tc1raw
+		xy61	STR	xy61:tc1raw
+		xy62	STR	xy62:tc1raw
+		xy63	STR	xy63:tc1raw
+		xy64	STR	xy64:tc1raw
+		xy65	STR	xy65:tc1raw
+		xy66	STR	xy66:tc1raw
+		xy67	STR	xy67:tc1raw
+		xy70	STR	xy70:tc1raw
+		xy71	STR	xy71:tc1raw
+		xy72	STR	xy72:tc1raw
+		xy73	STR	xy73:tc1raw
+		xy74	STR	xy74:tc1raw
+		xy75	STR	xy75:tc1raw
+		xy76	STR	xy76:tc1raw
+		xy77	STR	xy77:tc1raw
+	END
+END		
+
+# Specify the cell data
+CELLS	METADATA
+	pitch10u	METADATA
+		CELL.BIASSEC.SOURCE	STR	HEADER
+		CELL.TRIMSEC.SOURCE	STR	HEADER
+		CELL.BIASSEC		STR	BIASSEC
+		CELL.TRIMSEC		STR	DATASEC
+	END
+END
+
+# Specify the cell data
+CELLS	METADATA
+	tc1raw	METADATA
+		CELL.BIASSEC.SOURCE	STR	VALUE
+		CELL.TRIMSEC.SOURCE	STR	VALUE
+		CELL.BIASSEC		STR	[575:606,1:594]
+		CELL.TRIMSEC		STR	[1:574,1:594]
+	END
+END
+
+# How to translate PS concepts into FITS headers
+TRANSLATION	METADATA
+        FPA.FILTERID    STR     FILTERID
+        FPA.FILTER      STR     FILTERID
+        FPA.RA          STR     RA
+        FPA.DEC         STR     DEC
+        FPA.RADECSYS    STR     EQUINOX
+        FPA.OBSTYPE     STR     OBSTYPE
+        FPA.OBJECT      STR     OBJECT
+        FPA.OBS.MODE    STR     OBS_MODE
+        FPA.COMMENT     STR     CMMTOBS
+        FPA.AIRMASS     STR     AIRMASS
+        FPA.POSANGLE    STR     POSANGLE
+	FPA.ROTANGLE	STR	ROT
+        FPA.FOCUS       STR     M2Z
+        FPA.TIME        STR     SHUTOUTC
+        FPA.EXPOSURE    STR     EXPREQ          # Requested exposure time, presumably camera exposure time
+        FPA.ALT         STR     ALT
+        FPA.AZ          STR     AZ
+        FPA.TEMP        STR     DETTEM
+        FPA.M1X         STR     M1X
+        FPA.M1Y         STR     M1Y   
+        FPA.M1Z         STR     M1Z   
+        FPA.M1TIP       STR     M1TIP 
+        FPA.M1TILT      STR     M1TILT
+        FPA.M2X         STR     M2X
+        FPA.M2Y         STR     M2Y   
+        FPA.M2Z         STR     M2Z   
+        FPA.M2TIP       STR     M2TIP 
+        FPA.M2TILT      STR     M2TILT
+        FPA.ENV.TEMP    STR     ENVTEM
+        FPA.ENV.HUMID   STR     ENVHUM
+        FPA.ENV.WIND    STR     ENVWIN
+        FPA.ENV.DIR     STR     ENVDIR
+        FPA.PON.TIME    STR     PONTIME
+#	FPA.TELESCOPE	STR	TELESCOP -- hardwired for format
+#	FPA.INSTRUMENT	STR	INSTRUME -- hardwired for format
+#	FPA.DETECTOR	STR	DETECTOR -- hardwired for format
+
+        FPA.TELTEMP.M1       STR  TELTEMM1 # Primary mirror temps (C) 
+        FPA.TELTEMP.M1CELL   STR  TELTEMMS # Primary mirror support temps (C)   
+        FPA.TELTEMP.M2       STR  TELTEMM2 # Secondary mirror temps (C
+        FPA.TELTEMP.SPIDER   STR  TELTEMSP # Spider temperatures (C)  
+        FPA.TELTEMP.TRUSS    STR  TELTEMTR # Mid truss temperatures (C
+        FPA.TELTEMP.EXTRA    STR  TELTEMEX # Miscellaneous temperatures (C)     
+
+        FPA.BURNTOOL.APPLIED STR BTOOLAPP
+
+        CHIP.ID         STR     DETECTOR
+        CELL.XBIN       STR     CCDSUM
+        CELL.YBIN       STR     CCDSUM
+        CELL.X0         STR     IMNPIX1
+        CELL.Y0         STR     IMNPIX2
+        CELL.XPARITY    STR     ATM1_1
+        CELL.YPARITY    STR     ATM2_2
+	CHIP.TEMP	STR	CDETTEM
+	CHIP.TEMPERATURE STR	DETTEM
+	CHIP.VIDEOCELL  STR     CELLMODE
+
+        CELL.EXPOSURE   STR     EXPTIME         # Exposure time measured by shutter
+        CELL.DARKTIME   STR     DARKTIME        # Exposure time for camera
+        CELL.TIME       STR     SHUTOUTC	# Observation time
+        # XXX CELL.GAIN       STR     GAIN		# Cell gain (e/ADU)
+        CELL.READNOISE  STR     RDNOISE		# Cell read noise (ADU)
+        # XXX CELL.SATURATION STR     MAXLIN		# Saturation point (ADU)
+
+END
+
+# Default PS concepts that may be specified by value
+DEFAULTS        METADATA
+        FPA.TELESCOPE   STR     PS2
+        FPA.INSTRUMENT  STR     TC3
+        FPA.LONGITUDE   STR     10:25:01.417 # West Longitude in Hours 10.4170608521 XXX need to fix...
+        FPA.LATITUDE    STR     20:42:25.558 # North Latitude in Degrees 20.7070999146 XXX need to fix...
+        FPA.ELEVATION   F32     3048.0 # altitude in meters XXX need to fix...
+        FPA.DETECTOR    STR     TC3
+        FPA.TIMESYS     STR     UTC
+
+	CHIP.XSIZE	S32	4846
+	CHIP.YSIZE	S32	4868
+        CHIP.XPARITY    S32     1
+        CHIP.YPARITY    S32     1
+
+	CELL.TIMESYS	STR	UTC
+	CELL.READDIR	S32	1		# Cell is read in x direction
+        CELL.BAD        S32     0
+
+	# XXX these should come from the header, but not for now
+        CELL.GAIN       F32     1.0		# Cell gain (e/ADU)
+        CELL.SATURATION F32     40000		# Saturation point (ADU)
+
+	### How to get FPA coordinates from chip coordinates
+        CHIP.X0.DEPEND          STR     CHIP.NAME
+        CHIP.X0         METADATA
+          XY00  S32     4971
+          XY01  S32     4971
+          XY02  S32     4971
+          XY03  S32     4971
+          XY10  S32     9942
+          XY11  S32     9942
+          XY12  S32     9942
+          XY13  S32     9942
+          XY20  S32     14913
+          XY21  S32     14913
+          XY22  S32     14913
+          XY23  S32     14913
+          XY30  S32     19884
+          XY31  S32     19884
+          XY32  S32     19884
+          XY33  S32     19884
+        END
+        CHIP.Y0.DEPEND          STR     CHIP.NAME
+        CHIP.Y0         METADATA
+          XY00  S32      5143
+          XY01  S32     10286
+          XY02  S32     15429
+          XY03  S32     20572
+          XY10  S32      5143
+          XY11  S32     10286
+          XY12  S32     15429
+          XY13  S32     20572
+          XY20  S32      5143
+          XY21  S32     10286
+          XY22  S32     15429
+          XY23  S32     20572
+          XY30  S32      5143
+          XY31  S32     10286
+          XY32  S32     15429
+          XY33  S32     20572
+        END
+        CHIP.XPARITY.DEPEND     STR     CHIP.NAME
+        CHIP.XPARITY    METADATA
+          XY00  S32     -1
+          XY01  S32     -1
+          XY02  S32     -1
+          XY03  S32     -1
+          XY10  S32     -1
+          XY11  S32     -1
+          XY12  S32     -1
+          XY13  S32     -1
+          XY20  S32     -1
+          XY21  S32     -1
+          XY22  S32     -1
+          XY23  S32     -1
+          XY30  S32     -1
+          XY31  S32     -1
+          XY32  S32     -1
+          XY33  S32     -1
+        END
+        CHIP.YPARITY.DEPEND     STR     CHIP.NAME
+        CHIP.YPARITY    METADATA
+          XY00  S32     -1
+          XY01  S32     -1
+          XY02  S32     -1
+          XY03  S32     -1
+          XY10  S32     -1
+          XY11  S32     -1
+          XY12  S32     -1
+          XY13  S32     -1
+          XY20  S32     -1
+          XY21  S32     -1
+          XY22  S32     -1
+          XY23  S32     -1
+          XY30  S32     -1
+          XY31  S32     -1
+          XY32  S32     -1
+          XY33  S32     -1
+        END
+END
+
+# How to translation PS concepts into database lookups
+DATABASE	METADATA
+	TYPE		dbEntry		TABLE		COLUMN		GIVENDBCOL	GIVENPS
+#	CELL.GAIN	dbEntry		Camera		gain		chipId,cellId	CHIP.NAME,CELL.NAME
+#	CELL.READNOISE	dbEntry		Camera		readNoise	chipId,cellId	CHIP.NAME,CELL.NAME
+
+# A database entry refers to a particular column (COLUMN) in a
+# particular table (TABLE), given certain PS concepts (GIVENPS) that
+# match certain database columns (GIVENDBCOL).
+END		
+
+# Where there might be some ambiguity, specify the format
+FORMATS		METADATA
+	FPA.RA		STR	DEGREES
+	FPA.DEC		STR	DEGREES
+	FPA.LONGITUDE	STR	HOURS
+	FPA.LATITUDE	STR	DEGREES
+        FPA.TIME        STR     YEAR.FIRST
+        CELL.TIME       STR     YEAR.FIRST
+#	FPA.TIME	STR	MJD
+#	CELL.TIME	STR	MJD
+        CELL.BINNING    STR     TOGETHER
+	CELL.READNOISE	STR	ADU
+END
+ 
