Index: trunk/psphot/src/psphotOutput.c
===================================================================
--- trunk/psphot/src/psphotOutput.c	(revision 6727)
+++ trunk/psphot/src/psphotOutput.c	(revision 6862)
@@ -1,3 +1,63 @@
 # include "psphot.h"
+
+int psphotSaveImage (psMetadata *header, psImage *image, char *filename) {
+
+    psFits *fits = psFitsOpen (filename, "w");
+    psFitsWriteImage (fits, NULL, image, 0, NULL);
+    psFitsClose (fits);
+    return (TRUE);
+}
+
+bool psphotDumpMoments (psMetadata *recipe, psArray *sources) {
+
+    bool status;
+
+    // optional dump of all rough source data
+    char *output = psMetadataLookupStr (&status, recipe, "MOMENTS_OUTPUT_FILE");
+    if (!status) return false;
+    if (output == NULL) return false;
+    if (output[0] == 0) return false;
+
+    pmMomentsWriteText (sources, output);
+    return true;
+}
+
+// these values are saved in an output header stub - they are added to either the
+// PHU header (CMP) or the MEF table header (CMF)
+psMetadata *psphotDefineHeader (psMetadata *recipe) {
+
+    psMetadata *header = psMetadataAlloc ();
+
+    // write necessary information to output header
+    psMetadataItemTransfer (header, recipe, "ZERO_PT");
+    psMetadataItemTransfer (header, recipe, "PHOTCODE");
+
+    psMetadataItemTransfer (header, recipe, "APMIFIT");
+    psMetadataItemTransfer (header, recipe, "DAPMIFIT");
+    psMetadataItemTransfer (header, recipe, "NAPMIFIT");
+    psMetadataItemTransfer (header, recipe, "SKYBIAS");
+    psMetadataItemTransfer (header, recipe, "SKYSAT");
+    
+    // PSF model parameters (shape values for image center)
+    psMetadataItemTransfer (header, recipe, "NPSFSTAR");
+    psMetadataItemTransfer (header, recipe, "APLOSS");
+    psMetadataItemTransfer (header, recipe, "FWHM_X");
+    psMetadataItemTransfer (header, recipe, "FWHM_Y");
+    psMetadataItemTransfer (header, recipe, "ANGLE");
+
+    // XXX these need to be defined from elsewhere
+    psMetadataAdd (header, PS_LIST_TAIL, "FSATUR",   PS_DATA_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
+    psMetadataAdd (header, PS_LIST_TAIL, "FLIMIT",   PS_DATA_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
+
+    // sky background model statistics
+    psMetadataItemTransfer (header, recipe, "SKY_MEAN");
+    psMetadataItemTransfer (header, recipe, "SKY_STDV");
+    psMetadataItemTransfer (header, recipe, "SKY_MIN");
+    psMetadataItemTransfer (header, recipe, "SKY_MAX");
+    psMetadataItemTransfer (header, recipe, "SKY_NX");
+    psMetadataItemTransfer (header, recipe, "SKY_NY");
+
+    return header;
+}
 
 # if (0)
@@ -66,53 +126,2 @@
 }
 # endif
-
-int psphotSaveImage (psMetadata *header, psImage *image, char *filename) {
-
-    psFits *fits = psFitsOpen (filename, "w");
-    psFitsWriteImage (fits, NULL, image, 0, NULL);
-    psFitsClose (fits);
-    return (TRUE);
-}
-
-bool psphotDumpMoments (psMetadata *config, psArray *sources) {
-
-    bool status;
-
-    // optional dump of all rough source data
-    char *output = psMetadataLookupStr (&status, config, "MOMENTS_OUTPUT_FILE");
-    if (!status) return false;
-    if (output == NULL) return false;
-    if (output[0] == 0) return false;
-
-    pmMomentsWriteText (sources, output);
-    return true;
-}
-
-// these values are saved in an output header stub - they are added to either the
-// PHU header (CMP) or the MEF table header (CMF)
-psMetadata *psphotDefineHeader (psMetadata *recipe) {
-
-    psMetadata *header = psMetadataAlloc ();
-
-    // write necessary information to output header
-    psMetadataItemTransfer (header, recipe, "ZERO_PT");
-    psMetadataItemTransfer (header, recipe, "PHOTCODE");
-
-    psMetadataItemTransfer (header, recipe, "APMIFIT");
-    psMetadataItemTransfer (header, recipe, "DAPMIFIT");
-    psMetadataItemTransfer (header, recipe, "NAPMIFIT");
-    psMetadataItemTransfer (header, recipe, "SKYBIAS");
-    psMetadataItemTransfer (header, recipe, "SKYSAT");
-    
-    psMetadataItemTransfer (header, recipe, "NPSFSTAR");
-    psMetadataItemTransfer (header, recipe, "APLOSS");
-
-    // XXX these need to be defined from elsewhere
-    psMetadataAdd (header, PS_LIST_TAIL, "FWHM_X",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM X",          0.0);
-    psMetadataAdd (header, PS_LIST_TAIL, "FWHM_Y",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM Y",          0.0);
-    psMetadataAdd (header, PS_LIST_TAIL, "ANGLE",    PS_DATA_F32 | PS_META_REPLACE, "PSF ANGLE",           0.0);
-    psMetadataAdd (header, PS_LIST_TAIL, "FSATUR",   PS_DATA_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
-    psMetadataAdd (header, PS_LIST_TAIL, "FLIMIT",   PS_DATA_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
-
-    return header;
-}
