IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 32553


Ignore:
Timestamp:
Oct 14, 2011, 1:17:03 PM (15 years ago)
Author:
bills
Message:

more progress on psvideophot. Added program dumpvideo to dump a given videocell and it's
associated video extension table

Location:
trunk/psvideophot/src
Files:
1 added
3 edited

Legend:

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

    r31713 r32553  
    1 bin_PROGRAMS = psvideophot
     1bin_PROGRAMS =  psvideophot \
     2                dumpvideo
    23
    34noinst_HEADERS = \
     
    4041        psvideophotVersion.c
    4142
     43dumpvideo_CFLAGS = $(PSVIDEOPHOT_CFLAGS) $(PPSTATS_CFLAGS) $(PSASTRO_CFLAGS) $(PSPHOT_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS)
     44dumpvideo_LDFLAGS = $(PSVIDEOPHOT_LIBS) $(PSASTRO_LIBS) $(PPSTATS_LIBS) $(PSPHOT_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
     45dumpvideo_SOURCES = \
     46        dumpvideo.c
     47
    4248CLEANFILES = *~
    4349
  • trunk/psvideophot/src/psvideoLoop.c

    r31813 r32553  
    4444    }
    4545
     46    psString class_id = psMetadataLookupStr(&status, config->arguments, "CLASS_ID");
     47    psString cell_id = psMetadataLookupStr(&status, config->arguments, "CELL_ID");
     48
    4649
    4750    pmConfigCamerasCull(config, NULL);
     
    5962    while ((chip = pmFPAviewNextChip(view, input->fpa, 1)) != NULL) {
    6063        psLogMsg ("psvideophotLoop", 4, "Chip %d: %x %x\n", view->chip, chip->file_exists, chip->process);
     64        psString chipName = psMetadataLookupStr(&status, chip->concepts, "CHIP.NAME");
     65        if (strcmp(chipName, class_id)) {
     66            continue;
     67        }
    6168        if (!chip->process || !chip->file_exists) {
    62             continue;
     69            ESCAPE("target chip has no data");
    6370        }
    6471        if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) {
    6572            ESCAPE("load failure for Chip");
    6673        }
     74        (void) class_id;
    6775
    6876        double threshold = THRESHOLD;
     
    7280        while ((cell = pmFPAviewNextCell(view, input->fpa, 1)) != NULL) {
    7381            psLogMsg ("psvideophotLoop", 5, "Cell %d: %x %x\n", view->cell, cell->file_exists, cell->process);
     82            psString cellName = psMetadataLookupStr(&status, cell->concepts, "CELL.NAME");
     83            if (strcmp(cellName, cell_id)) {
     84                continue;
     85            }
    7486            if (!cell->process || !cell->file_exists) {
    75                 continue;
     87                ESCAPE("target cell has no data");
    7688            }
    7789            if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) {
    7890                ESCAPE("load failure for Cell");
    7991            }
     92
     93            psLogMsg("psvideophotLoop", 1, "Found target cell %s %d. %ld readouts\n", cellName, view->cell, cell->readouts->n);
    8094
    8195            // Put version information into the header
     
    87101
    88102            if (cell->readouts->n <2) {
    89               continue;
     103              psLogMsg("psvideophotLoop", 1, "cell %s has only %ld readouts\n", cellName, cell->readouts->n);
     104              ESCAPE("invalid video Cell");
    90105            }
    91 
    92             psString cellName = psMetadataLookupStr(&status, cell->concepts, "CELL.NAME");
    93             psLogMsg("psvideophotLoop", 1, "Found video cell %s %d\n", cellName, view->cell);
    94106
    95107            // get the position of this cell on the chip
     
    114126
    115127            // go find the video extension data
    116             psString video_extension_name = NULL;
    117             psStringAppend(&video_extension_name, "video_table_%s", cellName);
     128            psString video_extension_name = psMetadataLookupStr(&status, config->arguments, "VIDEOEXTNAME");
     129            if (!video_extension_name) {
     130                psStringAppend(&video_extension_name, "video_table_%s", cellName);
     131            }
    118132            psArray *video_table = readVideoTable(input, video_extension_name);
    119133            if (!video_table) {
     
    121135                ESCAPE("invalid image file");
    122136            }
     137            psFree(video_extension_name);
    123138            psMetadataAddArray(cell->analysis, PS_LIST_TAIL, "VIDEO_DATA", 0, "", video_table);
    124139
  • trunk/psvideophot/src/psvideophotArguments.c

    r31290 r32553  
    66
    77static void usage (void) {
    8     fprintf(stderr, "USAGE: psvideophot [-file INPUT.fits] [-list INPUT.txt] OUTPUT\n\n");
     8    fprintf(stderr, "USAGE: psvideophot [-file INPUT.fits] [-list INPUT.txt] OUTPUT -class_id CLASS_ID -cell_id CELL_ID\n\n");
    99    fprintf(stderr, "Optional arguments:\n");
    1010    fprintf(stderr, "\t-stats STATS.mdc: Output statistics into STATS.mdc\n");
    11     fprintf(stderr, "\t-isfringe: The input image contains fringe data.\n");
    12     fprintf(stderr, "\t-isdark: The input image contains dark data.\n");
    13     fprintf(stderr, "\t-usemask MASKVAL: Use this mask value (override recipe).\n");
    14     fprintf(stderr, "\t-chip CHIPNUM: Only process this chip number.\n");
    15     fprintf(stderr, "\t-norm VALUE: Divide through by this value when done.\n");
    16     fprintf(stderr, "\t-normlist file.mdc: normalizations by class_id.\n");
    17     fprintf(stderr, "\t-video: process video cells\n");
     11    fprintf(stderr, "\t-video_extname VIDEOEXTNAME: EXTNAME for video table\n");
    1812    fprintf(stderr, "\n");
    1913    fprintf(stderr, "Input options (single file / file list):\n");
    20     fprintf(stderr, "\t-noisemap/-noisemaplist: Noise Map image.\n");
    21     fprintf(stderr, "\t-bias/-biaslist: Bias image.\n");
    22     fprintf(stderr, "\t-dark/-darklist: Dark image.\n");
    23     fprintf(stderr, "\t-shutter/-shutterlist: Shutter image.\n");
    24     fprintf(stderr, "\t-flat/-flatlist: Flat image.\n");
    25     fprintf(stderr, "\t-mask/-masklist: Mask image.\n");
    26     fprintf(stderr, "\t-fringe/-fringelist: Fringe image and data.\n");
    27     fprintf(stderr, "\t-linearity/-linearlist: linearity correction file.\n");
    2814    fprintf(stderr, "\n");
    2915    exit (2);
     
    6349    // psMetadata *options = psMetadataAlloc ();
    6450    // psMetadataAddPtr (config->arguments, PS_LIST_TAIL, "PSVIDEOPHOT.OPTIONS",  PS_DATA_METADATA, "", options);
     51
     52    if ((argnum = psArgumentGet(argc, argv, "-class_id"))) {
     53        psArgumentRemove(argnum, &argc, argv);
     54        psMetadataAddStr(config->arguments, PS_LIST_TAIL, "CLASS_ID", PS_META_REPLACE,
     55                         "Chip to process", argv[argnum]);
     56        psArgumentRemove(argnum, &argc, argv);
     57    } else {
     58        fprintf(stderr, "-class_id is required\n");
     59        usage();
     60    }
     61    if ((argnum = psArgumentGet(argc, argv, "-cell_id"))) {
     62        psArgumentRemove(argnum, &argc, argv);
     63        psMetadataAddStr(config->arguments, PS_LIST_TAIL, "CELL_ID", PS_META_REPLACE,
     64                         "Cell to process", argv[argnum]);
     65        psArgumentRemove(argnum, &argc, argv);
     66    } else {
     67        fprintf(stderr, "-cell_id is required\n");
     68        usage();
     69    }
     70    if ((argnum = psArgumentGet(argc, argv, "-video_extname"))) {
     71        psArgumentRemove(argnum, &argc, argv);
     72        psMetadataAddStr(config->arguments, PS_LIST_TAIL, "VIDEOEXTNAME", PS_META_REPLACE,
     73                         "EXTNAME of video table", argv[argnum]);
     74        psArgumentRemove(argnum, &argc, argv);
     75    }
    6576
    6677    if ((argnum = psArgumentGet(argc, argv, "-stats"))) {
     
    117128    // the input file is a required argument; if not found, we will exit
    118129    pmConfigFileSetsMD (config->arguments, &argc, argv, "INPUT", "-file", "-list");
     130    pmConfigFileSetsMD (config->arguments, &argc, argv, "ASTROM", "-astrom", "-astromlist");
    119131
    120132    // if these command-line options are supplied, load the file name lists into config->arguments
Note: See TracChangeset for help on using the changeset viewer.