Index: trunk/ppImage/src/ppImageMosaic.c
===================================================================
--- trunk/ppImage/src/ppImageMosaic.c	(revision 27988)
+++ trunk/ppImage/src/ppImageMosaic.c	(revision 27989)
@@ -25,6 +25,5 @@
     pmChip *inChip = pmFPAviewThisChip(view, in->fpa);
     if (!outChip->hdu && !outChip->parent->hdu) {
-        const char *name = psMetadataLookupStr(&status, in->fpa->concepts, "FPA.OBS"); // Name of FPA
-        pmFPAAddSourceFromView(out->fpa, name, view, out->format);
+        pmFPAAddSourceFromView(out->fpa, view, out->format);
     }
 
@@ -66,8 +65,6 @@
     #endif
 
-    const char *name = psMetadataLookupStr(&status, in->fpa->concepts, "FPA.OBS"); // Name of FPA
-
     pmFPAview *view = pmFPAviewAlloc(0);
-    pmFPAAddSourceFromView(out->fpa, name, view, out->format);
+    pmFPAAddSourceFromView(out->fpa, view, out->format);
     psFree(view);
 
Index: trunk/ppMerge/src/ppMergeCamera.c
===================================================================
--- trunk/ppMerge/src/ppMergeCamera.c	(revision 27988)
+++ trunk/ppMerge/src/ppMergeCamera.c	(revision 27989)
@@ -19,5 +19,4 @@
                 const char *name,       ///< Name of output file
                 pmFPAfileType type,     ///< Type of file
-                const char *description, ///< Description of file
                 psMetadata *format,     ///< Camera format
                 pmFPAview *view         ///< View for PHU
@@ -84,5 +83,5 @@
     output->save = true;
 
-    if (!pmFPAAddSourceFromView(fpa, description, view, format)) {
+    if (!pmFPAAddSourceFromView(fpa, view, format)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to generate output FPA.");
         return false;
@@ -337,10 +336,10 @@
       case PPMERGE_TYPE_FRINGE:
         fileType = PM_FPA_FILE_FRINGE;
-	break;
+        break;
       default:
         psAbort("Unknown frame type: %x", type);
     }
 
-    if (!outputFile(config, outName, fileType, "Merged detrend", format, phuView)) {
+    if (!outputFile(config, outName, fileType, format, phuView)) {
         psFree(outName);
         psFree(phuView);
@@ -349,10 +348,10 @@
     psFree(outName);
 
-    if (!outputFile(config, "PPMERGE.OUTPUT.SIGMA", PM_FPA_FILE_IMAGE, "Merge sigma", format, phuView)) {
+    if (!outputFile(config, "PPMERGE.OUTPUT.SIGMA", PM_FPA_FILE_IMAGE, format, phuView)) {
         psFree(phuView);
         return false;
     }
 
-    if (!outputFile(config, "PPMERGE.OUTPUT.COUNT", PM_FPA_FILE_IMAGE, "Merged count", format, phuView)) {
+    if (!outputFile(config, "PPMERGE.OUTPUT.COUNT", PM_FPA_FILE_IMAGE, format, phuView)) {
         psFree(phuView);
         return false;
Index: trunk/ppSim/src/ppSimCreate.c
===================================================================
--- trunk/ppSim/src/ppSimCreate.c	(revision 27988)
+++ trunk/ppSim/src/ppSimCreate.c	(revision 27989)
@@ -198,5 +198,5 @@
 
     if (phuLevel == PM_FPA_LEVEL_FPA) {
-        if (!pmFPAAddSourceFromView(fpa, "Simulation", view, output->format)) {
+        if (!pmFPAAddSourceFromView(fpa, view, output->format)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
             psFree(fpa);
@@ -209,5 +209,5 @@
     while ((chip = pmFPAviewNextChip(view, fpa, 1))) {
         if (phuLevel == PM_FPA_LEVEL_CHIP) {
-            if (!pmFPAAddSourceFromView(fpa, "Simulation", view, output->format)) {
+            if (!pmFPAAddSourceFromView(fpa, view, output->format)) {
                 psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
                 psFree(fpa);
@@ -220,5 +220,5 @@
         while ((cell = pmFPAviewNextCell(view, fpa, 1))) {
             if (phuLevel == PM_FPA_LEVEL_CELL) {
-                if (!pmFPAAddSourceFromView(fpa, "Simulation", view, output->format)) {
+                if (!pmFPAAddSourceFromView(fpa, view, output->format)) {
                     psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
                     psFree(fpa);
Index: trunk/ppSim/src/ppSimMosaicChip.c
===================================================================
--- trunk/ppSim/src/ppSimMosaicChip.c	(revision 27988)
+++ trunk/ppSim/src/ppSimMosaicChip.c	(revision 27989)
@@ -22,6 +22,5 @@
     pmChip *inChip = pmFPAviewThisChip(view, in->fpa);
     if (!outChip->hdu && !outChip->parent->hdu) {
-        const char *name = psMetadataLookupStr(&status, in->fpa->concepts, "FPA.OBS"); // Name of FPA
-        pmFPAAddSourceFromView(out->fpa, name, view, out->format);
+        pmFPAAddSourceFromView(out->fpa, view, out->format);
     }
 
Index: trunk/ppStack/src/ppStackCamera.c
===================================================================
--- trunk/ppStack/src/ppStackCamera.c	(revision 27988)
+++ trunk/ppStack/src/ppStackCamera.c	(revision 27989)
@@ -252,5 +252,5 @@
     output->save = true;
 
-    if (!pmFPAAddSourceFromFormat(outFPA, "Stack", output->format)) {
+    if (!pmFPAAddSourceFromFormat(outFPA, output->format)) {
         psError(psErrorCodeLast(), false, "Unable to generate output FPA.");
         return false;
@@ -302,5 +302,5 @@
     exp->save = true;
 
-    if (!pmFPAAddSourceFromFormat(expFPA, "Stack", exp->format)) {
+    if (!pmFPAAddSourceFromFormat(expFPA, exp->format)) {
         psError(psErrorCodeLast(), false, "Unable to generate output FPA.");
         return false;
@@ -369,5 +369,5 @@
     unConv->save = true;
 
-    if (!pmFPAAddSourceFromFormat(unconvFPA, "Stack", unConv->format)) {
+    if (!pmFPAAddSourceFromFormat(unconvFPA, unConv->format)) {
         psError(psErrorCodeLast(), false, "Unable to generate output FPA.");
         return false;
@@ -419,5 +419,5 @@
     unconvExp->save = true;
 
-    if (!pmFPAAddSourceFromFormat(unconvExpFPA, "Stack", unconvExp->format)) {
+    if (!pmFPAAddSourceFromFormat(unconvExpFPA, unconvExp->format)) {
         psError(psErrorCodeLast(), false, "Unable to generate output FPA.");
         return false;
Index: trunk/psModules/src/camera/pmFPAConstruct.c
===================================================================
--- trunk/psModules/src/camera/pmFPAConstruct.c	(revision 27988)
+++ trunk/psModules/src/camera/pmFPAConstruct.c	(revision 27989)
@@ -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: trunk/psModules/src/camera/pmFPAConstruct.h
===================================================================
--- trunk/psModules/src/camera/pmFPAConstruct.h	(revision 27988)
+++ trunk/psModules/src/camera/pmFPAConstruct.h	(revision 27989)
@@ -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: trunk/psModules/src/camera/pmFPAfileFitsIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileFitsIO.c	(revision 27988)
+++ trunk/psModules/src/camera/pmFPAfileFitsIO.c	(revision 27989)
@@ -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: trunk/psModules/src/camera/pmFPAfileIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileIO.c	(revision 27988)
+++ trunk/psModules/src/camera/pmFPAfileIO.c	(revision 27989)
@@ -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);
Index: trunk/psphot/src/psphotMosaicChip.c
===================================================================
--- trunk/psphot/src/psphotMosaicChip.c	(revision 27988)
+++ trunk/psphot/src/psphotMosaicChip.c	(revision 27989)
@@ -21,6 +21,5 @@
     pmChip *inChip = pmFPAviewThisChip(view, in->fpa);
     if (!outChip->hdu && !outChip->parent->hdu) {
-        const char *name = psMetadataLookupStr(&status, in->fpa->concepts, "FPA.OBS"); // Name of FPA
-        pmFPAAddSourceFromView(out->fpa, name, view, out->format);
+        pmFPAAddSourceFromView(out->fpa, view, out->format);
     }
 
Index: trunk/pstamp/src/ppstampMakeStamp.c
===================================================================
--- trunk/pstamp/src/ppstampMakeStamp.c	(revision 27988)
+++ trunk/pstamp/src/ppstampMakeStamp.c	(revision 27989)
@@ -36,13 +36,13 @@
     double d_before = check->sky->d;
     psLogMsg("ppstampMakeStamp", 2, "Before fit  Center Pixel RA: %f   DEC: %f (degrees)\n",
-	     r_before * PS_DEG_RAD, d_before * PS_DEG_RAD);
+             r_before * PS_DEG_RAD, d_before * PS_DEG_RAD);
 
     if (outFPA->toSky->type != PS_PROJ_TAN) {
-	// we need to make astrometry terms for the output which are centered on the output chip center,
-	// but we keep the original plate scale
-	psFree(outFPA->toSky);
-	outFPA->toSky = psProjectionAlloc (r_before, d_before, inFPA->toSky->Xs, inFPA->toSky->Ys, PS_PROJ_TAN);
-
-	if (!pmAstromLinearizeToSky(inFPA, inChip, outFPA, outChip, roi)) {
+        // we need to make astrometry terms for the output which are centered on the output chip center,
+        // but we keep the original plate scale
+        psFree(outFPA->toSky);
+        outFPA->toSky = psProjectionAlloc (r_before, d_before, inFPA->toSky->Xs, inFPA->toSky->Ys, PS_PROJ_TAN);
+
+        if (!pmAstromLinearizeToSky(inFPA, inChip, outFPA, outChip, roi)) {
             psFree(check);
             psError(PS_ERR_UNKNOWN, false, "Failed to linearize astrometry\n");
@@ -56,7 +56,7 @@
 
         psLogMsg("ppstampMakeStamp", 2, "After fit:  Center Pixel RA: %f   DEC: %f (degrees)\n",
-		 r_after * PS_DEG_RAD, d_after * PS_DEG_RAD);
-        psLogMsg("ppstampMakeStamp", 2, "Error in fit to astrometry %.2f    %.2f (arcseconds)\n", 
-		 (r_after - r_before) *  PS_DEG_RAD * 3600, (d_after - d_before) * PS_DEG_RAD * 3600);
+                 r_after * PS_DEG_RAD, d_after * PS_DEG_RAD);
+        psLogMsg("ppstampMakeStamp", 2, "Error in fit to astrometry %.2f    %.2f (arcseconds)\n",
+                 (r_after - r_before) *  PS_DEG_RAD * 3600, (d_after - d_before) * PS_DEG_RAD * 3600);
 
         // XXX: should we fail if the fit is bad ??
@@ -238,7 +238,6 @@
         return PS_EXIT_DATA_ERROR;
     }
-    char *fpaName = psMetadataLookupStr(NULL, input->fpa->concepts, "FPA.OBS"); // Name of FPA
     pmFPAview *outview = pmFPAviewAlloc(0);
-    pmFPAAddSourceFromView(output->fpa, fpaName, outview, output->format);
+    pmFPAAddSourceFromView(output->fpa, outview, output->format);
 
     outview->chip = 0;
Index: trunk/pstamp/src/ppstampMosaic.c
===================================================================
--- trunk/pstamp/src/ppstampMosaic.c	(revision 27988)
+++ trunk/pstamp/src/ppstampMosaic.c	(revision 27989)
@@ -24,6 +24,5 @@
     pmChip  *inChip = pmFPAviewThisChip(view, input->fpa);
     if (!mChip->hdu && !mChip->parent->hdu) {
-        const char *name = psMetadataLookupStr(&status, input->fpa->concepts, "FPA.OBS"); // Name of FPA
-        pmFPAAddSourceFromView(mosaic->fpa, name, mosaicView, mosaic->format);
+        pmFPAAddSourceFromView(mosaic->fpa, mosaicView, mosaic->format);
     }
     psFree(mosaicView);
Index: trunk/pswarp/src/pswarpDefine.c
===================================================================
--- trunk/pswarp/src/pswarpDefine.c	(revision 27988)
+++ trunk/pswarp/src/pswarpDefine.c	(revision 27989)
@@ -124,7 +124,6 @@
     }
 
-    const char *name = psMetadataLookupStr(NULL, input->fpa->concepts, "FPA.OBS"); ///< Name of FPA
     view->chip = view->cell = view->readout = -1;
-    pmFPAAddSourceFromView(output->fpa, name, view, output->format);
+    pmFPAAddSourceFromView(output->fpa, view, output->format);
 
     psFree (view);
