Index: trunk/ppBackground/src/ppBackgroundStackMath.c
===================================================================
--- trunk/ppBackground/src/ppBackgroundStackMath.c	(revision 36579)
+++ trunk/ppBackground/src/ppBackgroundStackMath.c	(revision 36580)
@@ -27,6 +27,6 @@
 bool ppBackgroundStackModelFitOTASolution(ppBackgroundStackData *data) {
   long i;
-  
-  pmFPAview *view    = pmFPAviewAllow(0);
+  int u,v;
+  pmFPAview *view    = pmFPAviewAlloc(0);
   psMetadataIterator *iter = psMetadataIteratorAlloc(data->OTA_solutions, PS_LIST_HEAD, NULL); // Iterate over all chips.
   psMetadataItem *item;
@@ -38,14 +38,14 @@
       continue;
     }
-    psString *workingChip = item->name;
+    psString workingChip = item->name;
     psImage  *solution    = item->data.V;
 
-    for (v = 0; v < solution->nrows; v++) {
-      for (u = 0; u < solution->ncols; u++) {
+    for (v = 0; v < solution->numRows; v++) {
+      for (u = 0; u < solution->numCols; u++) {
 	psVector *tmp = psVectorAllocEmpty(data->smfs->n,PS_TYPE_F32);	
 	
 	for (i = 0; i < data->smfs->n; i++) {
 	  pmFPAviewReset(view);
-	  pmFPAfile *smfFile = data->smfs.data[i];
+	  pmFPAfile *smfFile = data->smfs->data[i];
 	  
 	  pmChip *chip;                       // Chip from FPA
@@ -84,5 +84,5 @@
   for (i = 0; i < data->smfs->n; i++) {
     pmFPAviewReset(view);
-    pmFPAfile *smfFile = data->smfs.data[i];
+    pmFPAfile *smfFile = data->smfs->data[i];
     
     pmChip *chip;                       // Chip from FPA
@@ -95,20 +95,21 @@
       psImage *dec   = psMetadataLookupPtr(NULL, chip->concepts, "bkg dec");
       
-      psVector *obs  = psVectorAlloc(image->nrows * image->ncols, PS_TYPE_F32);
-      psVector *model= psVectorAlloc(image->nrows * image->ncols, PS_TYPE_F32);
-      
-      for (v = 0; v < image->nrows; v++) {
-	for (u = 0; u < image->ncols; u++) {
-	  obs->data.F32[v * image->ncols + u] = image->data.F32[v][u];
-	  model->data.F32[v * image->ncols + u] = psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]);
+      psVector *obs  = psVectorAlloc(image->numRows * image->numCols, PS_TYPE_F32);
+      psVector *model= psVectorAlloc(image->numRows * image->numCols, PS_TYPE_F32);
+      
+      for (v = 0; v < image->numRows; v++) {
+	for (u = 0; u < image->numCols; u++) {
+	  obs->data.F32[v * image->numCols + u] = image->data.F32[v][u];
+	  model->data.F32[v * image->numCols + u] = psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]);
 	}
       }
 
       psPolynomial1D *poly = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD,1);
-      status = psVectorFitPolynomial1d(poly,NULL,0,model,NULL,obs);
-      psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg offset", PS_META_REPLACE, "background offset for this exposure/ota pair", poly->coeff.F64[0]);
-      psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg scale", PS_META_REPLACE, "background scale for this exposure/ota pair", poly->coeff.F64[1]);
-
-      psFree(tmp);
+      int status = psVectorFitPolynomial1D(poly,NULL,0,model,NULL,obs);
+      if (!status) {
+	psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg offset", PS_META_REPLACE, "background offset for this exposure/ota pair", poly->coeff[0]);
+	psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg scale", PS_META_REPLACE, "background scale for this exposure/ota pair", poly->coeff[1]);
+      }
+      //      psFree(tmp);
     } // End OTA loop
   } // End smf/exp loop
@@ -127,8 +128,8 @@
   
   pmFPAview *view    = pmFPAviewAlloc(0);
-  stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);
+  //  psStats *stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);
   for (i = 0; i < data->smfs->n; i++) {
     pmFPAviewReset(view);
-    pmFPAfile *smfFile = data->smfs.data[i];
+    pmFPAfile *smfFile = data->smfs->data[i];
     
     pmChip *chip;                       // Chip from FPA
@@ -146,6 +147,6 @@
       psF32 scale  = psMetadataLookupF32(NULL,chip->concepts,"bkg scale");
 
-      for (v = 0; v < image->nrows; v++) {
-	for (u = 0; u < image->ncols; u++) {
+      for (v = 0; v < image->numRows; v++) {
+	for (u = 0; u < image->numCols; u++) {
 	  model->data.F32[v][u] = scale * image->data.F32[v][u] - offset - camera->data.F32[v][u];
 	}
@@ -175,5 +176,5 @@
   for (i = 0; i < data->smfs->n; i++) {
     pmFPAviewReset(view);
-    pmFPAfile *smfFile = data->smfs.data[i];
+    pmFPAfile *smfFile = data->smfs->data[i];
     
     pmChip *chip;                       // Chip from FPA
@@ -182,10 +183,10 @@
 	continue;
       }
-      const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip
+      //      const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip
       psImage *calib = psMetadataLookupPtr(NULL, chip->concepts, "bkg calibrated data");
       psImage *ra    = psMetadataLookupPtr(NULL, chip->concepts, "bkg ra");
       psImage *dec    = psMetadataLookupPtr(NULL, chip->concepts, "bkg dec");
-      for (v = 0; v < image->nrows; v++) {
-	for (u = 0; u < image->ncols; u++) {
+      for (v = 0; v < calib->numRows; v++) {
+	for (u = 0; u < calib->numCols; u++) {
 	  X->data.F32[j] = ra->data.F32[v][u];
 	  Y->data.F32[j] = dec->data.F32[v][u];
@@ -197,5 +198,7 @@
   } // End smfs
 
-  status = psImageMapClipFit(&fitStatus,data->modelMap,stats, NULL, 0, X, Y, Z, E);
+  bool fitStatus;
+  bool status = psImageMapClipFit(&fitStatus,data->modelMap,stats, NULL, 0, X, Y, Z, E);
+  
   psFree(X);
   psFree(Y);
@@ -204,3 +207,4 @@
   psFree(stats);
   psFree(view);
-}
+  return(status);
+}
