Index: trunk/psModules/src/astrom/pmAstrometryObjects.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryObjects.c	(revision 8815)
+++ trunk/psModules/src/astrom/pmAstrometryObjects.c	(revision 9386)
@@ -8,6 +8,6 @@
 *  @author EAM, IfA
 *
-*  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-09-15 09:49:01 $
+*  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-10-07 03:54:08 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -202,5 +202,6 @@
     psArray *ref,
     psArray *match,
-    psMetadata *config)
+    psMetadata *config,
+    psMetadata *updates)
 {
     PS_ASSERT_PTR_NON_NULL(raw, NULL);
@@ -265,10 +266,25 @@
     psVectorInit (yMask, 0);
 
+    double dX, dY;
+
     // fit chip-to-FPA transformation
+    // XXX should force x->n and y->n to be the same
     psVectorClipFitPolynomial2D (map->x, stats, xMask, 0, x, wt, X, Y);
     psLogMsg ("psModules.astrom", 3, "x resid: %f +/- %f (%ld of %ld)\n", stats->clippedMean, stats->clippedStdev, stats->clippedNvalues, x->n);
+    dX = stats->clippedStdev;
 
     psVectorClipFitPolynomial2D (map->y, stats, yMask, 0, y, wt, X, Y);
     psLogMsg ("psModules.astrom", 3, "y resid: %f +/- %f (%ld of %ld)\n", stats->clippedMean, stats->clippedStdev, stats->clippedNvalues, y->n);
+    dY = stats->clippedStdev;
+
+    // XXX this is somewhat ad-hoc: we need to be sure these values are in arcsec
+    // and we need to set NASTRO = 0 if we have a failure, etc
+    // XXX this is a somewhat silly place to write these updates...
+    if (updates) {
+        psMetadataAddF32 (updates, PS_LIST_TAIL, "NASTRO",   PS_META_REPLACE, "", PS_MIN(x->n, y->n));
+        psMetadataAddF32 (updates, PS_LIST_TAIL, "CERROR",   PS_META_REPLACE, "", hypot(dX, dY));
+        psMetadataAddF32 (updates, PS_LIST_TAIL, "CPRECISE", PS_META_REPLACE, "", hypot(dX, dY)/sqrt(PS_MIN(x->n, y->n)));
+        psMetadataAddF32 (updates, PS_LIST_TAIL, "EQUINOX",  PS_META_REPLACE, "", 2000.0); // XXX this is bogus: must be defined somewhere
+    }
 
     psFree (x);
