Index: /trunk/psModules/src/astrom/Makefile.am
===================================================================
--- /trunk/psModules/src/astrom/Makefile.am	(revision 6909)
+++ /trunk/psModules/src/astrom/Makefile.am	(revision 6910)
@@ -7,5 +7,4 @@
 	pmFPAConstruct.c \
 	pmFPACopy.c \
-	pmFPAMaskWeight.c \
 	pmFPARead.c \
 	pmFPAUtils.c \
@@ -22,4 +21,5 @@
 	pmFPAfile.c
 
+#	pmFPAMaskWeight.c \
 #	pmFPAAstrometry.c
 #	pmAstrometryObjects.c
@@ -31,5 +31,4 @@
 	pmFPAConstruct.h \
 	pmFPACopy.h \
-	pmFPAMaskWeight.h \
 	pmFPARead.h \
 	pmFPAUtils.h \
@@ -46,4 +45,5 @@
 	pmFPAfile.h
 
+#	pmFPAMaskWeight.h \
 #	pmFPAAstrometry.h
 #	pmAstrometryObjects.h
Index: /trunk/psModules/src/astrom/pmReadout.c
===================================================================
--- /trunk/psModules/src/astrom/pmReadout.c	(revision 6909)
+++ /trunk/psModules/src/astrom/pmReadout.c	(revision 6910)
@@ -2,6 +2,6 @@
 #include "pslib.h"
 #include "pmFPA.h"
+#include "pmMaskBadPixels.h"
 #include "pmHDUUtils.h"
-#include "pmFPAMaskWeight.h"
 
 // Get the bias images for a readout, using the CELL.BIASSEC
Index: /trunk/psModules/src/detrend/pmMaskBadPixels.c
===================================================================
--- /trunk/psModules/src/detrend/pmMaskBadPixels.c	(revision 6909)
+++ /trunk/psModules/src/detrend/pmMaskBadPixels.c	(revision 6910)
@@ -24,6 +24,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-04-17 18:10:08 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-04-19 20:37:35 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -148,8 +148,8 @@
             /* Pixels which satisfy growVal and within the grow radius shall be masked */                    \
             if(mask->data.PS_TYPE_MASK_DATA[j][i] & growVal) {                                               \
-                rowMin = MAX(j-grow, 0);                                                                     \
-                rowMax = MIN(j+grow+1, inImage->numRows);                                                    \
-                colMin = MAX(i-grow, 0);                                                                     \
-                colMax = MIN(i+grow+1, inImage->numCols);                                                    \
+                rowMin = PS_MAX(j-grow, 0);                                                                     \
+                rowMax = PS_MIN(j+grow+1, inImage->numRows);                                                    \
+                colMin = PS_MAX(i-grow, 0);                                                                     \
+                colMax = PS_MIN(i+grow+1, inImage->numCols);                                                    \
                 for(jj=rowMin; jj<rowMax; jj++) {                                                            \
                     for(ii=colMin; ii<colMax; ii++) {                                                        \
Index: /trunk/psModules/src/detrend/pmMaskBadPixels.h
===================================================================
--- /trunk/psModules/src/detrend/pmMaskBadPixels.h	(revision 6909)
+++ /trunk/psModules/src/detrend/pmMaskBadPixels.h	(revision 6910)
@@ -24,6 +24,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-04-17 18:01:05 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-04-19 20:37:35 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -33,19 +33,27 @@
 #include "pmFPA.h"
 
+// these defines are necessary to yield 8-bit results (use instead of ~)
+# define NOT_U8(A)(UCHAR_MAX-(A))
+# define NOT_U16(A)(USHORT_MAX-(A))
+
 /** Mask values */
 typedef enum {
-    PM_MASK_TRAP    = 0x0001,   ///< The pixel is a charge trap.
-    PM_MASK_BADCOL  = 0x0002,   ///< The pixel is a bad column.
-    PM_MASK_SAT     = 0x0004,   ///< The pixel is saturated.
-    PM_MASK_BAD     = 0x0008,   ///< The pixel is low
-    PM_MASK_FLAT    = 0x0010    ///< The pixel is non-positive in the flat-field.
+    PM_MASK_CLEAR   = 0x00,   ///< The pixel is a charge trap.
+    PM_MASK_TRAP    = 0x01,   ///< The pixel is a charge trap.
+    PM_MASK_BADCOL  = 0x02,   ///< The pixel is a bad column.
+    PM_MASK_SAT     = 0x04,   ///< The pixel is saturated.
+    PM_MASK_BAD     = 0x08,   ///< The pixel is low
+    PM_MASK_FLAT    = 0x10,   ///< The pixel is non-positive in the flat-field.
+    PM_MASK_MARK    = 0x20,   ///< The pixel is marked as temporarily ignored
+    PM_MASK_EXT1    = 0x40,   ///< This mask value is not used
+    PM_MASK_EXT2    = 0x80,   ///< This mask value is not used
 } pmMaskValue;
 
-/** Macro to find maximum of two numbers */
-#define MAX(A,B)((A)>=(B)?(A):(B))
-
-/** Macro to find minimum of two numbers */
-#define MIN(A,B)((A)<=(B)?(A):(B))
-
+bool pmReadoutSetMask(pmReadout *readout // Readout for which to set mask
+                     );
+bool pmReadoutSetWeight(pmReadout *readout // Readout for which to set weight
+                       );
+bool pmCellSetMaskWeight(pmCell *cell // Cell for which to set weights
+                        );
 
 /** Execute bad pixels module.
Index: /trunk/psModules/src/objects/pmPSFtry.c
===================================================================
--- /trunk/psModules/src/objects/pmPSFtry.c	(revision 6909)
+++ /trunk/psModules/src/objects/pmPSFtry.c	(revision 6910)
@@ -5,6 +5,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-04-17 18:10:08 $
+ *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-04-19 20:37:35 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -15,4 +15,5 @@
 #include "pmHDU.h"
 #include "pmFPA.h"
+#include "pmMaskBadPixels.h"
 #include "pmPeaks.h"
 #include "pmMoments.h"
@@ -112,7 +113,7 @@
         // fit model as EXT, not PSF
 
-        psImageKeepCircle (source->mask, x, y, RADIUS, "OR", PM_SOURCE_MASK_MARKED);
+        psImageKeepCircle (source->mask, x, y, RADIUS, "OR", PM_MASK_MARK);
         status = pmSourceFitModel (source, model, PM_SOURCE_FIT_EXT);
-        psImageKeepCircle (source->mask, x, y, RADIUS, "AND", ~PM_SOURCE_MASK_MARKED);
+        psImageKeepCircle (source->mask, x, y, RADIUS, "AND", NOT_U8(PM_MASK_MARK));
 
         // exclude the poor fits
@@ -146,5 +147,5 @@
         y = source->peak->y;
 
-        psImageKeepCircle (source->mask, x, y, RADIUS, "OR", PM_SOURCE_MASK_MARKED);
+        psImageKeepCircle (source->mask, x, y, RADIUS, "OR", PM_MASK_MARK);
         status = pmSourceFitModel (source, modelPSF, PM_SOURCE_FIT_PSF);
 
@@ -176,5 +177,5 @@
 
 next_source:
-        psImageKeepCircle (source->mask, x, y, RADIUS, "AND", ~PM_SOURCE_MASK_MARKED);
+        psImageKeepCircle (source->mask, x, y, RADIUS, "AND", NOT_U8(PM_MASK_MARK));
 
     }
Index: /trunk/psModules/src/objects/pmSourcePhotometry.c
===================================================================
--- /trunk/psModules/src/objects/pmSourcePhotometry.c	(revision 6909)
+++ /trunk/psModules/src/objects/pmSourcePhotometry.c	(revision 6910)
@@ -3,6 +3,6 @@
  *  @author EAM, IfA; GLG, MHPCC
  *
- *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-04-17 18:01:05 $
+ *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-04-19 20:37:35 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -16,4 +16,5 @@
 #include "pmHDU.h"
 #include "pmFPA.h"
+#include "pmMaskBadPixels.h"
 #include "pmPeaks.h"
 #include "pmMoments.h"
@@ -117,5 +118,5 @@
 
     // set aperture mask circle to model radius
-    psImageKeepCircle (source->mask, x, y, model->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
+    psImageKeepCircle (source->mask, x, y, model->radiusTMP, "OR", PM_MASK_MARK);
 
     // measure the weight of included pixels
@@ -139,5 +140,5 @@
 
     // unmask aperture
-    psImageKeepCircle (source->mask, x, y, model->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
+    psImageKeepCircle (source->mask, x, y, model->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
 
     // subtract object, leave local sky
Index: /trunk/psModules/src/objects/pmSourceSky.c
===================================================================
--- /trunk/psModules/src/objects/pmSourceSky.c	(revision 6909)
+++ /trunk/psModules/src/objects/pmSourceSky.c	(revision 6910)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA: significant modifications.
  *
- *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-04-17 18:01:05 $
+ *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-04-19 20:37:35 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -19,4 +19,5 @@
 #include "pmHDU.h"
 #include "pmFPA.h"
+#include "pmMaskBadPixels.h"
 #include "pmPeaks.h"
 #include "pmMoments.h"
@@ -56,8 +57,8 @@
     srcRegion = psRegionForImage(mask, srcRegion);
 
-    psImageMaskRegion(mask, srcRegion, "OR", PM_SOURCE_MASK_MARKED);
+    psImageMaskRegion(mask, srcRegion, "OR", PM_MASK_MARK);
     psStats *myStats = psStatsAlloc(statsOptions);
     myStats = psImageStats(myStats, image, mask, 0xff);
-    psImageMaskRegion(mask, srcRegion, "AND", ~PM_SOURCE_MASK_MARKED);
+    psImageMaskRegion(mask, srcRegion, "AND", NOT_U8(PM_MASK_MARK));
 
     psF64 tmpF64;
@@ -99,8 +100,8 @@
     srcRegion = psRegionForImage(mask, srcRegion);
 
-    psImageMaskRegion(mask, srcRegion, "OR", PM_SOURCE_MASK_MARKED);
+    psImageMaskRegion(mask, srcRegion, "OR", PM_MASK_MARK);
     psStats *myStats = psStatsAlloc(statsOptions);
     myStats = psImageStats(myStats, image, mask, 0xff);
-    psImageMaskRegion(mask, srcRegion, "AND", ~PM_SOURCE_MASK_MARKED);
+    psImageMaskRegion(mask, srcRegion, "AND", NOT_U8(PM_MASK_MARK));
 
     psF64 tmpF64;
