IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 13104 for trunk/pswarp/src


Ignore:
Timestamp:
Apr 30, 2007, 6:24:33 PM (19 years ago)
Author:
Paul Price
Message:

Adding statistics generation and MD5 checksums for output. Replaced lots of configure.ac code with the IPP macros. Used to be building a library (why???), which has been removed.

Location:
trunk/pswarp/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/pswarp/src/Makefile.am

    r12505 r13104  
    1 
    2 lib_LTLIBRARIES = libpswarp.la
    3 libpswarp_la_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PSWARP_CFLAGS)
    4 
    51bin_PROGRAMS = pswarp
    6 pswarp_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PSWARP_CFLAGS)
    7 pswarp_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PSWARP_LIBS)
    8 pswarp_LDADD = libpswarp.la
     2pswarp_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PPSTATS_CFLAGS) $(PSWARP_CFLAGS)
     3pswarp_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PPSTATS_LIBS) $(PSWARP_LIBS)
    94
    105pswarp_SOURCES = \
    11         pswarp.c               
     6        pswarp.c                        \
     7        pswarpArguments.c               \
     8        pswarpCleanup.c                 \
     9        pswarpDataLoad.c                \
     10        pswarpDataSave.c                \
     11        pswarpDefine.c                  \
     12        pswarpDefineSkycell.c           \
     13        pswarpErrorCodes.c              \
     14        pswarpMapGrid.c                 \
     15        pswarpMatchRange.c              \
     16        pswarpParseCamera.c             \
     17        pswarpTransformReadout.c        \
     18        pswarpTransformReadout_Opt.c    \
     19        pswarpVersion.c           
    1220
    13 libpswarp_la_SOURCES = \
    14 pswarpArguments.c          \
    15 pswarpCleanup.c            \
    16 pswarpDataLoad.c           \
    17 pswarpDataSave.c           \
    18 pswarpDefine.c             \
    19 pswarpDefineSkycell.c      \
    20 pswarpErrorCodes.c         \
    21 pswarpMapGrid.c            \
    22 pswarpMatchRange.c         \
    23 pswarpParseCamera.c        \
    24 pswarpTransformReadout.c   \
    25 pswarpTransformReadout_Opt.c \
    26 pswarpVersion.c           
    27 
    28 include_HEADERS = \
     21noinst_HEADERS = \
    2922        pswarp.h \
    3023        pswarpErrorCodes.h
  • trunk/pswarp/src/pswarpArguments.c

    r12995 r13104  
    2626
    2727    // chip selection is used to limit chips to be processed
    28     if ((N = psArgumentGet (argc, argv, "-chip"))) {
    29         psArgumentRemove (N, &argc, argv);
    30         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", argv[N]);
    31         psArgumentRemove (N, &argc, argv);
     28    if ((N = psArgumentGet(argc, argv, "-chip"))) {
     29        psArgumentRemove(N, &argc, argv);
     30        psMetadataAddStr(config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING,
     31                         "Only process these chips", argv[N]);
     32        psArgumentRemove(N, &argc, argv);
     33    }
     34
     35    // Statistics file
     36    if ((N = psArgumentGet(argc, argv, "-stat"))) {
     37        psArgumentRemove(N, &argc, argv);
     38        psMetadataAddStr(config->arguments, PS_LIST_TAIL, "STATS", PS_DATA_STRING,
     39                         "Filename for statistics of output image", argv[N]);
     40        psArgumentRemove(N, &argc, argv);
    3241    }
    3342
  • trunk/pswarp/src/pswarpDataSave.c

    r12771 r13104  
    1 # include "pswarp.h"
     1#include <ppStats.h>
     2#include "pswarp.h"
    23
    34// this loop loads the data from the input files and selects the
     
    78
    89// all of the different astrometry analysis modes use the same data load loop
    9 bool pswarpDataSave (pmConfig *config) {
     10bool pswarpDataSave(pmConfig *config) {
    1011
    1112    pmChip *chip;
     
    1819        psError(PSWARP_ERR_CONFIG, true, "Can't find input data!\n");
    1920        return false;
     21    }
     22
     23    bool mdok;                          // Status of MD lookup
     24    const char *statsName = psMetadataLookupStr(&mdok, config->arguments, "STATS"); // Filename for statistics
     25    psMetadata *stats = NULL;           // Container for statistics
     26    FILE *statsFile = NULL;             // File stream for statistics
     27    if (mdok && statsName && strlen(statsName) > 0) {
     28        statsFile = fopen(statsName, "w");
     29        if (!statsFile) {
     30            psError(PS_ERR_IO, true, "Unable to open statistics file %s for writing.\n", statsName);
     31            return false;
     32        }
     33        stats = psMetadataAlloc();
    2034    }
    2135
     
    4054            pmFPAfileIOChecks (config, view, PM_FPA_BEFORE);
    4155
    42             // process each of the readouts
    43             while ((readout = pmFPAviewNextReadout (view, input->fpa, 1)) != NULL) {
     56            // Perform statistics on the cell
     57            if (stats) {
     58                bool mdok;              // Status of MD lookup
     59                pmFPAfile *output = psMetadataLookupPtr(&mdok, config->files, "PSWARP.OUTPUT");
     60                if (!mdok || !output) {
     61                    psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find file PSWARP.OUTPUT.\n");
     62                    psFree(view);
     63                    psFree(stats);
     64                    return false;
     65                }
     66                ppStats(stats, output->fpa, view, config);
     67            }
     68
     69            pmHDU *hdu = pmHDUFromCell(cell); // HDU that owns the cell
     70
     71            // Process readouts
     72            while ((readout = pmFPAviewNextReadout(view, input->fpa, 1)) != NULL) {
    4473                pmFPAfileIOChecks (config, view, PM_FPA_BEFORE);
    45                 if (! readout->data_exists) { continue; }
     74                if (!readout->data_exists) {
     75                    continue;
     76                }
    4677
    4778                // pswarpConvertReadout (readout, config);
     79
     80                // Add MD5 information for readout
     81                const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME");
     82                const char *cellName = psMetadataLookupStr(NULL, cell->concepts, "CELL.NAME");
     83                psString headerName = NULL; // Header name for MD5
     84                psStringAppend(&headerName, "MD5_%s_%s_%d", chipName, cellName, view->readout);
     85                psVector *md5 = psImageMD5(readout->image); // md5 hash
     86                psString md5string = psMD5toString(md5); // String
     87                psFree(md5);
     88                psMetadataAddStr(hdu->header, PS_LIST_TAIL, headerName, PS_META_REPLACE,
     89                                 "Image MD5", md5string);
     90                psFree(md5string);
     91                psFree(headerName);
    4892
    4993                pmFPAfileIOChecks (config, view, PM_FPA_AFTER);
     
    59103    pmFPAfileActivate (config->files, true, NULL);
    60104
     105    // Write out summary statistics
     106    if (stats) {
     107        const char *statsMDC = psMetadataConfigFormat(stats);
     108        if (!statsMDC || strlen(statsMDC) == 0) {
     109            psError(PS_ERR_IO, false, "Unable to get statistics MDC file.\n");
     110            psFree(stats);
     111            fclose(statsFile);
     112            return false;
     113        }
     114        fprintf(statsFile, "%s", statsMDC);
     115        psFree((void*)statsMDC);
     116        fclose(statsFile);
     117
     118        psFree(stats);
     119    }
     120
    61121    return true;
    62122}
Note: See TracChangeset for help on using the changeset viewer.