Changeset 30315 for trunk/magic/remove/src/streaksio.c
- Timestamp:
- Jan 20, 2011, 10:25:37 AM (15 years ago)
- File:
-
- 1 edited
-
trunk/magic/remove/src/streaksio.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/magic/remove/src/streaksio.c
r30263 r30315 42 42 sf->class_id = psMetadataLookupStr(&status, config->arguments, "CLASS_ID"); 43 43 44 sf->inImage = sFileOpen(config, stage, "INPUT", NULL, true );44 sf->inImage = sFileOpen(config, stage, "INPUT", NULL, true, false); 45 45 sf->nHDU = sf->inImage->nHDU; 46 46 … … 48 48 // The names of the temporary and recovery files are taken from the input 49 49 char *inputBasename = basename(sf->inImage->name); 50 sf->outImage = sFileOpen(config, stage, "OUTPUT", inputBasename, true );50 sf->outImage = sFileOpen(config, stage, "OUTPUT", inputBasename, true, true); 51 51 52 52 if (remove) { 53 53 // XXX: the recovery file should be required if stage is raw and the replace flag is set 54 54 // that is if the input raw image is to be destroyed 55 sf->recImage = sFileOpen(config, stage, "RECOVERY", inputBasename, false );56 } else { 57 sf->recImage = sFileOpen(config, stage, "RECOVERY.IMAGE", NULL, true );58 } 59 60 sf->inMask = sFileOpen(config, stage, "INPUT.MASK", NULL, false );55 sf->recImage = sFileOpen(config, stage, "RECOVERY", inputBasename, false, false); 56 } else { 57 sf->recImage = sFileOpen(config, stage, "RECOVERY.IMAGE", NULL, true, false); 58 } 59 60 sf->inMask = sFileOpen(config, stage, "INPUT.MASK", NULL, false, false); 61 61 if (sf->inMask && (sf->stage != IPP_STAGE_RAW)) { 62 62 inputBasename = basename(sf->inMask->name); 63 sf->outMask = sFileOpen(config, stage, "OUTPUT", inputBasename, true );63 sf->outMask = sFileOpen(config, stage, "OUTPUT", inputBasename, true, true); 64 64 if (remove) { 65 sf->recMask = sFileOpen(config, stage, "RECOVERY", inputBasename, false );65 sf->recMask = sFileOpen(config, stage, "RECOVERY", inputBasename, false, false); 66 66 } else { 67 sf->recMask = sFileOpen(config, stage, "RECOVERY.MASK", NULL, true );67 sf->recMask = sFileOpen(config, stage, "RECOVERY.MASK", NULL, true, false); 68 68 } 69 69 } … … 73 73 // If it doesn't exist, we didn't have a camera mask 74 74 if (remove && sf->inMask && (stage == IPP_STAGE_CHIP)) { 75 sf->inChMask = sFileOpen(config, stage, "INPUT.CHMASK", NULL, false );75 sf->inChMask = sFileOpen(config, stage, "INPUT.CHMASK", NULL, false, false); 76 76 if (sf->inChMask) { 77 77 inputBasename = basename(sf->inChMask->name); 78 sf->outChMask = sFileOpen(config, stage, "OUTPUT", inputBasename, true );79 sf->recChMask = sFileOpen(config, stage, "RECOVERY", inputBasename, false );80 } 81 } 82 83 sf->inWeight = sFileOpen(config, stage, "INPUT.WEIGHT", NULL, false );78 sf->outChMask = sFileOpen(config, stage, "OUTPUT", inputBasename, true, true); 79 sf->recChMask = sFileOpen(config, stage, "RECOVERY", inputBasename, false, false); 80 } 81 } 82 83 sf->inWeight = sFileOpen(config, stage, "INPUT.WEIGHT", NULL, false, false); 84 84 if (sf->inWeight) { 85 85 inputBasename = basename(sf->inWeight->name); 86 sf->outWeight = sFileOpen(config, stage, "OUTPUT", inputBasename, true );86 sf->outWeight = sFileOpen(config, stage, "OUTPUT", inputBasename, true, true); 87 87 if (remove) { 88 sf->recWeight = sFileOpen(config, stage, "RECOVERY", inputBasename, false );88 sf->recWeight = sFileOpen(config, stage, "RECOVERY", inputBasename, false, false); 89 89 } else { 90 sf->recWeight = sFileOpen(config, stage, "RECOVERY.WEIGHT", NULL, true );90 sf->recWeight = sFileOpen(config, stage, "RECOVERY.WEIGHT", NULL, true, false); 91 91 } 92 92 } 93 93 if (remove) { 94 sf->inSources = sFileOpen(config, stage, "SOURCES", NULL, false );94 sf->inSources = sFileOpen(config, stage, "SOURCES", NULL, false, false); 95 95 if (sf->inSources) { 96 96 inputBasename = basename(sf->inSources->name); 97 sf->outSources = sFileOpen(config, stage, "OUTPUT", inputBasename, true );97 sf->outSources = sFileOpen(config, stage, "OUTPUT", inputBasename, true, true); 98 98 } 99 99 } … … 212 212 213 213 static psString 214 resolveFilename(pmConfig *config, sFile *sfile, bool create )214 resolveFilename(pmConfig *config, sFile *sfile, bool create, bool checkIfDestreaked) 215 215 { 216 216 sfile->inNebulous = IN_NEBULOUS(sfile->name); … … 223 223 // instance. It will get created below in pmConfigConvertFilename 224 224 if ((sfile->resolved_name = nebFind(server, sfile->name)) != NULL) { 225 if ( !nebFileIsDestreaked(sfile)) {225 if (checkIfDestreaked && !nebFileIsDestreaked(sfile)) { 226 226 psError(PS_ERR_IO, false, "attempting to delete file that has not been destreaked %s", sfile->name); 227 227 return NULL; … … 238 238 239 239 sFile *sFileOpen(pmConfig *config, ippStage stage, psString fileSelect, 240 psString outputFilename, bool required )240 psString outputFilename, bool required, bool checkIfDestreaked) 241 241 { 242 242 bool status; … … 313 313 // and the file is to be opened for writing 314 314 if (outputFilename) { 315 sfile->write = true; 315 316 psStringAppend(&sfile->name, "%s%s", name, outputFilename); 316 sfile->resolved_name = resolveFilename(config, sfile, true );317 sfile->resolved_name = resolveFilename(config, sfile, true, checkIfDestreaked); 317 318 if (!sfile->resolved_name) { 318 319 psError(PS_ERR_IO, false, "Failed to resolve filename for %s", sfile->name); … … 326 327 } else { 327 328 sfile->name = psStringCopy(name); 328 sfile->resolved_name = resolveFilename(config, sfile, false );329 sfile->resolved_name = resolveFilename(config, sfile, false, false); 329 330 if (!sfile->resolved_name) { 330 331 psError(PS_ERR_IO, false, "Failed to resolve name for %s", sfile->name); … … 393 394 394 395 void 395 addDestreakKeyword(psMetadata *header )396 addDestreakKeyword(psMetadata *header, bool value) 396 397 { 397 398 psMetadataAddBool(header, PS_LIST_TAIL, "PSDESTRK", PS_META_REPLACE, 398 "Have streaks been removed from image?", true);399 "Have streaks been removed from image?", value); 399 400 } 400 401 … … 407 408 408 409 void 409 copyPHU(streakFiles *sfiles, bool remove )410 copyPHU(streakFiles *sfiles, bool remove, bool destreak) 410 411 { 411 412 psAssert(sfiles->stage == IPP_STAGE_RAW, "copyPHU should only be used for raw stage"); … … 424 425 425 426 // add keyword indicating that streaks have been removed 426 addDestreakKeyword(imageHeader );427 addDestreakKeyword(imageHeader, destreak); 427 428 428 429 if (!psFitsWriteBlank(sfiles->outImage->fits, imageHeader, NULL)) { … … 454 455 } 455 456 // add keyword indicating that streaks have been removed 456 addDestreakKeyword(maskHeader );457 addDestreakKeyword(maskHeader, destreak); 457 458 if (!psFitsWriteBlank(sfiles->outMask->fits, maskHeader, NULL)) { 458 459 psError(PS_ERR_IO, false, "failed to write primary header to %s", … … 484 485 485 486 // add keyword indicating that streaks have been removed 486 addDestreakKeyword(weightHeader );487 addDestreakKeyword(weightHeader, destreak); 487 488 if (!psFitsWriteBlank(sfiles->outWeight->fits, weightHeader, NULL)) { 488 489 psError(PS_ERR_IO, false, "failed to write primary header to %s", … … 674 675 psVector *tiles) 675 676 { 676 if (!sfile ) {677 if (!sfile || !sfile->write) { 677 678 return; 678 679 } … … 1242 1243 } else if (in->image->type.type == PS_TYPE_F32) { 1243 1244 in->exciseValue = NAN; 1245 } else if (in->image->type.type == PS_TYPE_F64) { 1246 in->exciseValue = NAN; 1244 1247 } else { 1245 1248 psError(PS_ERR_PROGRAMMING, true, "unexpected image type found: %d\n", in->image->type.type);
Note:
See TracChangeset
for help on using the changeset viewer.
