Index: /branches/eam_branches/psModules.20100506/src/camera/pmFPAConstruct.c
===================================================================
--- /branches/eam_branches/psModules.20100506/src/camera/pmFPAConstruct.c	(revision 28010)
+++ /branches/eam_branches/psModules.20100506/src/camera/pmFPAConstruct.c	(revision 28011)
@@ -100,27 +100,4 @@
 
     return num;
-}
-
-// Get the name of a PHU chip or cell from the header
-static psString phuNameFromHeader(const char *name, // The name to lookup: "CELL.NAME" or "CHIP.NAME"
-                                  const psMetadata *fileInfo, // FILE within the camera format description
-                                  const psMetadata *header // Primary header
-                                 )
-{
-    assert(name && strlen(name) > 0);
-    assert(fileInfo);
-    assert(header);
-
-    bool mdok = true;                   // Result of MD lookup
-    psString keyword = psMetadataLookupStr(&mdok, fileInfo, name);
-    if (!mdok || strlen(keyword) == 0) {
-        return false;
-    }
-    psMetadataItem *resultItem = psMetadataLookup(header, keyword);
-    if (!resultItem) {
-        psError(PS_ERR_IO, true, "Unable to find %s in primary header to identify %s.\n", keyword, name);
-        return NULL;
-    }
-    return psMetadataItemParseString(resultItem);
 }
 
@@ -1102,5 +1079,4 @@
 // It returns a view corresponding to the PHU
 static pmFPAview *addSource(pmFPA *fpa,       // The FPA
-                            const char *fpaObs, // The desired FPA observation name
                             const pmFPAview *phuView, // The view corresponding to the PHU, or NULL
                             const psMetadata *header, // The PHU header, or NULL
@@ -1114,19 +1090,4 @@
 
     bool mdok;                          // Status of MD lookup
-
-    // If FPA.OBS is already defined, new name must match it; otherwise, warn the user that something
-    // potentially bad is happening.
-    if (fpaObs && install) {
-        const char *currentName = psMetadataLookupStr(&mdok, fpa->concepts, "FPA.OBS"); // Current name
-        if (mdok && currentName && strlen(currentName) > 0 && strcmp(currentName, fpaObs) != 0) {
-            psWarning("FPA.OBS for new source (%s) doesn't match FPA.OBS for current fpa (%s).",
-                      fpaObs, currentName);
-        }
-        psMetadataAddStr(fpa->concepts, PS_LIST_HEAD, "FPA.OBS", PS_META_REPLACE, "Observation identifier",
-                         fpaObs);
-    } else if (!psMetadataLookup(fpa->concepts, "FPA.OBS")) {
-        // Make sure there is an FPA.OBS
-        psMetadataAddStr(fpa->concepts, PS_LIST_HEAD, "FPA.OBS", 0, "Observation identifier", "UNKNOWN");
-    }
 
     psMetadata *fileInfo = psMetadataLookupMetadata(&mdok, format, "FILE"); // The file information
@@ -1350,5 +1311,5 @@
 }
 
-bool pmFPAAddSourceFromFormat(pmFPA *fpa, const char *fpaObs, const psMetadata *format)
+bool pmFPAAddSourceFromFormat(pmFPA *fpa, const psMetadata *format)
 {
     PS_ASSERT_PTR_NON_NULL(fpa, false);
@@ -1359,5 +1320,5 @@
     pmFPAview *view = pmFPAviewAlloc(0);// View for current level
     if (phuLevel == PM_FPA_LEVEL_FPA) {
-        if (!pmFPAAddSourceFromView(fpa, fpaObs, view, format)) {
+        if (!pmFPAAddSourceFromView(fpa, view, format)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
             psFree(view);
@@ -1368,5 +1329,5 @@
         while ((chip = pmFPAviewNextChip(view, fpa, 1))) {
             if (phuLevel == PM_FPA_LEVEL_CHIP) {
-                if (!pmFPAAddSourceFromView(fpa, fpaObs, view, format)) {
+                if (!pmFPAAddSourceFromView(fpa, view, format)) {
                     psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
                     psFree(view);
@@ -1377,5 +1338,5 @@
                 while ((cell = pmFPAviewNextCell(view, fpa, 1))) {
                     if (phuLevel == PM_FPA_LEVEL_CELL) {
-                        if (!pmFPAAddSourceFromView(fpa, fpaObs, view, format)) {
+                        if (!pmFPAAddSourceFromView(fpa, view, format)) {
                             psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
                             psFree(view);
@@ -1392,5 +1353,5 @@
 }
 
-bool pmFPAAddSourceFromView(pmFPA *fpa, const char *fpaObs, const pmFPAview *phuView,
+bool pmFPAAddSourceFromView(pmFPA *fpa, const pmFPAview *phuView,
                             const psMetadata *format)
 {
@@ -1399,5 +1360,5 @@
     PS_ASSERT_PTR_NON_NULL(format, false);
 
-    pmFPAview *view = addSource(fpa, fpaObs, phuView, NULL, format, true);
+    pmFPAview *view = addSource(fpa, phuView, NULL, format, true);
     bool status = (view != NULL);
     psFree(view);
@@ -1418,12 +1379,5 @@
     }
 
-    // Check the name of the FPA
-    psString fpaObs = phuNameFromHeader("FPA.OBS", fileInfo, phu); // New observation name for the FPA
-    if (!fpaObs || strlen(fpaObs) == 0) {
-        psWarning("Unable to determine FPA.OBS: check for FPA.OBS in FILE in camera format");
-    }
-
-    pmFPAview *view = addSource(fpa, fpaObs, NULL, phu, format, true); // View of PHU, to return
-    psFree(fpaObs);
+    pmFPAview *view = addSource(fpa, NULL, phu, format, true); // View of PHU, to return
 
     return view;
@@ -1437,5 +1391,5 @@
     PS_ASSERT_PTR_NON_NULL(format, NULL);
 
-    return addSource(fpa, NULL, NULL, phu, format, false);
+    return addSource(fpa, NULL, phu, format, false);
 }
 
Index: /branches/eam_branches/psModules.20100506/src/camera/pmFPAConstruct.h
===================================================================
--- /branches/eam_branches/psModules.20100506/src/camera/pmFPAConstruct.h	(revision 28010)
+++ /branches/eam_branches/psModules.20100506/src/camera/pmFPAConstruct.h	(revision 28011)
@@ -29,5 +29,4 @@
 /// This is suitable for generating an output FPA given the desired format.
 bool pmFPAAddSourceFromFormat(pmFPA *fpa, ///< The FPA
-                              const char *fpaObs, ///< FPA.NAME for the source
                               const psMetadata *format ///< Format of file
     );
@@ -38,5 +37,4 @@
 /// configuration is required in order to describe how the FPA is laid out in terms of disk files.
 bool pmFPAAddSourceFromView(pmFPA *fpa,   ///< The FPA
-                            const char *fpaObs, ///< FPA.NAME for the source
                             const pmFPAview *phuView, ///< The view, corresponding to the PHU
                             const psMetadata *format ///< Format of file
Index: /branches/eam_branches/psModules.20100506/src/camera/pmFPAWrite.c
===================================================================
--- /branches/eam_branches/psModules.20100506/src/camera/pmFPAWrite.c	(revision 28010)
+++ /branches/eam_branches/psModules.20100506/src/camera/pmFPAWrite.c	(revision 28011)
@@ -165,21 +165,21 @@
     // generate the HDU, but only copies the structure.
     if (!blank && !hdu->blankPHU && !*imageArray) {
-	if (!pmHDUGenerateForCell(cell)) {
-	    psError(PS_ERR_UNKNOWN, false, "Unable to generate HDU for cell --- likely programming error.");
-	    return false;
-	}
-	if (!*imageArray) {
-	    if (type == FPA_WRITE_TYPE_IMAGE) {
-		psError(PS_ERR_UNKNOWN, false, "Expected to write an image, but it is missing...programming error?.");
-		return false;
-	    }
-	    if (type == FPA_WRITE_TYPE_MASK) {
-		psWarning("No mask image for this cell; skipping");
-	    }
-	    if (type == FPA_WRITE_TYPE_VARIANCE) {
-		psWarning("No variance image for this cell; skipping");
-	    }
-	    return true;
-	}
+        if (!pmHDUGenerateForCell(cell)) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to generate HDU for cell --- likely programming error.");
+            return false;
+        }
+        if (!*imageArray) {
+            if (type == FPA_WRITE_TYPE_IMAGE) {
+                psError(PS_ERR_UNKNOWN, false, "Expected to write an image, but it is missing...programming error?.");
+                return false;
+            }
+            if (type == FPA_WRITE_TYPE_MASK) {
+                psWarning("No mask image for this cell; skipping");
+            }
+            if (type == FPA_WRITE_TYPE_VARIANCE) {
+                psWarning("No variance image for this cell; skipping");
+            }
+            return true;
+        }
     }
 
@@ -307,5 +307,5 @@
 
         if (writeBlank || writeImage) {
-	    if (!pmConceptsWriteFPA(fpa, true, config)) {
+            if (!pmConceptsWriteFPA(fpa, true, config)) {
                 psError(PS_ERR_IO, false, "Unable to write concepts for FPA.\n");
                 return false;
@@ -341,5 +341,5 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-// Update the FPA.OBS, CHIP.NAME and CELL.NAME in the FITS header, if required
+// Update the CHIP.NAME and CELL.NAME in the FITS header, if required
 bool pmFPAUpdateNames(pmFPA *fpa, pmChip *chip, pmCell *cell, psS64 imageId, psS64 sourceId)
 {
@@ -375,12 +375,4 @@
         psError(PS_ERR_UNKNOWN, true, "Unable to find FILE information in camera format.\n");
         return false;
-    }
-    if (fpa) {
-        const char *fpaObsHdr = psMetadataLookupStr(&mdok, fileData, "FPA.OBS");
-        if (mdok && fpaObsHdr && strlen(fpaObsHdr) > 0) {
-            const char *fpaObs = psMetadataLookupStr(NULL, fpa->concepts, "FPA.OBS");
-            psMetadataAddStr(hduHigh->header, PS_LIST_TAIL, fpaObsHdr, PS_META_REPLACE,
-                             "Observation identifier", fpaObs);
-        }
     }
 
Index: /branches/eam_branches/psModules.20100506/src/camera/pmFPAfileFitsIO.c
===================================================================
--- /branches/eam_branches/psModules.20100506/src/camera/pmFPAfileFitsIO.c	(revision 28010)
+++ /branches/eam_branches/psModules.20100506/src/camera/pmFPAfileFitsIO.c	(revision 28011)
@@ -75,13 +75,6 @@
     }
 
-    pmFPA *nameSource = file->src; // Source of FPA.OBS
-    if (!nameSource) {
-        nameSource = file->fpa;
-    }
-    bool mdok;                  // Status of MD lookup
-    const char *fpaObs = psMetadataLookupStr(&mdok, nameSource->concepts, "FPA.OBS"); // Observation id
-
     pmFPA *copy = pmFPAConstruct(file->camera, file->cameraName);  // FPA to return
-    if (!pmFPAAddSourceFromView(copy, fpaObs, phuView, file->format)) {
+    if (!pmFPAAddSourceFromView(copy, phuView, file->format)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to insert HDU into FPA for writing.\n");
         psFree(copy);
Index: /branches/eam_branches/psModules.20100506/src/camera/pmFPAfileIO.c
===================================================================
--- /branches/eam_branches/psModules.20100506/src/camera/pmFPAfileIO.c	(revision 28010)
+++ /branches/eam_branches/psModules.20100506/src/camera/pmFPAfileIO.c	(revision 28011)
@@ -286,12 +286,5 @@
             }
 
-            pmFPA *nameSource = file->src; // Source of FPA.OBS
-            if (!nameSource) {
-                nameSource = file->fpa;
-            }
-            bool mdok;                  // Status of MD lookup
-            const char *fpaObs = psMetadataLookupStr(&mdok, nameSource->concepts, "FPA.OBS"); // Obs. id
-
-            pmFPAAddSourceFromView(file->fpa, fpaObs, view, format);
+            pmFPAAddSourceFromView(file->fpa, view, format);
             psTrace ("psModules.camera", 5, "created fpa data elements for %s (%s) (%d:%d:%d)\n",
                      file->name, file->name, view->chip, view->cell, view->readout);
