IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 27417


Ignore:
Timestamp:
Mar 23, 2010, 3:23:07 PM (16 years ago)
Author:
Paul Price
Message:

Merging development branch branches/pap_stack/ (exposure maps and their compression).

Location:
trunk
Files:
17 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/ippTools/src/pxtools.c

    r27391 r27417  
    181181    psFree(whereClause);
    182182    if (fileWhere) {
    183         psStringAppend(pQuery, fileWhere);
     183        psStringAppend(pQuery, "%s", fileWhere);
    184184    }
    185185
  • trunk/ippconfig/recipes/filerules-mef.mdc

    r27402 r27417  
    265265PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mk.fits                  MASK      COMP_MASK  FPA        TRUE      NONE
    266266PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.wt.fits                  VARIANCE  COMP_WT    FPA        TRUE      NONE
     267PPSTACK.OUTPUT.EXP      OUTPUT {OUTPUT}.exp.fits                 IMAGE     EXP        FPA        TRUE      NONE
     268PPSTACK.OUTPUT.EXPNUM   OUTPUT {OUTPUT}.num.fits                 MASK      EXPNUM     FPA        TRUE      NONE
     269PPSTACK.OUTPUT.EXPWT    OUTPUT {OUTPUT}.expwt.fits               VARIANCE  EXP        FPA        TRUE      NONE
    267270PPSTACK.UNCONV          OUTPUT {OUTPUT}.unconv.fits              IMAGE     COMP_IMG   FPA        TRUE      NONE
    268271PPSTACK.UNCONV.MASK     OUTPUT {OUTPUT}.unconv.mask.fits         MASK      COMP_MASK  FPA        TRUE      NONE
    269272PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits           VARIANCE  COMP_WT    FPA        TRUE      NONE
     273PPSTACK.UNCONV.EXP      OUTPUT {OUTPUT}.unconv.exp.fits          IMAGE     EXP        FPA        TRUE      NONE
     274PPSTACK.UNCONV.EXPNUM   OUTPUT {OUTPUT}.unconv.num.fits          MASK      EXPNUM     FPA        TRUE      NONE
     275PPSTACK.UNCONV.EXPWT    OUTPUT {OUTPUT}.unconv.expwt.fits        VARIANCE  EXP        FPA        TRUE      NONE
    270276PPSTACK.TARGET.PSF      OUTPUT {OUTPUT}.target.psf               PSF       NONE       CHIP       TRUE      NONE
    271277PPSTACK.CONV.KERNEL     OUTPUT {OUTPUT}.{FILE.INDEX}.kernel      SUBKERNEL NONE       FPA        TRUE      NONE
  • trunk/ippconfig/recipes/filerules-simple.mdc

    r27402 r27417  
    211211PPSUB.REF.CONV.VARIANCE OUTPUT {OUTPUT}.refConv.wt.fits VARIANCE NONE     FPA        TRUE      NONE
    212212                                             
    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
     213PPSTACK.OUTPUT          OUTPUT {OUTPUT}.fits         IMAGE     COMP_IMG   FPA        TRUE      NONE
     214PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits    MASK      COMP_MASK  FPA        TRUE      NONE
     215PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.weight.fits  VARIANCE  COMP_WT    FPA        TRUE      NONE
     216PPSTACK.OUTPUT.EXP      OUTPUT {OUTPUT}.exp.fits     IMAGE     EXP        FPA        TRUE      NONE
     217PPSTACK.OUTPUT.EXPNUM   OUTPUT {OUTPUT}.num.fits     MASK      EXPNUM     FPA        TRUE      NONE
     218PPSTACK.OUTPUT.EXPWT    OUTPUT {OUTPUT}.expwt.fits   VARIANCE  EXP        FPA        TRUE      NONE
    216219PPSTACK.UNCONV          OUTPUT {OUTPUT}.unconv.fits  IMAGE     COMP_IMG   FPA        TRUE      NONE
    217220PPSTACK.UNCONV.MASK     OUTPUT {OUTPUT}.unconv.mask.fits MASK  COMP_MASK  FPA        TRUE      NONE
    218221PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits VARIANCE COMP_WT   FPA        TRUE      NONE
     222PPSTACK.UNCONV.EXP      OUTPUT {OUTPUT}.unconv.exp.fits IMAGE  EXP        FPA        TRUE      NONE
     223PPSTACK.UNCONV.EXPNUM   OUTPUT {OUTPUT}.unconv.num.fits MASK   EXPNUM     FPA        TRUE      NONE
     224PPSTACK.UNCONV.EXPWT    OUTPUT {OUTPUT}.unconv.expwt.fits VARIANCE EXP    FPA        TRUE      NONE
    219225PPSTACK.TARGET.PSF      OUTPUT {OUTPUT}.target.psf   PSF       NONE       CHIP       TRUE      NONE
    220226PPSTACK.CONV.KERNEL     OUTPUT {OUTPUT}.{FILE.INDEX}.kernel SUBKERNEL NONE FPA       TRUE      NONE
  • trunk/ippconfig/recipes/filerules-split.mdc

    r27402 r27417  
    233233PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA        TRUE      NONE
    234234PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.wt.fits                  VARIANCE  COMP_WT    FPA        TRUE      NONE
     235PPSTACK.OUTPUT.EXP      OUTPUT {OUTPUT}.exp.fits                 IMAGE     EXP        FPA        TRUE      NONE
     236PPSTACK.OUTPUT.EXPNUM   OUTPUT {OUTPUT}.num.fits                 MASK      EXPNUM     FPA        TRUE      NONE
     237PPSTACK.OUTPUT.EXPWT    OUTPUT {OUTPUT}.expwt.fits               VARIANCE  EXP        FPA        TRUE      NONE
    235238PPSTACK.UNCONV          OUTPUT {OUTPUT}.unconv.fits              IMAGE     COMP_IMG   FPA        TRUE      NONE
    236239PPSTACK.UNCONV.MASK     OUTPUT {OUTPUT}.unconv.mask.fits         MASK      COMP_MASK  FPA        TRUE      NONE
    237240PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits           VARIANCE  COMP_WT    FPA        TRUE      NONE
     241PPSTACK.UNCONV.EXP      OUTPUT {OUTPUT}.unconv.exp.fits          IMAGE     EXP        FPA        TRUE      NONE
     242PPSTACK.UNCONV.EXPNUM   OUTPUT {OUTPUT}.unconv.num.fits          MASK      EXPNUM     FPA        TRUE      NONE
     243PPSTACK.UNCONV.EXPWT    OUTPUT {OUTPUT}.unconv.expwt.fits        VARIANCE  EXP        FPA        TRUE      NONE
    238244PPSTACK.TARGET.PSF      OUTPUT {OUTPUT}.target.psf               PSF       NONE       CHIP       TRUE      NONE
    239245PPSTACK.CONV.KERNEL     OUTPUT {OUTPUT}.{FILE.INDEX}.kernel      SUBKERNEL NONE       FPA        TRUE      NONE
  • trunk/ippconfig/recipes/fitstypes.mdc

    r23183 r27417  
    9999END
    100100
     101# Compressed exposure image
     102EXP     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
     114END
     115
     116# Compressed number image
     117EXPNUM  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
     124END
     125
  • trunk/ppStack/src/ppStackCamera.c

    r27402 r27417  
    283283    }
    284284
     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
    285334    if (havePSFs) {
    286335        pmFPA *psfFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain PSF
     
    302351    }
    303352
    304 #if 1
    305353    // Unconvolved stack
    306354    pmFPA *unconvFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain unconvolved output
     
    351399        unconvVariance->save = true;
    352400    }
    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;
    354449
    355450    // Output JPEGs
  • trunk/ppStack/src/ppStackFiles.c

    r27402 r27417  
    2323/// Regular (convolved) stack files
    2424static 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 };
    2628/// Unconvolved stack files
    27 static char *filesUnconv[] = { "PPSTACK.UNCONV", "PPSTACK.UNCONV.MASK", "PPSTACK.UNCONV.VARIANCE", NULL };
     29static char *filesUnconv[] = { "PPSTACK.UNCONV", "PPSTACK.UNCONV.MASK", "PPSTACK.UNCONV.VARIANCE",
     30                               "PPSTACK.UNCONV.EXP", "PPSTACK.UNCONV.EXPNUM", "PPSTACK.UNCONV.EXPWT",
     31                               NULL };
    2832
    2933/// Files for photometry
  • trunk/ppStack/src/ppStackMatch.c

    r27365 r27417  
    1818#define COVAR_FRAC 0.01                 // Truncation fraction for covariance matrix
    1919
    20 //#define TESTING                         // Enable debugging output
     20#define TESTING                         // Enable debugging output
    2121
    2222#ifdef TESTING
  • trunk/ppStack/src/ppStackReject.c

    r27402 r27417  
    1010#include "ppStackLoop.h"
    1111
    12 //#define TESTING
     12#define TESTING
    1313
    1414bool 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  
    384384                } else { \
    385385                    value = (value - zero) * scale; \
    386                     if (options->fuzz) { \
     386                    if (options->fuzz && (value - (int)value != 0.0)) { \
    387387                       /* Add random factor [-0.5,0.5): adds a variance of 1/12, */ \
    388388                       /* but preserves the expectation value */ \
  • trunk/psModules/src/camera/pmFPAfileDefine.c

    r27085 r27417  
    5757        return NAN;
    5858    }
    59     int value = psMetadataItemParseF32(item); // Value of interst
     59    float value = psMetadataItemParseF32(item); // Value of interst
    6060    return value;
    6161}
     
    7272        return NAN;
    7373    }
    74     int value = psMetadataItemParseF64(item); // Value of interst
     74    double value = psMetadataItemParseF64(item); // Value of interst
    7575    return value;
    7676}
     
    313313        }
    314314
     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
    315324        // Compression options
    316325        const char *compressString = psMetadataLookupStr(&mdok, scheme, "COMPRESSION"); // Compression type
  • trunk/psModules/src/imcombine/pmStack.c

    r27402 r27417  
    3535
    3636//#define TESTING                         // Enable test output
    37 //#define TEST_X 2148-1                     // x coordinate to examine
    38 //#define TEST_Y 248-1                     // y coordinate to examine
     37//#define TEST_X 843-1                     // x coordinate to examine
     38//#define TEST_Y 813-1                     // y coordinate to examine
    3939//#define TEST_RADIUS 0                    // Radius to examine
    4040
     
    4646    psVector *variances;                // Pixel variances
    4747    psVector *weights;                  // Pixel weightings
     48    psVector *exps;                     // Pixel exposures
    4849    psVector *sources;                  // Pixel sources (which image did they come from?)
    4950    psVector *limits;                   // Rejection limits
     
    5758    psFree(buffer->variances);
    5859    psFree(buffer->weights);
     60    psFree(buffer->exps);
    5961    psFree(buffer->sources);
    6062    psFree(buffer->limits);
     
    7375    buffer->variances = psVectorAlloc(numImages, PS_TYPE_F32);
    7476    buffer->weights = psVectorAlloc(numImages, PS_TYPE_F32);
     77    buffer->exps = psVectorAlloc(numImages, PS_TYPE_F32);
    7578    buffer->sources = psVectorAlloc(numImages, PS_TYPE_U16);
    7679    buffer->limits = psVectorAlloc(numImages, PS_TYPE_F32);
     
    9598static bool combinationMeanVariance(float *mean, // Mean value, to return
    9699                                    float *var, // Variance value, to return
     100                                    float *exp, // Exposure time, to return
     101                                    float *expWeight,          // Weighted exposure time, to return
    97102                                    const psVector *values, // Values to combine
    98103                                    const psVector *variances, // Pixel variances to combine
     104                                    const psVector *exps,      // Exposure times to combine
    99105                                    const psVector *weights // Weights to apply
    100106                                    )
     
    121127    float sumVarianceWeight = 0.0;     // Sum of the pixel variances multiplied by the global weights
    122128    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
    123132    for (int i = 0; i < values->n; i++) {
    124133        sumValueWeight += values->data.F32[i] * weights->data.F32[i];
     
    127136            sumVarianceWeight += variances->data.F32[i] * PS_SQR(weights->data.F32[i]);
    128137        }
     138        if (exps) {
     139            sumExp += exps->data.F32[i];
     140            sumExpWeight += exps->data.F32[i] * weights->data.F32[i];
     141            numGood++;
     142        }
    129143    }
    130144
     
    136150    if (var) {
    137151        *var = sumVarianceWeight / PS_SQR(sumWeight);
     152    }
     153    if (exp) {
     154        *exp = sumExp;
     155    }
     156    if (expWeight) {
     157        *expWeight = sumExpWeight;
    138158    }
    139159    return true;
     
    276296                           const psArray *inputs, // Stack data
    277297                           const psVector *weights, // Global (single value) weights for data, or NULL
     298                           const psVector *exps,    // Exposures for data, or NULL
    278299                           const psVector *addVariance, // Additional variance for data
    279300                           const psVector *reject, // Indices of pixels to reject, or NULL
     
    292313    psVector *pixelVariances = variance ? buffer->variances : NULL; // Variances for the pixel of interest
    293314    psVector *pixelWeights = buffer->weights; // Image weights for the pixel of interest
     315    psVector *pixelExps = buffer->exps;       // Exposure times
    294316    psVector *pixelSources = buffer->sources; // Sources for the pixel of interest
    295317    psVector *pixelLimits = buffer->limits; // Limits for the pixel of interest
     
    331353        }
    332354        pixelWeights->data.F32[numGood] = data->weight;
     355        pixelExps->data.F32[numGood] = data->exp;
    333356        pixelSources->data.U16[numGood] = i;
    334357        numGood++;
     
    347370    if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
    348371        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",
    350373                    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]);
    352376        }
    353377    }
     
    362386                          psImage *mask, // Combined mask, for output
    363387                          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
    364391                          int num,      // Number of good pixels
    365392                          combineBuffer *buffer, // Buffer with vectors
    366393                          int x, int y, // Coordinates of interest; frame of output image
    367394                          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
    369397                          )
    370398{
     
    372400    psVector *pixelVariances = variance ? buffer->variances : NULL; // Variances for the pixel of interest
    373401    psVector *pixelWeights = buffer->weights; // Image weights for the pixel of interest
     402    psVector *pixelExps = buffer->exps;       // Exposure times
    374403
    375404    // Default option is that the pixel is bad
    376405    float imageValue = NAN, varianceValue = NAN; // Value for combined image and variance map
    377406    psImageMaskType maskValue = bad;    // Value for combined mask
     407    float expValue = 0.0, expWeightValue = NAN; // Exposure value (straight, and weighted)
     408
    378409    switch (num) {
    379410      case 0: {
     
    393424                  varianceValue = pixelVariances->data.F32[0];
    394425              }
     426              if (exp) {
     427                  expValue = pixelExps->data.F32[0];
     428                  expWeightValue = pixelExps->data.F32[0];
     429              }
    395430              maskValue = 0;
    396431#ifdef TESTING
     
    411446          // Automatically accept the mean of the pixels only if we're not playing safe
    412447          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)) {
    417450                  maskValue = 0;
    418451#ifdef TESTING
    419452                  if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
    420453                      fprintf(stderr, "Two inputs to combine using unsafe, pixel %d,%d --> %f %f\n",
    421                               x, y, mean, var);
     454                              x, y, imageValue, varianceValue);
    422455                  }
    423456#endif
     
    435468      default: {
    436469          // Can combine without too much worrying
    437           float mean, var;           // Mean and variance of the combination
    438           if (!combinationMeanVariance(&mean, &var, pixelData, pixelVariances, pixelWeights)) {
     470          if (!combinationMeanVariance(&imageValue, &varianceValue, &expValue, &expWeightValue,
     471                                       pixelData, pixelVariances, pixelExps, pixelWeights)) {
    439472              break;
    440473          }
    441           imageValue = mean;
    442           varianceValue = var;
    443474          maskValue = 0;
    444475#ifdef TESTING
    445476          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);
    447478          }
    448479#endif
     
    456487        variance->data.F32[y][x] = varianceValue;
    457488    }
    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    }
    463498
    464499    return;
     
    803838                              int *numCols, int *numRows, // Size of (sky) images
    804839                              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
    806842    )
    807843{
     
    869905    }
    870906
     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
    871917    return true;
    872918}
     
    937983
    938984/// Constructor
    939 pmStackData *pmStackDataAlloc(pmReadout *readout, float weight, float addVariance)
     985pmStackData *pmStackDataAlloc(pmReadout *readout, float weight, float exp, float addVariance)
    940986{
    941987    pmStackData *data = psAlloc(sizeof(pmStackData)); // Stack data, to return
     
    946992    data->inspect = NULL;
    947993    data->weight = weight;
     994    data->exp = exp;
    948995    data->addVariance = addVariance;
    949996
     
    952999
    9531000/// 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,
     1001bool 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,
    9561005                    bool useVariance, bool safe, bool rejection)
    9571006{
     
    9591008    int num;                            // Number of inputs
    9601009    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)) {
    9621011        return false;
    9631012    }
     
    9771026    psVector *addVariance = psVectorAlloc(num, PS_TYPE_F32); // Additional variance for each image
    9781027    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
    9791029    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
    9801032    for (int i = 0; i < num; i++) {
    9811033        pmStackData *data = input->data[i]; // Stack data for this input
    9821034        if (!data) {
    9831035            weights->data.F32[i] = 0.0;
     1036            exps->data.F32[i] = NAN;
    9841037            continue;
    9851038        }
    9861039        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];
    9871043        pmReadout *ro = data->readout;  // Readout of interest
    9881044        stack->data[i] = psMemIncrRefCounter(ro);
     
    10031059        }
    10041060    }
     1061    totalExpWeight = totalExp / totalExpWeight;    // Convert to inverse
    10051062
    10061063    int minInputCols, maxInputCols, minInputRows, maxInputRows; // Smallest and largest values to combine
     
    10451102        combined->variance = psImageAlloc(numCols, numRows, PS_TYPE_F32);
    10461103        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;
    10471122    }
    10481123
     
    10831158            bool suspect;               // Suspect pixels in stack?
    10841159            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);
    10871163
    10881164            if (iter > 0) {
  • trunk/psastro/src/psastroLoadRefstars.c

    r26259 r27417  
    11/** @file psastroLoadRefstars.c
    22 *
    3  *  @brief 
     3 *  @brief
    44 *
    55 *  @ingroup libpsastro
     
    5959    psMetadata *catdir_folder = psMetadataLookupMetadata(&status, catdirs, catdir_recipe);
    6060    if (catdir_folder) {
    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;
     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;
    7676    }
    7777
     
    133133    psTrace ("psastro", 3, "%s\n", getstarCommand);
    134134
     135    psLogMsg("psastro", PS_LOG_INFO, "getstar command: %s", getstarCommand);
     136
    135137    // XXX use psPipe: catch stderr, stdout, allow for Nsec timeout...
    136138    // use fork to add timeout capability
     
    160162      // assert (outfile);
    161163      // 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);
    164166      // }
    165167      // fclose (outfile);
     
    217219            ref->sky->d   = RAD_DEG*psMetadataLookupF32 (&status, row, "DEC");
    218220            ref->Mag      = 0.001*psMetadataLookupS32 (&status, row, "MAG");  // ELIXIR uses millimags
    219             ref->Color    = 0.0;
     221            ref->Color    = 0.0;
    220222        } else {
    221223            ref->sky->r   = RAD_DEG*psMetadataLookupF64 (&status, row, "RA");
    222224            ref->sky->d   = RAD_DEG*psMetadataLookupF64 (&status, row, "DEC");
    223225            ref->Mag      = psMetadataLookupF32 (&status, row, "MAG"); // PANSTARRS uses mags
    224             ref->Color    = 0.0;
     226            ref->Color    = 0.0;
    225227        }
    226228
     
    259261        float MagC1   = psMetadataLookupF32 (&status, row, "MAG_C1");
    260262        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        }
    267269
    268270        // XXX VERY temporary hack to avoid M31 bulge
  • trunk/psconfig/pscheckperl

    r26406 r27417  
    8787    $Nvalue = ($N, $module, $tarball, $modver, $buildopts, $prompts) = split (" ", $line);
    8888    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;
    9191    }
    9292    # print "N: $N, module: $module, tarball: $tarball, modver: $modver, buildopts: $buildopts, prompts: $prompts\n";
     
    127127    if ($prompts eq "NONE") { $prompts = ""; }
    128128
    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") {
    130130        # vsystem("perl Build.PL --install_path lib=$perldir ");
    131131        vsystem("perl Build.PL --install_base $prefix $buildopts");
  • trunk/psconfig/tagsets/ipp-2.9.perl

    r26273 r27417  
    66# a Version of 0 is required if no specific version is desired                                 options   responses
    77  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
    3839  28    Net::FTP                       libnet-1.19.tar.gz                       0              NONE      n
    39   29    Compress::Zlib                 Compress-Zlib-2.003.tar.gz               0              NONE      NONE
    40   30    Locale::Maketext::Simple       Locale-Maketext-Simple-0.18.tar.gz       0              NONE      NONE
    41   31    Parse::RecDescent              Parse-RecDescent-1.94.tar.gz             1.94           NONE      NONE
    42   32    Class::Accessor                Class-Accessor-0.30.tar.gz               0.19           NONE      NONE
    43   33    DateTime::Format::ISO8601      DateTime-Format-ISO8601-0.06.tar.gz      0.06           NONE      NONE
    44   34    CGI                            CGI.pm-3.25.tar.gz                       3              NONE      NONE
    45   35    Test::Cmd                      Test-Cmd-1.05.tar.gz                     1.05           NONE      NONE
    46   36    Net::HTTPServer                Net-HTTPServer-1.1.1.tar.gz              1.1.1          NONE      NONE
    47   37    LWP                            libwww-perl-5.805.tar.gz                 0              NONE      NONE
    48   38    Digest::MD5::File              Digest-MD5-File-0.05.tar.gz              0.03           NONE      NONE
    49   39    File::Temp                     File-Temp-0.18.tar.gz                    0.16           NONE      NONE
    50   40    Data::Validate::URI            Data-Validate-URI-0.01.tar.gz            0.01           NONE      NONE
    51   41    Test::Warn                     Test-Warn-0.08.tar.gz                    0              NONE      NONE
     40  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
    5253  42    YAML                           YAML-0.62.tar.gz                         0.58           NONE      y
    53   43    Module::Load                   Module-Load-0.10.tar.gz                  0              NONE      NONE
    54   44    Params::Check                  Params-Check-0.25.tar.gz                 0              NONE      NONE
     54  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
    5556  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      NONE
    57   47    Storable                       Storable-2.15.tar.gz                     0              NONE      NONE
    58   48    IO::String                     IO-String-1.08.tar.gz                    0              NONE      NONE
    59   49    Date::Parse                    TimeDate-1.16.tar.gz                     0              NONE      NONE
    60   50    Digest::SHA1                   Digest-SHA1-2.11.tar.gz                  0              NONE      NONE
    61   51    DB_File                        DB_File-1.814.tar.gz                     0              NONE      NONE
    62   52    File::NFSLock                  File-NFSLock-1.20.tar.gz                 0              NONE      NONE
    63   53    Heap                           Heap-0.71.tar.gz                         0              NONE      NONE
    64   54    Module::Load::Conditional      Module-Load-Conditional-0.16.tar.gz      0              NONE      NONE
    65   55    IPC::Run                       IPC-Run-0.80.tar.gz                      0              NONE      NONE
    66   56    Cache                          Cache-2.04.tar.gz                        0              NONE      NONE
    67   57    IPC::Cmd                       IPC-Cmd-0.36.tar.gz                      0.36           NONE      NONE
     57  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
    6869  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      NONE
    70 # 60    File::ExtAttr                  File-ExtAttr-1.04.tar.gz                 0              NONE      NONE
    71   61    Text::Glob                     Text-Glob-0.08.tar.gz                    0.08           NONE      NONE
    72   62    Number::Compare                Number-Compare-0.01.tar.gz               0.01           NONE      NONE
    73   63    File::Find::Rule               File-Find-Rule-0.30.tar.gz               0.30           NONE      NONE
    74   64    Astro::FITS::CFITSIO           Astro-FITS-CFITSIO-1.05.tar.gz           0              NONE      NONE
    75   65    Test::More                     Test-Simple-0.74.tar.gz                  0.49           NONE      NONE
    76 # 66    Apache::DBI                    Apache-DBI-1.06.tar.gz                   0              NONE      NONE
    77 # 67    Apache2::SOAP                  Apache2-SOAP-0.72.tar.gz                 0              NONE      NONE
    78   68    Test::URI                      Test-URI-1.08.tar.gz                     0              NONE      NONE
    79 # 69    Sys::Statistics::Linux::DiskUsage Sys-Statistics-Linux-0.26.tar.gz      0              NONE      NONE
    80 # 70    Config::YAML                   Config-YAML-1.42.tar.gz                  0              NONE      NONE
    81 # 72    File::ExtAttr                  File-ExtAttr-1.07.tar.gz                 0              NONE      NONE
    82   73    DBI                            DBI-1.601.tar.gz                         0              NONE      NONE
    83   71    DBD::mysql                     DBD-mysql-4.006.tar.gz                   0              NONE      NONE
    84 # 74    Net::Server::Daemonize         Net-Server-0.97.tar.gz                   0.05           NONE      NONE
    85   75    File::Path                      File-Path-2.04.tar.gz                   0              NONE      NONE
    86   76    File::Mountpoint                File-Mountpoint-0.01.tar.gz             0.01           NONE      NONE
    87   77    Filesys::Df                     Filesys-Df-0.92.tar.gz                  0.92           NONE      NONE
    88   78    SQL::Interp                     SQL-Interp-1.06.tar.gz                  0              NONE      NONE
    89   79a   Mail::Send                      MailTools-2.04.tar.gz                   0              NONE      NONE
    90   79b   Log::Dispatch::Email::MailSend  Log-Dispatch-2.22.tar.gz                0              NONE      NONE
    91   80    Abstract::Meta::Class          Abstract-Meta-Class-0.13.tar.gz          0              NONE      NONE
    92   81    DBIx::Connection               DBIx-Connection-0.13.tar.gz              0              NONE      NONE
    93   82a   Test::Pod                      Test-Pod-1.40.tar.gz                     0              NONE      NONE
    94   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
    9596  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      NONE
    97   83    Test::Distribution             Test-Distribution-2.00.tar.gz            0              NONE      NONE
    98   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.