IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 23, 2008, 3:06:45 PM (18 years ago)
Author:
Paul Price
Message:

Adding additional statistics for diffs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippScripts/scripts/warp_skycell.pl

    r17760 r17787  
    3434    'outroot=s'         => \$outroot, # Output root name
    3535    'verbose'           => \$verbose,   # Print to stdout
    36     'no-update'         => \$no_update, # Don't update the database?
     36    'no-update'         => \$no_update, # Don't update the database?
    3737    'no-op'             => \$no_op, # Don't do any operations?
    3838    'save-temps'        => \$save_temps, # Save temporary files?
     
    5151$ipprc->define_camera($camera);
    5252
    53 my $STATS = 
    54    [   
     53my $STATS =
     54   [
    5555       #          PPSTATS KEYWORD         STATISTIC          WARPTOOL FLAG
    5656       { name => "ROBUST_MEDIAN",   type => "mean", flag => "-bg",         dtype => "float" },
    5757       { name => "ROBUST_STDEV",    type => "rms",  flag => "-bg_stdev",   dtype => "float" },
    58 #      { name => "DT_WARP",         type => "sum",  flag => "-dtime_warp", dtype => "float" },
     58       { name => "DT_WARP",         type => "sum",  flag => "-dtime_warp", dtype => "float" },
    5959       { name => "GOOD_PIXEL_FRAC", type => "mean", flag => "-good_frac",  dtype => "float" },
     60       { name => "RANGE.XMIN",      type => "mean", flag => "-xmin",       dtype => "int"   },
     61       { name => "RANGE.XMAX",      type => "mean", flag => "-xmax",       dtype => "int"   },
     62       { name => "RANGE.YMIN",      type => "mean", flag => "-ymin",       dtype => "int"   },
     63       { name => "RANGE.YMAX",      type => "mean", flag => "-ymax",       dtype => "int"   },
    6064   ];
    6165my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser
     
    6670my $pswarp = can_run('pswarp') or (warn "Can't find pswarp" and $missing_tools = 1);
    6771my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    68 if ($missing_tools) { 
     72if ($missing_tools) {
    6973    warn("Can't find required tools.");
    70     exit($PS_EXIT_CONFIG_ERROR); 
     74    exit($PS_EXIT_CONFIG_ERROR);
    7175}
    7276
    7377# Get list of component imfiles for exposure
    74 my $mdcParser = PS::IPP::Metadata::Config->new; # Parser for metadata config files
     78my $mdcParser = PS::IPP::Metadata::Config->new; # Parser for metadata config files
    7579my $imfiles;
    7680{
     
    7882    $command .= " -dbname $dbname" if defined $dbname;
    7983    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    80         run(command => $command, verbose => $verbose);
    81     unless ($success) {
    82         $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    83         &my_die("Unable to perform warptool -scmap: $error_code", $warp_id, $skycell_id, $tess_id, $error_code);
     84        run(command => $command, verbose => $verbose);
     85    unless ($success) {
     86        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     87        &my_die("Unable to perform warptool -scmap: $error_code", $warp_id, $skycell_id, $tess_id, $error_code);
    8488    }
    8589
    8690    my $metadata = $mdcParser->parse(join "", @$stdout_buf) or
    87         &my_die("Unable to parse metadata config doc", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
    88     $imfiles = parse_md_list($metadata) or 
    89         &my_die("Unable to parse metadata list", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
     91        &my_die("Unable to parse metadata config doc", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
     92    $imfiles = parse_md_list($metadata) or
     93        &my_die("Unable to parse metadata list", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
    9094}
    9195
    9296# Where do we get the astrometry source from?
    93 my $astromSource;               # The astrometry source
     97my $astromSource;               # The astrometry source
    9498{
    9599    my $command = "$ppConfigDump -camera $camera -dump-recipe PSWARP -";
    96100    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    97         run(command => $command, verbose => $verbose);
    98     unless ($success) {
    99         $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    100         &my_die("Unable to perform ppConfigDump: $error_code", $warp_id, $error_code);
     101        run(command => $command, verbose => $verbose);
     102    unless ($success) {
     103        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     104        &my_die("Unable to perform ppConfigDump: $error_code", $warp_id, $error_code);
    101105    }
    102106    my $metadata = $mdcParser->parse(join "", @$stdout_buf) or
    103         &my_die("Unable to parse metadata config doc", $warp_id, $PS_EXIT_PROG_ERROR);
     107        &my_die("Unable to parse metadata config doc", $warp_id, $PS_EXIT_PROG_ERROR);
    104108    $astromSource = metadataLookupStr($metadata, 'ASTROM.SOURCE');
    105109}
     
    128132my $wrote_astrom = 0;
    129133foreach my $imfile (@$imfiles) {
    130     my $image = $imfile->{uri}; # Image name
     134    my $image = $imfile->{uri}; # Image name
    131135    my $mask = $ipprc->filename("PPIMAGE.CHIP.MASK", $imfile->{chip_path_base}, $imfile->{class_id}); # Mask name
    132136    my $weight = $ipprc->filename("PPIMAGE.CHIP.WEIGHT", $imfile->{chip_path_base}, $imfile->{class_id}); # Mask name
     
    135139    &my_die("Couldn't find input file: $mask", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($mask);
    136140
    137     my $astrom;         # Astrometry file
     141    my $astrom;         # Astrometry file
    138142    if ($astromSource eq 'PSASTRO.OUTPUT.MEF') {
    139         $astrom = $ipprc->filename($astromSource, $imfile->{cam_path_base});
     143        $astrom = $ipprc->filename($astromSource, $imfile->{cam_path_base});
    140144    } elsif ($astromSource eq 'PSASTRO.OUTPUT') {
    141         my $chipRoot = $imfile->{chip_path_base};
    142         my $classID = $imfile->{class_id};
    143         $astrom = $ipprc->filename($astromSource, $chipRoot, $classID); # Astrometry file
     145        my $chipRoot = $imfile->{chip_path_base};
     146        my $classID = $imfile->{class_id};
     147        $astrom = $ipprc->filename($astromSource, $chipRoot, $classID); # Astrometry file
    144148    }
    145149
    146150    &my_die("Couldn't find input file: $astrom", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless defined $astrom and $ipprc->file_exists($astrom);
    147    
     151
    148152    print $imageFile  "$image\n";
    149153    print $maskFile   "$mask\n";
    150154    print $weightFile "$weight\n";
    151    
     155
    152156    if (!$wrote_astrom) {
    153         print $astromFile "$astrom\n";
    154         # XXX simplify this?  only ever have one file for astrometry (must be MEF)
    155         if ($astromSource eq 'PSASTRO.OUTPUT.MEF') {
    156             $wrote_astrom = 1;
    157         }
     157        print $astromFile "$astrom\n";
     158        # XXX simplify this?  only ever have one file for astrometry (must be MEF)
     159        if ($astromSource eq 'PSASTRO.OUTPUT.MEF') {
     160            $wrote_astrom = 1;
     161        }
    158162    }
    159163}
     
    165169
    166170# Run pswarp
    167 my $accept = 1;                 # Accept the skycell?
     171my $accept = 1;                 # Accept the skycell?
    168172unless ($no_op) {
    169173    my $command = "$pswarp";
     
    175179    $command .= " -stats $outputStats";
    176180    $command .= " -recipe PPSTATS WARPSTATS";
    177     $command .= " -psf";        # Turn on PSF determination
     181    $command .= " -psf";        # Turn on PSF determination
    178182    $command .= " -tracedest $traceDest -log $logDest";
    179183
    180184    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    181         run(command => $command, verbose => $verbose);
    182     unless ($success) {
    183         $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    184         &my_die("Unable to perform pswarp: $error_code", $warp_id, $skycell_id, $tess_id, $error_code);
     185        run(command => $command, verbose => $verbose);
     186    unless ($success) {
     187        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     188        &my_die("Unable to perform pswarp: $error_code", $warp_id, $skycell_id, $tess_id, $error_code);
    185189    }
    186190
     
    188192    &my_die("Couldn't find expected output file: $outputStats", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputStats);
    189193    # Get the statistics on the warped image
    190     my $statsFile;              # File handle
     194    my $statsFile;              # File handle
    191195    open $statsFile, $ipprc->file_resolve($outputStats) or die "Can't open statistics file $outputStats: $!\n";
    192196    my @contents = <$statsFile>; # Contents of file
     
    195199
    196200    my $metadata = $mdcParser->parse($contents)
    197         or &my_die("Unable to parse metadata config", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
     201        or &my_die("Unable to parse metadata config", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
    198202    $accept = metadataLookupBool($metadata, "ACCEPT");
    199203    if ($accept) {
    200         $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
    201        
    202         &my_die("Couldn't find expected output file: $outputImage", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputImage);
    203         &my_die("Couldn't find expected output file: $outputMask", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputMask);
    204         &my_die("Couldn't find expected output file: $outputWeight", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputWeight);
    205         &my_die("Couldn't find expected output file: $outputSources", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputSources);
    206         &my_die("Couldn't find expected output file: $outputPSF", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputPSF);
     204        $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $warp_id, $skycell_id, $tess_id, $PS_EXIT_PROG_ERROR);
     205
     206        &my_die("Couldn't find expected output file: $outputImage", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputImage);
     207        &my_die("Couldn't find expected output file: $outputMask", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputMask);
     208        &my_die("Couldn't find expected output file: $outputWeight", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputWeight);
     209        &my_die("Couldn't find expected output file: $outputSources", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputSources);
     210        &my_die("Couldn't find expected output file: $outputPSF", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputPSF);
    207211#    &my_die("Couldn't find expected output file: $outputBin1", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputBin1);
    208212#    &my_die("Couldn't find expected output file: $outputBin2", $warp_id, $skycell_id, $tess_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($outputBin2);
     
    218222
    219223    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    220         run(command => $command, verbose => $verbose);
    221     unless ($success) {
    222         $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    223         warn("Unable to perform warptool -addwarped: $error_code\n");
    224         exit($error_code);
     224        run(command => $command, verbose => $verbose);
     225    unless ($success) {
     226        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     227        warn("Unable to perform warptool -addwarped: $error_code\n");
     228        exit($error_code);
    225229    }
    226230}
     
    228232sub my_die
    229233{
    230     my $msg = shift;            # Warning message on die
    231     my $warp_id = shift;        # Warp identifier
    232     my $skycell_id = shift;     # Skycell identifier
    233     my $tess_id = shift;        # Tesselation identifier
    234     my $exit_code = shift;      # Exit code to add
     234    my $msg = shift;            # Warning message on die
     235    my $warp_id = shift;        # Warp identifier
     236    my $skycell_id = shift;     # Skycell identifier
     237    my $tess_id = shift;        # Tesselation identifier
     238    my $exit_code = shift;      # Exit code to add
    235239
    236240    warn($msg);
    237241    if (defined $warp_id and defined $skycell_id and defined $tess_id and not $no_update) {
    238         my $command = "$warptool -addwarped -warp_id $warp_id -skycell_id $skycell_id -tess_id $tess_id -code $exit_code";
    239         $command .= " -dbname $dbname" if defined $dbname;
     242        my $command = "$warptool -addwarped -warp_id $warp_id -skycell_id $skycell_id -tess_id $tess_id -code $exit_code";
     243        $command .= " -dbname $dbname" if defined $dbname;
    240244        run(command => $command, verbose => $verbose);
    241245    }
Note: See TracChangeset for help on using the changeset viewer.