Index: trunk/psModules/src/camera/pmFPAfileIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileIO.c	(revision 15333)
+++ trunk/psModules/src/camera/pmFPAfileIO.c	(revision 15562)
@@ -34,4 +34,5 @@
 #include "pmResiduals.h"
 #include "pmPSF_IO.h"
+#include "pmAstrometryTable.h"
 #include "pmFPA_JPEG.h"
 #include "pmSourcePlots.h"
@@ -192,4 +193,7 @@
         status = pmPSFmodelReadForView (view, file, config);
         break;
+      case PM_FPA_FILE_ASTROM:
+        status = pmAstromReadForView (view, file, config);
+        break;
       case PM_FPA_FILE_JPEG:
       case PM_FPA_FILE_KAPA:
@@ -273,4 +277,5 @@
     case PM_FPA_FILE_CMF:
     case PM_FPA_FILE_PSF:
+    case PM_FPA_FILE_ASTROM:
     case PM_FPA_FILE_JPEG:
     case PM_FPA_FILE_KAPA:
@@ -336,4 +341,10 @@
     // have their data stored on the readout->analysis metadata structure of another
     // (existing) fpa
+    if (file->type == PM_FPA_FILE_CMF) {
+      if (!pmFPAviewCheckDataStatusForSources (view, file)) {
+        psTrace("psModules.camera", 6, "skip write for %s, no data for this entry", file->name);
+        return true;
+      }
+    }
     if (file->type == PM_FPA_FILE_PSF) {
       if (!pmPSFmodelCheckDataStatusForView (view, file)) {
@@ -342,6 +353,6 @@
       }
     }
-    if (file->type == PM_FPA_FILE_CMF) {
-      if (!pmFPAviewCheckDataStatusForSources (view, file)) {
+    if (file->type == PM_FPA_FILE_ASTROM) {
+      if (!pmAstromCheckDataStatusForView (view, file)) {
         psTrace("psModules.camera", 6, "skip write for %s, no data for this entry", file->name);
         return true;
@@ -449,4 +460,8 @@
       case PM_FPA_FILE_PSF:
         status = pmPSFmodelWriteForView (view, file, config);
+        break;
+
+      case PM_FPA_FILE_ASTROM:
+        status = pmAstromWriteForView (view, file, config);
         break;
 
@@ -508,4 +523,5 @@
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
+      case PM_FPA_FILE_ASTROM:
         psTrace ("psModules.camera", 5, "closing %s (%s) (%d:%d:%d)\n", file->filename, file->name, view->chip, view->cell, view->readout);
         status = psFitsClose (file->fits);
@@ -574,4 +590,5 @@
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
+      case PM_FPA_FILE_ASTROM:
         psTrace ("psModules.camera", 5, "NOT freeing %s (%s) : save for further analysis\n", file->filename, file->name);
         return true;
@@ -712,4 +729,5 @@
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
+      case PM_FPA_FILE_ASTROM:
         psTrace ("psModules.camera", 5, "opening %s (%s) (%d:%d:%d)\n",
                  file->filename, file->name, view->chip, view->cell, view->readout);
@@ -861,4 +879,7 @@
         status = pmPSFmodelWritePHU (view, file, config);
         break;
+      case PM_FPA_FILE_ASTROM:
+        status = pmAstromWritePHU (view, file, config);
+        break;
       case PM_FPA_FILE_SX:
       case PM_FPA_FILE_RAW:
