Index: trunk/psModules/src/camera/pmFPAConstruct.c
===================================================================
--- trunk/psModules/src/camera/pmFPAConstruct.c	(revision 16912)
+++ trunk/psModules/src/camera/pmFPAConstruct.c	(revision 17911)
@@ -1102,5 +1102,5 @@
 // It returns a view corresponding to the PHU
 static pmFPAview *addSource(pmFPA *fpa,       // The FPA
-                            const char *fpaname, // The desired FPA name
+                            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
@@ -1115,16 +1115,17 @@
     bool mdok;                          // Status of MD lookup
 
-    // If FPA.NAME is already defined, new name must match it; otherwise, warn the user that something
+    // If FPA.OBS is already defined, new name must match it; otherwise, warn the user that something
     // potentially bad is happening.
-    if (fpaname && install) {
-        const char *currentName = psMetadataLookupStr(&mdok, fpa->concepts, "FPA.NAME"); // Current name
-        if (mdok && currentName && strlen(currentName) > 0 && strcmp(currentName, fpaname) != 0) {
-            psWarning("FPA.NAME for new source (%s) doesn't match FPA.NAME for current "
-                     "fpa (%s).\n", fpaname, currentName);
-        }
-        psMetadataAddStr(fpa->concepts, PS_LIST_HEAD, "FPA.NAME", PS_META_REPLACE, "Name of FPA", fpaname);
-    } else if (!psMetadataLookup(fpa->concepts, "FPA.NAME")) {
-        // Make sure there is an FPA.NAME
-        psMetadataAddStr(fpa->concepts, PS_LIST_HEAD, "FPA.NAME", 0, "Name of FPA", "UNKNOWN");
+    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");
     }
 
@@ -1308,9 +1309,9 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-pmFPA *pmFPAConstruct(const psMetadata *camera)
+pmFPA *pmFPAConstruct(const psMetadata *camera, const char *cameraName)
 {
     PS_ASSERT_PTR_NON_NULL(camera, NULL);
 
-    pmFPA *fpa = pmFPAAlloc(camera);    // The FPA to fill out
+    pmFPA *fpa = pmFPAAlloc(camera, cameraName);    // The FPA to fill out
 
     bool mdok = true;                   // Status from MD lookups
@@ -1349,5 +1350,5 @@
 }
 
-bool pmFPAAddSourceFromFormat(pmFPA *fpa, const char *fpaname, const psMetadata *format)
+bool pmFPAAddSourceFromFormat(pmFPA *fpa, const char *fpaObs, const psMetadata *format)
 {
     PS_ASSERT_PTR_NON_NULL(fpa, false);
@@ -1358,5 +1359,5 @@
     pmFPAview *view = pmFPAviewAlloc(0);// View for current level
     if (phuLevel == PM_FPA_LEVEL_FPA) {
-        if (!pmFPAAddSourceFromView(fpa, fpaname, view, format)) {
+        if (!pmFPAAddSourceFromView(fpa, fpaObs, view, format)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
             psFree(view);
@@ -1367,5 +1368,5 @@
         while ((chip = pmFPAviewNextChip(view, fpa, 1))) {
             if (phuLevel == PM_FPA_LEVEL_CHIP) {
-                if (!pmFPAAddSourceFromView(fpa, fpaname, view, format)) {
+                if (!pmFPAAddSourceFromView(fpa, fpaObs, view, format)) {
                     psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
                     psFree(view);
@@ -1376,5 +1377,5 @@
                 while ((cell = pmFPAviewNextCell(view, fpa, 1))) {
                     if (phuLevel == PM_FPA_LEVEL_CELL) {
-                        if (!pmFPAAddSourceFromView(fpa, fpaname, view, format)) {
+                        if (!pmFPAAddSourceFromView(fpa, fpaObs, view, format)) {
                             psError(PS_ERR_UNKNOWN, false, "Unable to add PHU to FPA.");
                             psFree(view);
@@ -1391,5 +1392,5 @@
 }
 
-bool pmFPAAddSourceFromView(pmFPA *fpa, const char *fpaname, const pmFPAview *phuView,
+bool pmFPAAddSourceFromView(pmFPA *fpa, const char *fpaObs, const pmFPAview *phuView,
                             const psMetadata *format)
 {
@@ -1398,5 +1399,5 @@
     PS_ASSERT_PTR_NON_NULL(format, false);
 
-    pmFPAview *view = addSource(fpa, fpaname, phuView, NULL, format, true);
+    pmFPAview *view = addSource(fpa, fpaObs, phuView, NULL, format, true);
     bool status = (view != NULL);
     psFree(view);
@@ -1418,11 +1419,11 @@
 
     // Check the name of the FPA
-    psString fpaname = phuNameFromHeader("FPA.NAME", fileInfo, phu); // New name for the FPA
-    if (!fpaname || strlen(fpaname) == 0) {
-        psWarning("Unable to determine FPA.NAME: check for FPA.NAME in FILE in camera format");
-    }
-
-    pmFPAview *view = addSource(fpa, fpaname, NULL, phu, format, true); // View of PHU, to return
-    psFree(fpaname);
+    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);
 
     return view;
