- Timestamp:
- Mar 23, 2010, 3:23:07 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 17 edited
- 1 copied
-
. (modified) (1 prop)
-
extperl/Class-Singleton-1.4.tar.gz (copied) (copied from branches/pap_stack/extperl/Class-Singleton-1.4.tar.gz )
-
ippTools/src/pxtools.c (modified) (1 diff)
-
ippconfig/recipes/filerules-mef.mdc (modified) (1 diff)
-
ippconfig/recipes/filerules-simple.mdc (modified) (1 diff)
-
ippconfig/recipes/filerules-split.mdc (modified) (1 diff)
-
ippconfig/recipes/fitstypes.mdc (modified) (1 diff)
-
ppStack/src/ppStackCamera.c (modified) (3 diffs)
-
ppStack/src/ppStackFiles.c (modified) (1 diff)
-
ppStack/src/ppStackMatch.c (modified) (1 diff)
-
ppStack/src/ppStackReject.c (modified) (1 diff)
-
ppViz (modified) (1 prop)
-
psLib/src/fits/psFitsScale.c (modified) (1 diff)
-
psModules/src/camera/pmFPAfileDefine.c (modified) (3 diffs)
-
psModules/src/imcombine/pmStack.c (modified) (28 diffs)
-
psastro/src/psastroLoadRefstars.c (modified) (6 diffs)
-
psconfig/pscheckperl (modified) (2 diffs)
-
psconfig/tagsets/ipp-2.9.perl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/pap_stack (added) merged: 27401,27405-27406,27409-27416
- Property svn:mergeinfo changed
-
trunk/ippTools/src/pxtools.c
r27391 r27417 181 181 psFree(whereClause); 182 182 if (fileWhere) { 183 psStringAppend(pQuery, fileWhere);183 psStringAppend(pQuery, "%s", fileWhere); 184 184 } 185 185 -
trunk/ippconfig/recipes/filerules-mef.mdc
r27402 r27417 265 265 PPSTACK.OUTPUT.MASK OUTPUT {OUTPUT}.mk.fits MASK COMP_MASK FPA TRUE NONE 266 266 PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.wt.fits VARIANCE COMP_WT FPA TRUE NONE 267 PPSTACK.OUTPUT.EXP OUTPUT {OUTPUT}.exp.fits IMAGE EXP FPA TRUE NONE 268 PPSTACK.OUTPUT.EXPNUM OUTPUT {OUTPUT}.num.fits MASK EXPNUM FPA TRUE NONE 269 PPSTACK.OUTPUT.EXPWT OUTPUT {OUTPUT}.expwt.fits VARIANCE EXP FPA TRUE NONE 267 270 PPSTACK.UNCONV OUTPUT {OUTPUT}.unconv.fits IMAGE COMP_IMG FPA TRUE NONE 268 271 PPSTACK.UNCONV.MASK OUTPUT {OUTPUT}.unconv.mask.fits MASK COMP_MASK FPA TRUE NONE 269 272 PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits VARIANCE COMP_WT FPA TRUE NONE 273 PPSTACK.UNCONV.EXP OUTPUT {OUTPUT}.unconv.exp.fits IMAGE EXP FPA TRUE NONE 274 PPSTACK.UNCONV.EXPNUM OUTPUT {OUTPUT}.unconv.num.fits MASK EXPNUM FPA TRUE NONE 275 PPSTACK.UNCONV.EXPWT OUTPUT {OUTPUT}.unconv.expwt.fits VARIANCE EXP FPA TRUE NONE 270 276 PPSTACK.TARGET.PSF OUTPUT {OUTPUT}.target.psf PSF NONE CHIP TRUE NONE 271 277 PPSTACK.CONV.KERNEL OUTPUT {OUTPUT}.{FILE.INDEX}.kernel SUBKERNEL NONE FPA TRUE NONE -
trunk/ippconfig/recipes/filerules-simple.mdc
r27402 r27417 211 211 PPSUB.REF.CONV.VARIANCE OUTPUT {OUTPUT}.refConv.wt.fits VARIANCE NONE FPA TRUE NONE 212 212 213 PPSTACK.OUTPUT OUTPUT {OUTPUT}.fits IMAGE NONE FPA TRUE NONE 214 PPSTACK.OUTPUT.MASK OUTPUT {OUTPUT}.mask.fits MASK NONE FPA TRUE NONE 215 PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.weight.fits VARIANCE NONE FPA TRUE NONE 213 PPSTACK.OUTPUT OUTPUT {OUTPUT}.fits IMAGE COMP_IMG FPA TRUE NONE 214 PPSTACK.OUTPUT.MASK OUTPUT {OUTPUT}.mask.fits MASK COMP_MASK FPA TRUE NONE 215 PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.weight.fits VARIANCE COMP_WT FPA TRUE NONE 216 PPSTACK.OUTPUT.EXP OUTPUT {OUTPUT}.exp.fits IMAGE EXP FPA TRUE NONE 217 PPSTACK.OUTPUT.EXPNUM OUTPUT {OUTPUT}.num.fits MASK EXPNUM FPA TRUE NONE 218 PPSTACK.OUTPUT.EXPWT OUTPUT {OUTPUT}.expwt.fits VARIANCE EXP FPA TRUE NONE 216 219 PPSTACK.UNCONV OUTPUT {OUTPUT}.unconv.fits IMAGE COMP_IMG FPA TRUE NONE 217 220 PPSTACK.UNCONV.MASK OUTPUT {OUTPUT}.unconv.mask.fits MASK COMP_MASK FPA TRUE NONE 218 221 PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits VARIANCE COMP_WT FPA TRUE NONE 222 PPSTACK.UNCONV.EXP OUTPUT {OUTPUT}.unconv.exp.fits IMAGE EXP FPA TRUE NONE 223 PPSTACK.UNCONV.EXPNUM OUTPUT {OUTPUT}.unconv.num.fits MASK EXPNUM FPA TRUE NONE 224 PPSTACK.UNCONV.EXPWT OUTPUT {OUTPUT}.unconv.expwt.fits VARIANCE EXP FPA TRUE NONE 219 225 PPSTACK.TARGET.PSF OUTPUT {OUTPUT}.target.psf PSF NONE CHIP TRUE NONE 220 226 PPSTACK.CONV.KERNEL OUTPUT {OUTPUT}.{FILE.INDEX}.kernel SUBKERNEL NONE FPA TRUE NONE -
trunk/ippconfig/recipes/filerules-split.mdc
r27402 r27417 233 233 PPSTACK.OUTPUT.MASK OUTPUT {OUTPUT}.mask.fits MASK COMP_MASK FPA TRUE NONE 234 234 PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.wt.fits VARIANCE COMP_WT FPA TRUE NONE 235 PPSTACK.OUTPUT.EXP OUTPUT {OUTPUT}.exp.fits IMAGE EXP FPA TRUE NONE 236 PPSTACK.OUTPUT.EXPNUM OUTPUT {OUTPUT}.num.fits MASK EXPNUM FPA TRUE NONE 237 PPSTACK.OUTPUT.EXPWT OUTPUT {OUTPUT}.expwt.fits VARIANCE EXP FPA TRUE NONE 235 238 PPSTACK.UNCONV OUTPUT {OUTPUT}.unconv.fits IMAGE COMP_IMG FPA TRUE NONE 236 239 PPSTACK.UNCONV.MASK OUTPUT {OUTPUT}.unconv.mask.fits MASK COMP_MASK FPA TRUE NONE 237 240 PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits VARIANCE COMP_WT FPA TRUE NONE 241 PPSTACK.UNCONV.EXP OUTPUT {OUTPUT}.unconv.exp.fits IMAGE EXP FPA TRUE NONE 242 PPSTACK.UNCONV.EXPNUM OUTPUT {OUTPUT}.unconv.num.fits MASK EXPNUM FPA TRUE NONE 243 PPSTACK.UNCONV.EXPWT OUTPUT {OUTPUT}.unconv.expwt.fits VARIANCE EXP FPA TRUE NONE 238 244 PPSTACK.TARGET.PSF OUTPUT {OUTPUT}.target.psf PSF NONE CHIP TRUE NONE 239 245 PPSTACK.CONV.KERNEL OUTPUT {OUTPUT}.{FILE.INDEX}.kernel SUBKERNEL NONE FPA TRUE NONE -
trunk/ippconfig/recipes/fitstypes.mdc
r23183 r27417 99 99 END 100 100 101 # Compressed exposure image 102 EXP METADATA 103 BITPIX S32 16 104 SCALING STR MANUAL 105 FUZZ BOOL FALSE 106 # Note: TRUE = BZERO + BSCALE * DISK 107 BSCALE F32 0.1 # Disk is stored as 1/10th sec 108 BZERO F32 3276.8 # Store unsigned zero as zero 109 COMPRESSION STR GZIP 110 TILE.X S32 0 111 TILE.Y S32 1 112 TILE.Z S32 1 113 NOISE S32 8 114 END 115 116 # Compressed number image 117 EXPNUM METADATA 118 BITPIX S32 16 119 COMPRESSION STR GZIP 120 TILE.X S32 0 121 TILE.Y S32 1 122 TILE.Z S32 1 123 NOISE S32 8 124 END 125 -
trunk/ppStack/src/ppStackCamera.c
r27402 r27417 283 283 } 284 284 285 286 // Exposure image 287 pmFPA *expFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain the output 288 if (!expFPA) { 289 psError(psErrorCodeLast(), false, "Unable to construct an FPA from camera configuration."); 290 return false; 291 } 292 pmFPAfile *exp = pmFPAfileDefineOutput(config, expFPA, "PPSTACK.OUTPUT.EXP"); 293 psFree(expFPA); // Drop reference 294 if (!exp) { 295 psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.OUTPUT.EXP")); 296 return false; 297 } 298 if (exp->type != PM_FPA_FILE_IMAGE) { 299 psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.OUTPUT.EXP is not of type IMAGE"); 300 return false; 301 } 302 exp->save = true; 303 304 if (!pmFPAAddSourceFromFormat(expFPA, "Stack", exp->format)) { 305 psError(psErrorCodeLast(), false, "Unable to generate output FPA."); 306 return false; 307 } 308 309 // Exposure numbers 310 pmFPAfile *expNum = pmFPAfileDefineOutput(config, exp->fpa, "PPSTACK.OUTPUT.EXPNUM"); 311 if (!expNum) { 312 psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.OUTPUT.EXPNUM")); 313 return false; 314 } 315 if (expNum->type != PM_FPA_FILE_MASK) { 316 psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.OUTPUT.EXPNUM is not of type MASK"); 317 return false; 318 } 319 expNum->save = true; 320 321 // Weighted exposure 322 pmFPAfile *expWt = pmFPAfileDefineOutput(config, exp->fpa, "PPSTACK.OUTPUT.EXPWT"); 323 if (!expWt) { 324 psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.OUTPUT.EXPWT")); 325 return false; 326 } 327 if (expWt->type != PM_FPA_FILE_VARIANCE) { 328 psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.OUTPUT.EXPWT is not of type VARIANCE"); 329 return false; 330 } 331 expWt->save = true; 332 333 285 334 if (havePSFs) { 286 335 pmFPA *psfFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain PSF … … 302 351 } 303 352 304 #if 1305 353 // Unconvolved stack 306 354 pmFPA *unconvFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain unconvolved output … … 351 399 unconvVariance->save = true; 352 400 } 353 #endif 401 402 403 // Exposure image 404 pmFPA *unconvExpFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain the output 405 if (!unconvExpFPA) { 406 psError(psErrorCodeLast(), false, "Unable to construct an FPA from camera configuration."); 407 return false; 408 } 409 pmFPAfile *unconvExp = pmFPAfileDefineOutput(config, unconvExpFPA, "PPSTACK.UNCONV.EXP"); 410 psFree(unconvExpFPA); // Drop reference 411 if (!unconvExp) { 412 psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.UNCONV.EXP")); 413 return false; 414 } 415 if (unconvExp->type != PM_FPA_FILE_IMAGE) { 416 psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.UNCONV.EXP is not of type IMAGE"); 417 return false; 418 } 419 unconvExp->save = true; 420 421 if (!pmFPAAddSourceFromFormat(unconvExpFPA, "Stack", unconvExp->format)) { 422 psError(psErrorCodeLast(), false, "Unable to generate output FPA."); 423 return false; 424 } 425 426 // Exposure numbers 427 pmFPAfile *unconvExpNum = pmFPAfileDefineOutput(config, unconvExp->fpa, "PPSTACK.UNCONV.EXPNUM"); 428 if (!unconvExpNum) { 429 psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.UNCONV.MASK")); 430 return false; 431 } 432 if (unconvExpNum->type != PM_FPA_FILE_MASK) { 433 psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.UNCONV.EXPNUM is not of type MASK"); 434 return false; 435 } 436 unconvExpNum->save = true; 437 438 // Weighted exposure 439 pmFPAfile *unconvExpWt = pmFPAfileDefineOutput(config, unconvExp->fpa, "PPSTACK.UNCONV.EXPWT"); 440 if (!unconvExpWt) { 441 psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.UNCONV.EXPWT")); 442 return false; 443 } 444 if (unconvExpWt->type != PM_FPA_FILE_VARIANCE) { 445 psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.UNCONV.EXPWT is not of type VARIANCE"); 446 return false; 447 } 448 unconvExpWt->save = true; 354 449 355 450 // Output JPEGs -
trunk/ppStack/src/ppStackFiles.c
r27402 r27417 23 23 /// Regular (convolved) stack files 24 24 static char *filesStack[] = { "PPSTACK.OUTPUT", "PPSTACK.OUTPUT.MASK", "PPSTACK.OUTPUT.VARIANCE", 25 "PPSTACK.OUTPUT.JPEG1", "PPSTACK.OUTPUT.JPEG2", NULL }; 25 "PPSTACK.OUTPUT.EXP", "PPSTACK.OUTPUT.EXPNUM", "PPSTACK.OUTPUT.EXPWT", 26 "PPSTACK.OUTPUT.JPEG1", "PPSTACK.OUTPUT.JPEG2", 27 NULL }; 26 28 /// Unconvolved stack files 27 static char *filesUnconv[] = { "PPSTACK.UNCONV", "PPSTACK.UNCONV.MASK", "PPSTACK.UNCONV.VARIANCE", NULL }; 29 static char *filesUnconv[] = { "PPSTACK.UNCONV", "PPSTACK.UNCONV.MASK", "PPSTACK.UNCONV.VARIANCE", 30 "PPSTACK.UNCONV.EXP", "PPSTACK.UNCONV.EXPNUM", "PPSTACK.UNCONV.EXPWT", 31 NULL }; 28 32 29 33 /// Files for photometry -
trunk/ppStack/src/ppStackMatch.c
r27365 r27417 18 18 #define COVAR_FRAC 0.01 // Truncation fraction for covariance matrix 19 19 20 //#define TESTING // Enable debugging output20 #define TESTING // Enable debugging output 21 21 22 22 #ifdef TESTING -
trunk/ppStack/src/ppStackReject.c
r27402 r27417 10 10 #include "ppStackLoop.h" 11 11 12 //#define TESTING12 #define TESTING 13 13 14 14 bool ppStackReject(ppStackOptions *options, pmConfig *config) -
trunk/ppViz
- Property svn:mergeinfo changed (with no actual effect on merging)
-
trunk/psLib/src/fits/psFitsScale.c
r27249 r27417 384 384 } else { \ 385 385 value = (value - zero) * scale; \ 386 if (options->fuzz ) { \386 if (options->fuzz && (value - (int)value != 0.0)) { \ 387 387 /* Add random factor [-0.5,0.5): adds a variance of 1/12, */ \ 388 388 /* but preserves the expectation value */ \ -
trunk/psModules/src/camera/pmFPAfileDefine.c
r27085 r27417 57 57 return NAN; 58 58 } 59 int value = psMetadataItemParseF32(item); // Value of interst59 float value = psMetadataItemParseF32(item); // Value of interst 60 60 return value; 61 61 } … … 72 72 return NAN; 73 73 } 74 intvalue = psMetadataItemParseF64(item); // Value of interst74 double value = psMetadataItemParseF64(item); // Value of interst 75 75 return value; 76 76 } … … 313 313 } 314 314 315 psMetadataItem *fuzz = psMetadataLookup(scheme, "FUZZ"); // Quantisation fuzz? 316 if (fuzz) { 317 if (fuzz->type != PS_TYPE_BOOL) { 318 psWarning("FUZZ in compression scheme %s isn't boolean.", fitsType); 319 goto FITS_OPTIONS_DONE; 320 } 321 options->fuzz = fuzz->data.B; 322 } 323 315 324 // Compression options 316 325 const char *compressString = psMetadataLookupStr(&mdok, scheme, "COMPRESSION"); // Compression type -
trunk/psModules/src/imcombine/pmStack.c
r27402 r27417 35 35 36 36 //#define TESTING // Enable test output 37 //#define TEST_X 2148-1 // x coordinate to examine38 //#define TEST_Y 248-1 // y coordinate to examine37 //#define TEST_X 843-1 // x coordinate to examine 38 //#define TEST_Y 813-1 // y coordinate to examine 39 39 //#define TEST_RADIUS 0 // Radius to examine 40 40 … … 46 46 psVector *variances; // Pixel variances 47 47 psVector *weights; // Pixel weightings 48 psVector *exps; // Pixel exposures 48 49 psVector *sources; // Pixel sources (which image did they come from?) 49 50 psVector *limits; // Rejection limits … … 57 58 psFree(buffer->variances); 58 59 psFree(buffer->weights); 60 psFree(buffer->exps); 59 61 psFree(buffer->sources); 60 62 psFree(buffer->limits); … … 73 75 buffer->variances = psVectorAlloc(numImages, PS_TYPE_F32); 74 76 buffer->weights = psVectorAlloc(numImages, PS_TYPE_F32); 77 buffer->exps = psVectorAlloc(numImages, PS_TYPE_F32); 75 78 buffer->sources = psVectorAlloc(numImages, PS_TYPE_U16); 76 79 buffer->limits = psVectorAlloc(numImages, PS_TYPE_F32); … … 95 98 static bool combinationMeanVariance(float *mean, // Mean value, to return 96 99 float *var, // Variance value, to return 100 float *exp, // Exposure time, to return 101 float *expWeight, // Weighted exposure time, to return 97 102 const psVector *values, // Values to combine 98 103 const psVector *variances, // Pixel variances to combine 104 const psVector *exps, // Exposure times to combine 99 105 const psVector *weights // Weights to apply 100 106 ) … … 121 127 float sumVarianceWeight = 0.0; // Sum of the pixel variances multiplied by the global weights 122 128 float sumWeight = 0.0; // Sum of the image weights 129 float sumExp = 0.0; // Sum of the exposure time 130 float sumExpWeight = 0.0; // Sum of the exposure time multiplied by the global weights 131 int numGood = 0; // Number of good exposures 123 132 for (int i = 0; i < values->n; i++) { 124 133 sumValueWeight += values->data.F32[i] * weights->data.F32[i]; … … 127 136 sumVarianceWeight += variances->data.F32[i] * PS_SQR(weights->data.F32[i]); 128 137 } 138 if (exps) { 139 sumExp += exps->data.F32[i]; 140 sumExpWeight += exps->data.F32[i] * weights->data.F32[i]; 141 numGood++; 142 } 129 143 } 130 144 … … 136 150 if (var) { 137 151 *var = sumVarianceWeight / PS_SQR(sumWeight); 152 } 153 if (exp) { 154 *exp = sumExp; 155 } 156 if (expWeight) { 157 *expWeight = sumExpWeight; 138 158 } 139 159 return true; … … 276 296 const psArray *inputs, // Stack data 277 297 const psVector *weights, // Global (single value) weights for data, or NULL 298 const psVector *exps, // Exposures for data, or NULL 278 299 const psVector *addVariance, // Additional variance for data 279 300 const psVector *reject, // Indices of pixels to reject, or NULL … … 292 313 psVector *pixelVariances = variance ? buffer->variances : NULL; // Variances for the pixel of interest 293 314 psVector *pixelWeights = buffer->weights; // Image weights for the pixel of interest 315 psVector *pixelExps = buffer->exps; // Exposure times 294 316 psVector *pixelSources = buffer->sources; // Sources for the pixel of interest 295 317 psVector *pixelLimits = buffer->limits; // Limits for the pixel of interest … … 331 353 } 332 354 pixelWeights->data.F32[numGood] = data->weight; 355 pixelExps->data.F32[numGood] = data->exp; 333 356 pixelSources->data.U16[numGood] = i; 334 357 numGood++; … … 347 370 if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) { 348 371 for (int i = 0; i < numGood; i++) { 349 fprintf(stderr, "Input %d, pixel %d,%d (%" PRIu16 "): %f %f (%f) %f % d\n",372 fprintf(stderr, "Input %d, pixel %d,%d (%" PRIu16 "): %f %f (%f) %f %f %d\n", 350 373 i, x, y, pixelSources->data.U16[i], pixelData->data.F32[i], pixelVariances->data.F32[i], 351 addVariance->data.F32[i], pixelWeights->data.F32[i], pixelSuspects->data.U8[i]); 374 addVariance->data.F32[i], pixelWeights->data.F32[i], pixelExps->data.F32[i], 375 pixelSuspects->data.U8[i]); 352 376 } 353 377 } … … 362 386 psImage *mask, // Combined mask, for output 363 387 psImage *variance, // Combined variance map, for output 388 psImage *exp, // Exposure map (time), for output 389 psImage *expnum, // Exposure map (number) for output 390 psImage *expweight, // Exposure map (weighted time) for output 364 391 int num, // Number of good pixels 365 392 combineBuffer *buffer, // Buffer with vectors 366 393 int x, int y, // Coordinates of interest; frame of output image 367 394 psImageMaskType bad, // Value for bad pixels 368 bool safe // Safe combination? 395 bool safe, // Safe combination? 396 float invTotalWeight // Inverse of total weight for all inputs 369 397 ) 370 398 { … … 372 400 psVector *pixelVariances = variance ? buffer->variances : NULL; // Variances for the pixel of interest 373 401 psVector *pixelWeights = buffer->weights; // Image weights for the pixel of interest 402 psVector *pixelExps = buffer->exps; // Exposure times 374 403 375 404 // Default option is that the pixel is bad 376 405 float imageValue = NAN, varianceValue = NAN; // Value for combined image and variance map 377 406 psImageMaskType maskValue = bad; // Value for combined mask 407 float expValue = 0.0, expWeightValue = NAN; // Exposure value (straight, and weighted) 408 378 409 switch (num) { 379 410 case 0: { … … 393 424 varianceValue = pixelVariances->data.F32[0]; 394 425 } 426 if (exp) { 427 expValue = pixelExps->data.F32[0]; 428 expWeightValue = pixelExps->data.F32[0]; 429 } 395 430 maskValue = 0; 396 431 #ifdef TESTING … … 411 446 // Automatically accept the mean of the pixels only if we're not playing safe 412 447 if (!safe) { 413 float mean, var; // Mean and variance from combination 414 if (combinationMeanVariance(&mean, &var, pixelData, pixelVariances, pixelWeights)) { 415 imageValue = mean; 416 varianceValue = var; 448 if (combinationMeanVariance(&imageValue, &varianceValue, &expValue, &expWeightValue, 449 pixelData, pixelVariances, pixelExps, pixelWeights)) { 417 450 maskValue = 0; 418 451 #ifdef TESTING 419 452 if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) { 420 453 fprintf(stderr, "Two inputs to combine using unsafe, pixel %d,%d --> %f %f\n", 421 x, y, mean, var);454 x, y, imageValue, varianceValue); 422 455 } 423 456 #endif … … 435 468 default: { 436 469 // Can combine without too much worrying 437 float mean, var; // Mean and variance of the combination438 if (!combinationMeanVariance(&mean, &var, pixelData, pixelVariances, pixelWeights)) {470 if (!combinationMeanVariance(&imageValue, &varianceValue, &expValue, &expWeightValue, 471 pixelData, pixelVariances, pixelExps, pixelWeights)) { 439 472 break; 440 473 } 441 imageValue = mean;442 varianceValue = var;443 474 maskValue = 0; 444 475 #ifdef TESTING 445 476 if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) { 446 fprintf(stderr, "Combined inputs, pixel %d,%d --> %f %f\n", x, y, mean, var);477 fprintf(stderr, "Combined inputs, pixel %d,%d --> %f %f\n", x, y, imageValue, varianceValue); 447 478 } 448 479 #endif … … 456 487 variance->data.F32[y][x] = varianceValue; 457 488 } 458 459 #ifdef TESTING 460 mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = num; 461 #endif 462 489 if (exp) { 490 exp->data.F32[y][x] = expValue; 491 } 492 if (expnum) { 493 expnum->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = num; 494 } 495 if (expweight) { 496 expweight->data.F32[y][x] = expWeightValue * invTotalWeight; 497 } 463 498 464 499 return; … … 803 838 int *numCols, int *numRows, // Size of (sky) images 804 839 const psArray *input, // Input array of pmStackData to validate 805 const pmReadout *output // Output readout 840 const pmReadout *output, // Output readout 841 const pmReadout *exp // Exposure map 806 842 ) 807 843 { … … 869 905 } 870 906 907 if (exp) { 908 PM_ASSERT_READOUT_NON_NULL(exp, false); 909 if (exp->image) { 910 PS_ASSERT_IMAGES_SIZE_EQUAL(exp->image, output->image, false); 911 } 912 if (exp->mask) { 913 PS_ASSERT_IMAGES_SIZE_EQUAL(exp->mask, output->image, false); 914 } 915 } 916 871 917 return true; 872 918 } … … 937 983 938 984 /// Constructor 939 pmStackData *pmStackDataAlloc(pmReadout *readout, float weight, float addVariance)985 pmStackData *pmStackDataAlloc(pmReadout *readout, float weight, float exp, float addVariance) 940 986 { 941 987 pmStackData *data = psAlloc(sizeof(pmStackData)); // Stack data, to return … … 946 992 data->inspect = NULL; 947 993 data->weight = weight; 994 data->exp = exp; 948 995 data->addVariance = addVariance; 949 996 … … 952 999 953 1000 /// Stack input images 954 bool pmStackCombine(pmReadout *combined, psArray *input, psImageMaskType maskVal, psImageMaskType maskSuspect, 955 psImageMaskType bad, int kernelSize, float iter, float rej, float sys, float olympic, 1001 bool pmStackCombine(pmReadout *combined, pmReadout *expmaps, psArray *input, 1002 psImageMaskType maskVal, psImageMaskType maskSuspect, 1003 psImageMaskType bad, int kernelSize, 1004 float iter, float rej, float sys, float olympic, 956 1005 bool useVariance, bool safe, bool rejection) 957 1006 { … … 959 1008 int num; // Number of inputs 960 1009 int numCols, numRows; // Size of (sky) images 961 if (!validateInputData(&haveVariances, &num, &numCols, &numRows, input, combined )) {1010 if (!validateInputData(&haveVariances, &num, &numCols, &numRows, input, combined, expmaps)) { 962 1011 return false; 963 1012 } … … 977 1026 psVector *addVariance = psVectorAlloc(num, PS_TYPE_F32); // Additional variance for each image 978 1027 psVector *weights = psVectorAlloc(num, PS_TYPE_F32); // Relative weighting for each image 1028 psVector *exps = psVectorAlloc(num, PS_TYPE_F32); // Exposure times for each image 979 1029 psArray *stack = psArrayAlloc(num); // Stack of readouts 1030 float totalExpWeight = 0.0; // Total value of all weighted exposure times 1031 float totalExp = 0.0; // Total exposure time 980 1032 for (int i = 0; i < num; i++) { 981 1033 pmStackData *data = input->data[i]; // Stack data for this input 982 1034 if (!data) { 983 1035 weights->data.F32[i] = 0.0; 1036 exps->data.F32[i] = NAN; 984 1037 continue; 985 1038 } 986 1039 weights->data.F32[i] = data->weight; 1040 exps->data.F32[i] = data->exp; 1041 totalExp += exps->data.F32[i]; 1042 totalExpWeight += exps->data.F32[i] * weights->data.F32[i]; 987 1043 pmReadout *ro = data->readout; // Readout of interest 988 1044 stack->data[i] = psMemIncrRefCounter(ro); … … 1003 1059 } 1004 1060 } 1061 totalExpWeight = totalExp / totalExpWeight; // Convert to inverse 1005 1062 1006 1063 int minInputCols, maxInputCols, minInputRows, maxInputRows; // Smallest and largest values to combine … … 1045 1102 combined->variance = psImageAlloc(numCols, numRows, PS_TYPE_F32); 1046 1103 combinedVariance = combined->variance; 1104 } 1105 1106 psImage *exp = NULL, *expnum = NULL, *expweight = NULL; // Exposure map and exposure number 1107 if (expmaps) { 1108 if (!expmaps->image) { 1109 expmaps->image = psImageAlloc(numCols, numRows, PS_TYPE_F32); 1110 } 1111 exp = expmaps->image; 1112 1113 if (!expmaps->mask) { 1114 expmaps->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK); 1115 } 1116 expnum = expmaps->mask; 1117 1118 if (!expmaps->variance) { 1119 expmaps->variance = psImageAlloc(numCols, numRows, PS_TYPE_F32); 1120 } 1121 expweight = expmaps->variance; 1047 1122 } 1048 1123 … … 1083 1158 bool suspect; // Suspect pixels in stack? 1084 1159 combineExtract(&num, &suspect, buffer, combinedImage, combinedMask, combinedVariance, 1085 input, weights, addVariance, reject, x, y, maskVal, maskSuspect); 1086 combinePixels(combinedImage, combinedMask, combinedVariance, num, buffer, x, y, bad, safe); 1160 input, weights, exps, addVariance, reject, x, y, maskVal, maskSuspect); 1161 combinePixels(combinedImage, combinedMask, combinedVariance, exp, expnum, expweight, 1162 num, buffer, x, y, bad, safe, totalExpWeight); 1087 1163 1088 1164 if (iter > 0) { -
trunk/psastro/src/psastroLoadRefstars.c
r26259 r27417 1 1 /** @file psastroLoadRefstars.c 2 2 * 3 * @brief 3 * @brief 4 4 * 5 5 * @ingroup libpsastro … … 59 59 psMetadata *catdir_folder = psMetadataLookupMetadata(&status, catdirs, catdir_recipe); 60 60 if (catdir_folder) { 61 // randomly choose one of the entries62 psLogMsg ("psastro", 3, "choosing catdir_folder\n");63 int nEntry = catdir_folder->list->n;64 65 psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS); 66 double frnd = psRandomUniform(rng);67 int entry = PS_MIN(nEntry - 1, PS_MAX(0, nEntry * frnd));68 psFree(rng);69 70 psMetadataItem *item = psListGet(catdir_folder->list, entry);71 if (item->type != PS_DATA_STRING) {72 psError(PSASTRO_ERR_CONFIG, true, "Invalid entry in PSASTRO.CATDIR folder: %s\n", item->name);73 return false;74 }75 catdir_virtual = item->data.str;61 // randomly choose one of the entries 62 psLogMsg ("psastro", 3, "choosing catdir_folder\n"); 63 int nEntry = catdir_folder->list->n; 64 65 psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS); 66 double frnd = psRandomUniform(rng); 67 int entry = PS_MIN(nEntry - 1, PS_MAX(0, nEntry * frnd)); 68 psFree(rng); 69 70 psMetadataItem *item = psListGet(catdir_folder->list, entry); 71 if (item->type != PS_DATA_STRING) { 72 psError(PSASTRO_ERR_CONFIG, true, "Invalid entry in PSASTRO.CATDIR folder: %s\n", item->name); 73 return false; 74 } 75 catdir_virtual = item->data.str; 76 76 } 77 77 … … 133 133 psTrace ("psastro", 3, "%s\n", getstarCommand); 134 134 135 psLogMsg("psastro", PS_LOG_INFO, "getstar command: %s", getstarCommand); 136 135 137 // XXX use psPipe: catch stderr, stdout, allow for Nsec timeout... 136 138 // use fork to add timeout capability … … 160 162 // assert (outfile); 161 163 // for (int nn = 0; nn < refstars->n; nn++) { 162 // pmAstromObj *ref = refstars->data[nn];163 // fprintf (outfile, "%lf %lf\n", ref->sky->r*PS_DEG_RAD, ref->sky->d*PS_DEG_RAD);164 // pmAstromObj *ref = refstars->data[nn]; 165 // fprintf (outfile, "%lf %lf\n", ref->sky->r*PS_DEG_RAD, ref->sky->d*PS_DEG_RAD); 164 166 // } 165 167 // fclose (outfile); … … 217 219 ref->sky->d = RAD_DEG*psMetadataLookupF32 (&status, row, "DEC"); 218 220 ref->Mag = 0.001*psMetadataLookupS32 (&status, row, "MAG"); // ELIXIR uses millimags 219 ref->Color = 0.0;221 ref->Color = 0.0; 220 222 } else { 221 223 ref->sky->r = RAD_DEG*psMetadataLookupF64 (&status, row, "RA"); 222 224 ref->sky->d = RAD_DEG*psMetadataLookupF64 (&status, row, "DEC"); 223 225 ref->Mag = psMetadataLookupF32 (&status, row, "MAG"); // PANSTARRS uses mags 224 ref->Color = 0.0;226 ref->Color = 0.0; 225 227 } 226 228 … … 259 261 float MagC1 = psMetadataLookupF32 (&status, row, "MAG_C1"); 260 262 float MagC2 = psMetadataLookupF32 (&status, row, "MAG_C2"); 261 if (!isnan(MagC1) && !isnan(MagC2)) {262 ref->Color = MagC1 - MagC2;263 } else {264 // XXX save the color and the slope in the table header?265 ref->Color = 0.0;266 }263 if (!isnan(MagC1) && !isnan(MagC2)) { 264 ref->Color = MagC1 - MagC2; 265 } else { 266 // XXX save the color and the slope in the table header? 267 ref->Color = 0.0; 268 } 267 269 268 270 // XXX VERY temporary hack to avoid M31 bulge -
trunk/psconfig/pscheckperl
r26406 r27417 87 87 $Nvalue = ($N, $module, $tarball, $modver, $buildopts, $prompts) = split (" ", $line); 88 88 if ($Nvalue < 6) { 89 print "Error in perl module config line $line\n";90 exit 1;89 print "Error in perl module config line $line\n"; 90 exit 1; 91 91 } 92 92 # print "N: $N, module: $module, tarball: $tarball, modver: $modver, buildopts: $buildopts, prompts: $prompts\n"; … … 127 127 if ($prompts eq "NONE") { $prompts = ""; } 128 128 129 if (-e "Build.PL" and $module ne "Params::Validate" ) {129 if (-e "Build.PL" and $module ne "Params::Validate" and $module ne "DateTime::TimeZone") { 130 130 # vsystem("perl Build.PL --install_path lib=$perldir "); 131 131 vsystem("perl Build.PL --install_base $prefix $buildopts"); -
trunk/psconfig/tagsets/ipp-2.9.perl
r26273 r27417 6 6 # a Version of 0 is required if no specific version is desired options responses 7 7 00 Getopt::Long Getopt-Long-2.36.tar.gz 2.3 NONE n 8 00 Module::Build Module-Build-0.2806.tar.gz 0.2806 NONE NONE # special comment here 9 01 ExtUtils::MakeMaker ExtUtils-MakeMaker-6.54.tar.gz 0 NONE NONE 10 02a Attribute::Handlers Attribute-Handlers-0.87.tar.gz 0.79 NONE NONE 11 02 Params::Validate Params-Validate-0.92.tar.gz 0.92 NONE NONE 12 # 02 Apache::Test Apache-Test-1.29.tar.gz 1.29 NONE NONE 13 03 DateTime::TimeZone DateTime-TimeZone-0.59.tar.gz 0 NONE NONE 14 04 DateTime::Locale DateTime-Locale-0.33.tar.gz 0 NONE NONE 15 05 Time::Local Time-Local-1.17.tar.gz 0 NONE NONE 16 06 DateTime DateTime-0.36.tar.gz 0 NONE NONE 17 07 MIME::Base64 MIME-Base64-3.07.tar.gz 0 NONE NONE 18 08 IO::Compress::Base IO-Compress-Base-2.003.tar.gz 0 NONE NONE 19 09 Compress::Raw::Zlib Compress-Raw-Zlib-2.003.tar.gz 0 NONE NONE 20 10 Class::Factory::Util Class-Factory-Util-1.6.tar.gz 0 NONE NONE 21 11 DateTime::Format::Strptime DateTime-Format-Strptime-1.0700.tar.gz 0 NONE NONE 22 12 Net::Domain::TLD Net-Domain-TLD-1.65.tar.gz 0 NONE NONE 23 13 Sub::Uplevel Sub-Uplevel-0.14.tar.gz 0 NONE NONE 24 14 HTML::Tagset HTML-Tagset-3.10.tar.gz 0 NONE NONE 25 15 Digest Digest-1.15.tar.gz 0 NONE NONE 26 16 IO::Compress::Zlib::Extra IO-Compress-Zlib-2.003.tar.gz 0 NONE NONE 27 17 version version-0.70.tar.gz 0 NONE NONE 28 18 Text::Balanced Text-Balanced-v2.0.0.tar.gz 0 NONE NONE 29 19 DateTime::Format::Builder DateTime-Format-Builder-0.7807.tar.gz 0 NONE NONE 30 20 ExtUtils::Manifest ExtUtils-Manifest-1.51.tar.gz 0 NONE NONE 31 21 URI URI-1.35.tar.gz 1.30 NONE NONE 32 22 Data::Validate::Domain Data-Validate-Domain-0.05.tar.gz 0 NONE NONE 33 23 Test::Exception Test-Exception-0.24.tar.gz 0 NONE NONE 34 24 Tree::DAG_Node Tree-DAG_Node-1.05.tar.gz 0 NONE NONE 35 25 Array::Compare Array-Compare-1.13.tar.gz 0 NONE NONE 36 26 HTML::Parser HTML-Parser-3.56.tar.gz 0 NONE NONE 37 27 Digest::MD5 Digest-MD5-2.36.tar.gz 0 NONE NONE 8 00 Module::Build Module-Build-0.2806.tar.gz 0.2806 NONE NONE # special comment here 9 01 ExtUtils::MakeMaker ExtUtils-MakeMaker-6.54.tar.gz 0 NONE NONE 10 02a Attribute::Handlers Attribute-Handlers-0.87.tar.gz 0.79 NONE NONE 11 02 Params::Validate Params-Validate-0.92.tar.gz 0.92 NONE NONE 12 # 02 Apache::Test Apache-Test-1.29.tar.gz 1.29 NONE NONE 13 03a Class::Singleton Class-Singleton-1.4.tar.gz 0 NONE NONE 14 03 DateTime::TimeZone DateTime-TimeZone-0.59.tar.gz 0 NONE NONE 15 04 DateTime::Locale DateTime-Locale-0.33.tar.gz 0 NONE NONE 16 05 Time::Local Time-Local-1.17.tar.gz 0 NONE NONE 17 06 DateTime DateTime-0.36.tar.gz 0 NONE NONE 18 07 MIME::Base64 MIME-Base64-3.07.tar.gz 0 NONE NONE 19 08 IO::Compress::Base IO-Compress-Base-2.003.tar.gz 0 NONE NONE 20 09 Compress::Raw::Zlib Compress-Raw-Zlib-2.003.tar.gz 0 NONE NONE 21 10 Class::Factory::Util Class-Factory-Util-1.6.tar.gz 0 NONE NONE 22 11 DateTime::Format::Strptime DateTime-Format-Strptime-1.0700.tar.gz 0 NONE NONE 23 12 Net::Domain::TLD Net-Domain-TLD-1.65.tar.gz 0 NONE NONE 24 13 Sub::Uplevel Sub-Uplevel-0.14.tar.gz 0 NONE NONE 25 14 HTML::Tagset HTML-Tagset-3.10.tar.gz 0 NONE NONE 26 15 Digest Digest-1.15.tar.gz 0 NONE NONE 27 16 IO::Compress::Zlib::Extra IO-Compress-Zlib-2.003.tar.gz 0 NONE NONE 28 17 version version-0.70.tar.gz 0 NONE NONE 29 18 Text::Balanced Text-Balanced-v2.0.0.tar.gz 0 NONE NONE 30 19 DateTime::Format::Builder DateTime-Format-Builder-0.7807.tar.gz 0 NONE NONE 31 20 ExtUtils::Manifest ExtUtils-Manifest-1.51.tar.gz 0 NONE NONE 32 21 URI URI-1.35.tar.gz 1.30 NONE NONE 33 22 Data::Validate::Domain Data-Validate-Domain-0.05.tar.gz 0 NONE NONE 34 23 Test::Exception Test-Exception-0.24.tar.gz 0 NONE NONE 35 24 Tree::DAG_Node Tree-DAG_Node-1.05.tar.gz 0 NONE NONE 36 25 Array::Compare Array-Compare-1.13.tar.gz 0 NONE NONE 37 26 HTML::Parser HTML-Parser-3.56.tar.gz 0 NONE NONE 38 27 Digest::MD5 Digest-MD5-2.36.tar.gz 0 NONE NONE 38 39 28 Net::FTP libnet-1.19.tar.gz 0 NONE n 39 29 Compress::Zlib Compress-Zlib-2.003.tar.gz 0 NONE NONE40 30 Locale::Maketext::Simple Locale-Maketext-Simple-0.18.tar.gz 0 NONE NONE41 31 Parse::RecDescent Parse-RecDescent-1.94.tar.gz 1.94 NONE NONE42 32 Class::Accessor Class-Accessor-0.30.tar.gz 0.19 NONE NONE43 33 DateTime::Format::ISO8601 DateTime-Format-ISO8601-0.06.tar.gz 0.06 NONE NONE44 34 CGI CGI.pm-3.25.tar.gz 3 NONE NONE45 35 Test::Cmd Test-Cmd-1.05.tar.gz 1.05 NONE NONE46 36 Net::HTTPServer Net-HTTPServer-1.1.1.tar.gz 1.1.1 NONE NONE47 37 LWP libwww-perl-5.805.tar.gz 0 NONE NONE48 38 Digest::MD5::File Digest-MD5-File-0.05.tar.gz 0.03 NONE NONE49 39 File::Temp File-Temp-0.18.tar.gz 0.16 NONE NONE50 40 Data::Validate::URI Data-Validate-URI-0.01.tar.gz 0.01 NONE NONE51 41 Test::Warn Test-Warn-0.08.tar.gz 0 NONE NONE40 29 Compress::Zlib Compress-Zlib-2.003.tar.gz 0 NONE NONE 41 30 Locale::Maketext::Simple Locale-Maketext-Simple-0.18.tar.gz 0 NONE NONE 42 31 Parse::RecDescent Parse-RecDescent-1.94.tar.gz 1.94 NONE NONE 43 32 Class::Accessor Class-Accessor-0.30.tar.gz 0.19 NONE NONE 44 33 DateTime::Format::ISO8601 DateTime-Format-ISO8601-0.06.tar.gz 0.06 NONE NONE 45 34 CGI CGI.pm-3.25.tar.gz 3 NONE NONE 46 35 Test::Cmd Test-Cmd-1.05.tar.gz 1.05 NONE NONE 47 36 Net::HTTPServer Net-HTTPServer-1.1.1.tar.gz 1.1.1 NONE NONE 48 37 LWP libwww-perl-5.805.tar.gz 0 NONE NONE 49 38 Digest::MD5::File Digest-MD5-File-0.05.tar.gz 0.03 NONE NONE 50 39 File::Temp File-Temp-0.18.tar.gz 0.16 NONE NONE 51 40 Data::Validate::URI Data-Validate-URI-0.01.tar.gz 0.01 NONE NONE 52 41 Test::Warn Test-Warn-0.08.tar.gz 0 NONE NONE 52 53 42 YAML YAML-0.62.tar.gz 0.58 NONE y 53 43 Module::Load Module-Load-0.10.tar.gz 0 NONE NONE54 44 Params::Check Params-Check-0.25.tar.gz 0 NONE NONE54 43 Module::Load Module-Load-0.10.tar.gz 0 NONE NONE 55 44 Params::Check Params-Check-0.25.tar.gz 0 NONE NONE 55 56 45 Template Template-Toolkit-2.16.tar.gz 0 NONE n,n 56 46 Statistics::Descriptive Statistics-Descriptive-2.6.tar.gz 2.6 NONE NONE57 47 Storable Storable-2.15.tar.gz 0 NONE NONE58 48 IO::String IO-String-1.08.tar.gz 0 NONE NONE59 49 Date::Parse TimeDate-1.16.tar.gz 0 NONE NONE60 50 Digest::SHA1 Digest-SHA1-2.11.tar.gz 0 NONE NONE61 51 DB_File DB_File-1.814.tar.gz 0 NONE NONE62 52 File::NFSLock File-NFSLock-1.20.tar.gz 0 NONE NONE63 53 Heap Heap-0.71.tar.gz 0 NONE NONE64 54 Module::Load::Conditional Module-Load-Conditional-0.16.tar.gz 0 NONE NONE65 55 IPC::Run IPC-Run-0.80.tar.gz 0 NONE NONE66 56 Cache Cache-2.04.tar.gz 0 NONE NONE67 57 IPC::Cmd IPC-Cmd-0.36.tar.gz 0.36 NONE NONE57 46 Statistics::Descriptive Statistics-Descriptive-2.6.tar.gz 2.6 NONE NONE 58 47 Storable Storable-2.15.tar.gz 0 NONE NONE 59 48 IO::String IO-String-1.08.tar.gz 0 NONE NONE 60 49 Date::Parse TimeDate-1.16.tar.gz 0 NONE NONE 61 50 Digest::SHA1 Digest-SHA1-2.11.tar.gz 0 NONE NONE 62 51 DB_File DB_File-1.814.tar.gz 0 NONE NONE 63 52 File::NFSLock File-NFSLock-1.20.tar.gz 0 NONE NONE 64 53 Heap Heap-0.71.tar.gz 0 NONE NONE 65 54 Module::Load::Conditional Module-Load-Conditional-0.16.tar.gz 0 NONE NONE 66 55 IPC::Run IPC-Run-0.80.tar.gz 0 NONE NONE 67 56 Cache Cache-2.04.tar.gz 0 NONE NONE 68 57 IPC::Cmd IPC-Cmd-0.36.tar.gz 0.36 NONE NONE 68 69 58 SOAP::Lite SOAP-Lite-0.69.tar.gz 0 NONE yes,yes,no 69 59 Log::Log4perl Log-Log4perl-1.10.tar.gz 0 NONE NONE70 # 60 File::ExtAttr File-ExtAttr-1.04.tar.gz 0 NONE NONE71 61 Text::Glob Text-Glob-0.08.tar.gz 0.08 NONE NONE72 62 Number::Compare Number-Compare-0.01.tar.gz 0.01 NONE NONE73 63 File::Find::Rule File-Find-Rule-0.30.tar.gz 0.30 NONE NONE74 64 Astro::FITS::CFITSIO Astro-FITS-CFITSIO-1.05.tar.gz 0 NONE NONE75 65 Test::More Test-Simple-0.74.tar.gz 0.49 NONE NONE76 # 66 Apache::DBI Apache-DBI-1.06.tar.gz 0 NONE NONE77 # 67 Apache2::SOAP Apache2-SOAP-0.72.tar.gz 0 NONE NONE78 68 Test::URI Test-URI-1.08.tar.gz 0 NONE NONE79 # 69 Sys::Statistics::Linux::DiskUsage Sys-Statistics-Linux-0.26.tar.gz 0 NONE NONE80 # 70 Config::YAML Config-YAML-1.42.tar.gz 0 NONE NONE81 # 72 File::ExtAttr File-ExtAttr-1.07.tar.gz 0 NONE NONE82 73 DBI DBI-1.601.tar.gz 0 NONE NONE83 71 DBD::mysql DBD-mysql-4.006.tar.gz 0 NONE NONE84 # 74 Net::Server::Daemonize Net-Server-0.97.tar.gz 0.05 NONE NONE85 75 File::Path File-Path-2.04.tar.gz 0 NONE NONE86 76 File::Mountpoint File-Mountpoint-0.01.tar.gz 0.01 NONE NONE87 77 Filesys::Df Filesys-Df-0.92.tar.gz 0.92 NONE NONE88 78 SQL::Interp SQL-Interp-1.06.tar.gz 0 NONE NONE89 79a Mail::Send MailTools-2.04.tar.gz 0 NONE NONE90 79b Log::Dispatch::Email::MailSend Log-Dispatch-2.22.tar.gz 0 NONE NONE91 80 Abstract::Meta::Class Abstract-Meta-Class-0.13.tar.gz 0 NONE NONE92 81 DBIx::Connection DBIx-Connection-0.13.tar.gz 0 NONE NONE93 82a Test::Pod Test-Pod-1.40.tar.gz 0 NONE NONE94 82c XML::NamespaceSupport XML-NamespaceSupport-1.10.tar.gz 0 --skip NONE 70 59 Log::Log4perl Log-Log4perl-1.10.tar.gz 0 NONE NONE 71 # 60 File::ExtAttr File-ExtAttr-1.04.tar.gz 0 NONE NONE 72 61 Text::Glob Text-Glob-0.08.tar.gz 0.08 NONE NONE 73 62 Number::Compare Number-Compare-0.01.tar.gz 0.01 NONE NONE 74 63 File::Find::Rule File-Find-Rule-0.30.tar.gz 0.30 NONE NONE 75 64 Astro::FITS::CFITSIO Astro-FITS-CFITSIO-1.05.tar.gz 0 NONE NONE 76 65 Test::More Test-Simple-0.74.tar.gz 0.49 NONE NONE 77 # 66 Apache::DBI Apache-DBI-1.06.tar.gz 0 NONE NONE 78 # 67 Apache2::SOAP Apache2-SOAP-0.72.tar.gz 0 NONE NONE 79 68 Test::URI Test-URI-1.08.tar.gz 0 NONE NONE 80 # 69 Sys::Statistics::Linux::DiskUsage Sys-Statistics-Linux-0.26.tar.gz 0 NONE NONE 81 # 70 Config::YAML Config-YAML-1.42.tar.gz 0 NONE NONE 82 # 72 File::ExtAttr File-ExtAttr-1.07.tar.gz 0 NONE NONE 83 73 DBI DBI-1.601.tar.gz 0 NONE NONE 84 71 DBD::mysql DBD-mysql-4.006.tar.gz 0 NONE NONE 85 # 74 Net::Server::Daemonize Net-Server-0.97.tar.gz 0.05 NONE NONE 86 75 File::Path File-Path-2.04.tar.gz 0 NONE NONE 87 76 File::Mountpoint File-Mountpoint-0.01.tar.gz 0.01 NONE NONE 88 77 Filesys::Df Filesys-Df-0.92.tar.gz 0.92 NONE NONE 89 78 SQL::Interp SQL-Interp-1.06.tar.gz 0 NONE NONE 90 79a Mail::Send MailTools-2.04.tar.gz 0 NONE NONE 91 79b Log::Dispatch::Email::MailSend Log-Dispatch-2.22.tar.gz 0 NONE NONE 92 80 Abstract::Meta::Class Abstract-Meta-Class-0.13.tar.gz 0 NONE NONE 93 81 DBIx::Connection DBIx-Connection-0.13.tar.gz 0 NONE NONE 94 82a Test::Pod Test-Pod-1.40.tar.gz 0 NONE NONE 95 82c XML::NamespaceSupport XML-NamespaceSupport-1.10.tar.gz 0 --skip NONE 95 96 82b XML::SAX XML-SAX-0.96.tar.gz 0 NONE Y 96 82d Simple::SAX::Serializer Simple-SAX-Serializer-0.05.tar.gz 0 NONE NONE97 83 Test::Distribution Test-Distribution-2.00.tar.gz 0 NONE NONE98 84 Test::DBUnit Test-DBUnit-0.20.tar.gz 0.20 NONE NONE 97 82d Simple::SAX::Serializer Simple-SAX-Serializer-0.05.tar.gz 0 NONE NONE 98 83 Test::Distribution Test-Distribution-2.00.tar.gz 0 NONE NONE 99 84 Test::DBUnit Test-DBUnit-0.20.tar.gz 0.20 NONE NONE
Note:
See TracChangeset
for help on using the changeset viewer.
