Changeset 35531
- Timestamp:
- May 7, 2013, 4:01:35 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
-
ippconfig/gpc1/ppImage.config (modified) (5 diffs)
-
ippconfig/recipes/ppImage.config (modified) (2 diffs)
-
ippconfig/recipes/reductionClasses.mdc (modified) (2 diffs)
-
ppImage/src/Makefile.am (modified) (1 diff)
-
ppImage/src/ppImage.h (modified) (3 diffs)
-
ppImage/src/ppImageAuxiliaryMask.c (modified) (8 diffs)
-
ppImage/src/ppImageDetrendReadout.c (modified) (1 diff)
-
ppImage/src/ppImageLoop.c (modified) (1 diff)
-
ppImage/src/ppImageOptions.c (modified) (4 diffs)
-
psModules/src/detrend/pmDetrendDB.c (modified) (1 diff)
-
psModules/src/detrend/pmDetrendDB.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippconfig/gpc1/ppImage.config
r35332 r35531 30 30 USE.VIDEO.MASK BOOL TRUE # Use a video mask if we have video data? 31 31 32 # aditional auxillary mask applied to corners of all chips in video cells. 33 # Is only applied if MASK.AUXMASK and USE.VIDEO.MASK are both true 34 AUX.VIDEO.MASK STR neb://any/gpc1/auxmask/mpg.20130506/mask_video_cell_corners.fits 32 35 33 36 … … 150 153 FRINGE.FILTERS STR y.00000 151 154 152 # Standard chip processing 155 # Standard chip processing (NOTE: when changing this be sure to check whether changes should be applied toCHIP_BGPRESEVE and/or CHIP_AUXMASK 153 156 CHIP METADATA 154 157 BASE.FITS BOOL FALSE # Save base detrended image? … … 169 172 MASK.BUILD BOOL TRUE # Build internal mask? 170 173 MASK.BURNTOOL BOOL TRUE # Mask potential burntool trails 174 MASK.AUXMASK BOOL FALSE # augment with more restrictive auxillary mask 171 175 PATTERN.ROW BOOL TRUE # Row pattern correction 172 176 PATTERN.CELL BOOL FALSE # Cell pattern correction … … 1220 1224 END 1221 1225 1226 # Standard chip processing + auxillary mask 1227 CHIP_AUXMASK METADATA 1228 BASE.FITS BOOL FALSE # Save base detrended image? 1229 BASE.MASK.FITS BOOL FALSE # Save base detrended image? 1230 BASE.VARIANCE.FITS BOOL FALSE # Save base detrended image? 1231 CHIP.FITS BOOL TRUE # Save chip-mosaic-ed image? 1232 CHIP.MASK.FITS BOOL TRUE # Save chip-mosaic-ed image? 1233 CHIP.VARIANCE.FITS BOOL TRUE # Save chip-mosaic-ed image? 1234 OVERSCAN BOOL TRUE # Overscan subtraction 1235 NONLIN BOOL TRUE # apply non-linearity correction 1236 BIAS BOOL FALSE # Bias subtraction 1237 DARK BOOL TRUE # Dark subtraction 1238 NOISEMAP BOOL TRUE 1239 REMNANCE BOOL FALSE # Remnance masking 1240 SHUTTER BOOL FALSE # Shutter correction 1241 FLAT BOOL TRUE # Flat-field normalisation 1242 MASK BOOL TRUE # Mask bad pixels 1243 MASK.BUILD BOOL TRUE # Build internal mask? 1244 MASK.BURNTOOL BOOL TRUE # Mask potential burntool trails 1245 MASK.AUXMASK BOOL TRUE # augment with more restrictive auxillary mask 1246 PATTERN.ROW BOOL TRUE # Row pattern correction 1247 PATTERN.CELL BOOL FALSE # Cell pattern correction 1248 PATTERN.CONTINUITY BOOL TRUE # Cell pattern correction using edge continuity 1249 FRINGE BOOL TRUE # Fringe subtraction 1250 BIN1.FITS BOOL TRUE # Save 1st binned chip image? 1251 BIN2.FITS BOOL TRUE # Save 2nd binned chip image? 1252 PHOTOM BOOL TRUE # Source identification and photometry 1253 ASTROM.CHIP BOOL FALSE # Astrometry per chip? 1254 ASTROM.MOSAIC BOOL FALSE # Astrometry for mosaic? 1255 BACKGROUND BOOL TRUE # Subtract background? 1256 CROSSTALK.MEASURE BOOL TRUE # Subtract model background? 1257 END 1258 1222 1259 # Standard chip processing without any background removal 1223 1260 CHIP_PRESERVE_BG METADATA … … 1239 1276 MASK.BUILD BOOL TRUE # Build internal mask? 1240 1277 MASK.BURNTOOL BOOL TRUE # Mask potential burntool trails 1278 MASK.AUXMASK BOOL TRUE # augment with more restrictive auxillary mask 1241 1279 PATTERN.ROW BOOL FALSE # Row pattern correction 1242 1280 PATTERN.CELL BOOL FALSE # Cell pattern correction -
trunk/ippconfig/recipes/ppImage.config
r35081 r35531 17 17 MASK.LOW BOOL TRUE # Mask pixels below valid range 18 18 MASK.BURNTOOL BOOL FALSE # Mask potential burntool trails 19 MASK.AUXMASK BOOL FALSE # augment mask with auxillary mask 20 AUX.VIDEO.MASK STR NULL 19 21 VARIANCE.BUILD BOOL FALSE # Build internal variance image 20 22 ADDNOISE BOOL FALSE # Add noise to degrade an MD image to a 3pi image? … … 168 170 # Standard chip processing 169 171 CHIP METADATA 172 BASE.FITS BOOL FALSE # Save base detrended image? 173 BASE.MASK.FITS BOOL FALSE # Save base detrended image? 174 BASE.VARIANCE.FITS BOOL FALSE # Save base detrended image? 175 CHIP.FITS BOOL TRUE # Save chip-mosaic-ed image? 176 CHIP.MASK.FITS BOOL TRUE # Save chip-mosaic-ed image? 177 CHIP.VARIANCE.FITS BOOL TRUE # Save chip-mosaic-ed image? 178 OVERSCAN BOOL TRUE # Overscan subtraction 179 NONLIN BOOL FALSE # Non-linearity correction; not implemented 180 BIAS BOOL TRUE # Bias subtraction 181 DARK BOOL TRUE # Dark subtraction 182 SHUTTER BOOL FALSE # Shutter correction 183 FLAT BOOL TRUE # Flat-field normalisation 184 MASK BOOL TRUE # Mask bad pixels 185 FRINGE BOOL TRUE # Fringe subtraction 186 BIN1.FITS BOOL TRUE # Save 1st binned chip image? 187 BIN2.FITS BOOL TRUE # Save 2nd binned chip image? 188 PHOTOM BOOL TRUE # Source identification and photometry 189 ASTROM.CHIP BOOL FALSE # Astrometry per chip? 190 ASTROM.MOSAIC BOOL FALSE # Astrometry for mosaic? 191 BACKGROUND BOOL TRUE # Subtract background? 192 MASK.STATS BOOL TRUE # Calculate Mask statistics. 193 END 194 195 # Standard chip processing 196 CHIP_AUXMASK METADATA 170 197 BASE.FITS BOOL FALSE # Save base detrended image? 171 198 BASE.MASK.FITS BOOL FALSE # Save base detrended image? -
trunk/ippconfig/recipes/reductionClasses.mdc
r35455 r35531 1007 1007 1008 1008 STS_DATASET METADATA 1009 CHIP_PPIMAGE STR CHIP 1009 CHIP_PPIMAGE STR CHIP_AUXMASK 1010 1010 CHIP_PSPHOT STR CHIP 1011 1011 WARP_PSWARP STR WARP … … 1023 1023 END 1024 1024 1025 M31_DATASET METADATA 1026 CHIP_PPIMAGE STR CHIP_AUXMASK 1027 CHIP_PSPHOT STR CHIP 1028 WARP_PSWARP STR WARP 1029 STACK_PPSTACK STR STACK 1030 STACK_PPSUB STR STACK 1031 STACK_PSPHOT STR STACK 1032 DIFF_PPSUB STR DIFF 1033 DIFF_PSPHOT STR DIFF 1034 JPEG_BIN1 STR PPIMAGE_J1 1035 JPEG_BIN2 STR PPIMAGE_J2 1036 FAKEPHOT STR FAKEPHOT 1037 ADDSTAR STR ADDSTAR 1038 PSASTRO STR DEFAULT_RECIPE 1039 STACKPHOT_PSPHOT STR STACKPHOT 1040 STACKPHOT_PPSUB STR STACKPHOT 1041 STACKPHOT_PPSTACK STR STACKPHOT 1042 STACKPHOT_SINGLE_PSPHOT STR STACKPHOT_SINGLE 1043 BACKGROUND_PPBACKGROUND STR BACKGROUND 1044 BACKGROUND_PSWARP STR BACKGROUND 1045 PSVIDEOPHOT STR PSVIDEOPHOT 1046 STATICSKY_CALIBRATION STR STATICSKY_CAL 1047 END 1048 1025 1049 CNP_DATASET METADATA 1026 1050 CHIP_PPIMAGE STR CHIP -
trunk/ppImage/src/Makefile.am
r35081 r35531 65 65 ppImageMemory.c \ 66 66 ppImageAddNoise.c \ 67 ppImageRandomGaussian.c 67 ppImageRandomGaussian.c \ 68 ppImageAuxiliaryMask.c 68 69 69 70 CLEANFILES = *~ -
trunk/ppImage/src/ppImage.h
r35081 r35531 30 30 bool doMaskLow; // mask low pixels 31 31 bool doMask; // Mask bad pixels 32 bool doAuxMask; // apply auxillary mask 32 33 bool doNonLin; // Non-linearity correction 33 34 bool doOverscan; // Overscan subtraction … … 126 127 psU16 maskstat_magic; 127 128 psU16 maskstat_advisory; 129 130 psString auxVideoMask; // auxillary video mask file 128 131 129 132 } ppImageOptions; … … 312 315 void ppImageRandomGaussianFree(void); 313 316 317 bool ppImageAuxiliaryMask(pmConfig *config, const pmFPAview *view, const ppImageOptions *options); 314 318 315 319 #endif -
trunk/ppImage/src/ppImageAuxiliaryMask.c
r35528 r35531 40 40 } 41 41 42 bool recordFileInHeader(pmChip *chip, psString tag, psString desc, psString filename) 43 { 44 pmHDU *hdu = pmHDUGetHighest(chip->parent, chip, NULL); 45 46 // strip off the directories and nebulous bits 47 char *base = filename; 48 for (char *new = base; (new = strpbrk(base, "/:")); base = new + 1); 49 50 psMetadataAddStr(hdu->header, PS_LIST_TAIL, tag, PS_META_DUPLICATE_OK, desc, base); 51 return true; 52 } 53 42 54 // In this function, we augment the mask with the more conservative auxiliary mask 43 55 bool ppImageAuxiliaryMask(pmConfig *config, const pmFPAview *view, const ppImageOptions *options) … … 51 63 } 52 64 53 bool status; // Status of MD lookup 65 bool status; 66 // Our target chip 54 67 pmFPAfile *input = psMetadataLookupPtr(&status, config->files, "PPIMAGE.CHIP"); // File to correct 55 68 if (!status) { … … 58 71 } 59 72 73 // Find a suitable detRun with type AUXMASK 74 60 75 psTime *time = psMetadataLookupPtr(NULL, input->fpa->concepts, "FPA.TIME"); 61 76 if (time->sec == 0 && time->nsec == 0) { … … 63 78 } 64 79 65 // XXX careful about this: is this set correctly in the camera.config files?66 80 char *cameraName = psMetadataLookupStr(NULL, input->fpa->concepts, "FPA.CAMERA"); 67 81 pmDetrendSelectOptions *detrendOptions = pmDetrendSelectOptionsAlloc(cameraName, *time, PM_DETREND_TYPE_AUXMASK); … … 80 94 } 81 95 82 #ifdef notdef 83 psMetadata *ppImageRecipe = psMetadataLookupPtr(NULL, config->recipes, RECIPE_NAME); 84 psAssert(ppImageRecipe, "Need PPIMAGE recipe"); 85 psMetadata *psphotRecipe = psMetadataLookupPtr(NULL, config->recipes, PSPHOT_RECIPE); 86 psAssert(psphotRecipe, "Need PSPHOT recipe"); 87 88 // XXX Should this be options->maskValue or options->maskValue & ~options->satMask? 89 // The latter will leave saturated pixels high 90 psImageMaskType maskVal = options->maskValue; 91 92 // user-defined masks to test for good/bad pixels (build from recipe list if not yet set) 93 psMetadataAddImageMask(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "user-defined mask", maskVal); 94 #endif 95 96 // Go find the readout 97 // code to find the readouts was adapted from ppImageSubtractBackground 96 98 // XXX: shouldn't most of these psWarnings be psAsserts? 97 99 … … 129 131 psImage *mask = ro->mask; 130 132 131 // now read the mask file133 // now read the auxiliary mask file 132 134 psString class_id = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); 133 135 … … 139 141 140 142 psFree(results); 143 // record that we read this file in the config dump file. 144 // Note: this value isn't used during updates though. 145 pmConfigRunFilenameAddRead(config, "PPIMAGE.AUXMASK", auxMaskFileName); 146 recordFileInHeader(chip, "DETREND.AUXMASK", "auxiliary mask", auxMaskFileName); 141 147 142 148 psImage *auxMask = readAuxiliaryMask(config, auxMaskFileName); 143 149 psFree(auxMaskFileName); 144 150 if (!auxMask) { 145 // readAuxiliaryMask prints enough diagnostic information151 psError(PS_ERR_UNKNOWN, false, "failed to read auxiliary mask file"); 146 152 return false; 147 153 } … … 151 157 psImage *videoMask = readAuxiliaryMask(config, options->auxVideoMask); 152 158 if (!videoMask) { 159 psError(PS_ERR_UNKNOWN, false, "failed to read auxiliary video mask file"); 153 160 return false; 154 161 } 155 // auxMask *= videoMask 162 pmConfigRunFilenameAddRead(config, "PPIMAGE.AUXVIDEOMASK", options->auxVideoMask); 163 recordFileInHeader(chip, "DETREND.AUXVIDEOMASK", "auxiliary video mask", options->auxVideoMask); 164 165 // compute auxMask *= videoMask 156 166 if (!psBinaryOp(auxMask, auxMask, "*", videoMask)) { 157 167 psError(PS_ERR_UNKNOWN, false, "mulitplication of auxiliary mask and auxiliary video mask failed"); -
trunk/ppImage/src/ppImageDetrendReadout.c
r34082 r35531 50 50 char *Vptr = strchr(psMetadataLookupStr(NULL,input->parent->parent->hdu->header,"CELLMODE"),'V'); 51 51 if (Vptr) { 52 hasVideo = true;52 hasVideo = options->hasVideo = true; 53 53 psLogMsg ("ppImage.detrend", PS_LOG_INFO, "VIDEO: %d %d %d\n",(int) options->hasVideo,(int) options->useVideoDark, (int) options->useVideoMask); 54 54 } -
trunk/ppImage/src/ppImageLoop.c
r35081 r35531 188 188 ESCAPE("Unable to mosaic chip"); 189 189 } 190 191 if (!ppImageAuxiliaryMask(config, view, options)) { 192 ESCAPE("Unable to apply auxiliary mask"); 193 } 194 190 195 timeDetrend += psTimerClear(TIMER_DETREND); 191 196 -
trunk/ppImage/src/ppImageOptions.c
r35081 r35531 10 10 // psFree(options->nonLinearData); 11 11 // psFree(options->nonLinearSource); 12 psFree(options->auxVideoMask); 12 13 } 13 14 … … 24 25 options->doVarianceBuild = false; // Build internal variance 25 26 options->doMask = false; // Mask bad pixels 27 options->doAuxMask = false; // apply auxillary mask 26 28 options->doNonLin = false; // Non-linearity correction 27 29 options->doOverscan = false; // Overscan subtraction … … 116 118 options->normClass = NULL; // per-class normalizations refer to this class 117 119 120 options->auxVideoMask = NULL; // auxillary video mask file name 121 118 122 return options; 119 123 } … … 228 232 options->doMaskBurntool = psMetadataLookupBool(NULL, recipe, "MASK.BURNTOOL"); 229 233 options->doVarianceBuild = psMetadataLookupBool(NULL, recipe, "VARIANCE.BUILD"); 234 options->doAuxMask = psMetadataLookupBool(NULL, recipe, "MASK.AUXMASK"); 235 if (options->doAuxMask) { 236 // if we are applying an auxiliary mask we can optionally apply another 237 // mask to video cells only. 238 psString auxVideoMask = psMetadataLookupStr(NULL, recipe, "AUX.VIDEO.MASK"); 239 // save the value if defined and not the value "NULL" 240 if (auxVideoMask && strcmp(auxVideoMask, "NULL")) { 241 options->auxVideoMask = psStringCopy(auxVideoMask); 242 } 243 } 230 244 231 245 // Mask recipe options (note that mask bit values are set in ppImageSetMaskBits.c) -
trunk/psModules/src/detrend/pmDetrendDB.c
r33848 r35531 110 110 DETREND_STRING_CASE(VIDEODARK); 111 111 DETREND_STRING_CASE(LINEARITY); 112 DETREND_STRING_CASE(AUXMASK); 112 113 default: 113 114 return NULL; -
trunk/psModules/src/detrend/pmDetrendDB.h
r33848 r35531 39 39 PM_DETREND_TYPE_VIDEODARK, 40 40 PM_DETREND_TYPE_LINEARITY, 41 PM_DETREND_TYPE_AUXMASK, 41 42 } pmDetrendType; 42 43
Note:
See TracChangeset
for help on using the changeset viewer.
