IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34839


Ignore:
Timestamp:
Dec 18, 2012, 5:57:19 AM (14 years ago)
Author:
eugene
Message:

merge changes from trunk

Location:
branches/eam_branches/ipp-20121130
Files:
58 edited
6 copied

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20121130/Nebulous-Server/bin/neb-host

    r32919 r34839  
    141141$dbh->commit;
    142142
    143 my $format  = "%-15s %-15s %-7s %-8s %-9s %-5s %s\n";
    144 my @columns = qw(host name mounted allocate available xattr note);
     143my $format  = "%-15s %-15s %-7s %-8s %-9s %-5s %15s %s\n";
     144my @columns = qw(host name mounted allocate available xattr last_modified note);
    145145printf($format, @columns);
    146146
  • branches/eam_branches/ipp-20121130/Nebulous-Server/bin/neb-voladm

    r32615 r34839  
    6868        if (defined $allocate and $allocate !~ m/^[01]$/)
    6969        or (defined $available and $available !~ m/^[01]$/)
    70         or (defined $xattr and $xattr !~ m/^[012]$/);
     70        or (defined $xattr and $xattr !~ m/^[0123]$/);
    7171}
    7272
  • branches/eam_branches/ipp-20121130/Nebulous-Server/lib/Nebulous/Server/SQL.pm

    r33826 r34839  
    389389            mountedvol.vol_id IS NOT NULL as mounted,
    390390            v.cab_id,
     391            v.last_modified,
    391392            v.note
    392393        FROM volume AS v
     
    694695    cab_id INT,
    695696    note VARCHAR(255),
     697    last_modified TIMESTAMP NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, # SC: Added by Haydn with ALTER TABLE(?) on 2012-12-03
    696698    PRIMARY KEY(vol_id),
    697699    UNIQUE KEY(name),
  • branches/eam_branches/ipp-20121130/ippScripts/Build.PL

    r33627 r34839  
    128128        scripts/listvideocells.pl
    129129        scripts/skycalibration.pl
     130        scripts/regenerate_background.pl
    130131    )],
    131132    dist_abstract => 'Scripts for running the Pan-STARRS IPP',
  • branches/eam_branches/ipp-20121130/ippScripts/MANIFEST

    r31435 r34839  
    4646scripts/skycell_jpeg.pl
    4747scripts/lap_science.pl
     48scripts/regenerate_background.pl
    4849t/00_distribution.t
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/chip_imfile.pl

    r33052 r34839  
    150150$outputStats   = prepare_output("PPIMAGE.STATS",         $outroot, $class_id, 1);
    151151my $do_binned_images = 1;
     152
    152153if ($run_state eq 'new') {
    153154    # prepare the files that are only created for a new run
     
    586587
    587588# check whether psphot outputs should be regenerated.
    588 # Whether we need to or not is a somewhat complicated question.
     589# Whether we need to or not was a somewhat complicated question. Since we clean cmfs now we only rerun
     590# photometry if the psf file has gone missing since it is needed to run warps
     591
    589592sub rerun_photometry
    590593{
     
    594597                    or &my_die("Missing entry from camera config: PSPHOT.OUTPUT", $exp_id, $chip_id, $class_id, $PS_EXIT_CONFIG_ERROR);
    595598
     599    my $update_sources_if_gone = 0; # set this to regenerate sources if gone.
     600                                    # We no longer do this as of 2012-12
    596601    my $make_sources = 0;
    597602    my $sources_available = 0;
     
    599604        $sources_available = 1;
    600605    } else {
    601         carp "WARNING: photometry sources file $outputSources is not available";
    602         my $gone;
    603         if (storage_object_exists($outputSources, \$gone)) {
    604             # check whether the file is permanantely or temporarily gone
    605             if ($gone) {
    606                 carp "WARNING: photometry sources storage object exists but all instances are permanently gone";
     606        if ($update_sources_if_gone) {
     607            carp "WARNING: photometry sources file $outputSources is not available";
     608            my $gone;
     609            if (storage_object_exists($outputSources, \$gone)) {
     610                # check whether the file is permanantely or temporarily gone
     611                if ($gone) {
     612                    carp "WARNING: photometry sources storage object exists but all instances are permanently gone";
     613                    $make_sources = 1;
     614                }
     615            } else {
     616                # storage object must have been deleted
    607617                $make_sources = 1;
    608618            }
    609         } else {
    610             # storage object must have been deleted
    611             $make_sources = 1;
    612619        }
    613620    }
     
    616623    my $psf_available = 0;
    617624    my $outputPsf = $ipprc->filename("PSPHOT.PSF.SAVE",       $outroot, $class_id)
    618                     or &my_die("Missing entry from camera config: PSPHOT.PSF.SAVE", $exp_id, $chip_id, $class_id, $PS_EXIT_CONFIG_ERROR);
     625                    or &my_die("Missing entry from camera config: PSPHOT.PSF.SAVE",
     626                                $exp_id, $chip_id, $class_id, $PS_EXIT_CONFIG_ERROR);
     627
    619628    if ($ipprc->file_exists($outputPsf)) {
    620629        $psf_available = 1;
     
    638647    }
    639648
    640     # if either of the files are gone rerun photometry unless the other file is temporarily not available
    641 
    642     if (!$sources_available && !$make_sources) {
    643         # destreak will die if the sources is not available
    644         &my_die("PSPHOT.SOURCES is missing but we cannot regenerate it", $exp_id, $chip_id, $class_id, $PS_EXIT_SYS_ERROR);
    645     }
     649    if ($update_sources_if_gone) {
     650        if (!$sources_available && !$make_sources) {
     651            # destreak will die if the sources is not available
     652            # but magic is dead....
     653            &my_die("PSPHOT.SOURCES is missing but we cannot regenerate it", $exp_id, $chip_id, $class_id, $PS_EXIT_SYS_ERROR);
     654        }
     655    }
     656
    646657    if (!$psf_available && !$make_psf) {
    647658        # warp updates need the psf file
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/destreak_restore_camera.pl

  • branches/eam_branches/ipp-20121130/ippScripts/scripts/detrend_process_imfile.pl

    r33666 r34839  
    2727my $ppImage = can_run('ppImage') or (warn "Can't find ppImage" and $missing_tools = 1);
    2828my $ppStatsFromMetadata = can_run('ppStatsFromMetadata') or (warn "Can't find ppStatsFromMetadata" and $missing_tools = 1);
     29my $nebrepair = can_run('neb-repair') or (warn "Can't find neb-repair" and $missing_tools = 1);
     30
    2931if ($missing_tools) {
    3032    warn("Can't find required tools.");
     
    124126# Run ppImage
    125127unless ($no_op) {
     128    my $repair_cmd = "$nebrepair $input_uri";
     129    my ($repair_success, $repair_error_code, $repair_full_buf, $repair_stdout_buf, $repair_stderr_buf ) = run(command => $repair_cmd, verbose => $verbose);
     130    unless ($repair_success) {
     131        &my_die("Unable to attempt repair: $input_uri $repair_error_code", $det_id, $exp_id, $class_id $PS_EXIT_SYS_ERROR);
     132    }
     133
     134
    126135    my $command = "$ppImage -file $input_uri $outroot";
    127136    $command .= " -recipe PPIMAGE $ppimage_recipe";
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/ipp_apply_burntool_single.pl

  • branches/eam_branches/ipp-20121130/ippScripts/scripts/ipp_cleanup.pl

    r33664 r34839  
    1818
    1919# Parse the command-line arguments
    20 my ($stage, $camera, $stage_id, $mode, $path_base, $dbname, $verbose, $no_op, $helplist, $logfile);
     20my ($stage, $camera, $stage_id, $mode, $path_base, $dbname, $verbose, $no_op, $helplist, $logfile, $check_all);
     21my $very_verbose = 0;
     22
     23# this gets set to 1 the first time we set the corresponding destreak run to be cleaned
     24#my $ds_done = 0;
     25# magic is dead
     26my $ds_done = 1;
     27
    2128GetOptions('stage=s'        => \$stage,     # which analysis stage to clean?
    2229           'camera|i=s'     => \$camera,    # user-supplied camera name
     
    2431           'mode|m=s'       => \$mode,      # cleanup mode (clean / purge)
    2532           'path_base=s'    => \$path_base, # basename for files
     33           'check-all'      => \$check_all, # if set clean all chips regardless of data_state
    2634           'dbname|d=s'     => \$dbname,    # Database name
    2735           'verbose'        => \$verbose,   # Print to stdout
     
    5664$ipprc->redirect_output($logfile) or
    5765        &my_die("Unable to redirect ouput", $stage, $stage_id, $PS_EXIT_UNKNOWN_ERROR) if $logfile;
     66
     67
     68my $bzip2 = can_run('bzip2') or die 'cannot find bzip2\n';
    5869
    5970# set this to 1 to enable checking for files on dead nodes
     
    91102    # this stage uses 'chiptool'
    92103    my $chiptool = can_run('chiptool') or die "Can't find chiptool";
     104    my $censorObjects = can_run('censorObjects') or die "Can't find censorObjects";
    93105
    94106    # Get list of component imfiles
     
    96108    my $imfiles;                      # Array of component files
    97109    my $command = "$chiptool -pendingcleanupimfile -chip_id $stage_id"; # Command to run
     110    $command .= ' -all' if ($check_all);
    98111    $command .= " -dbname $dbname" if defined $dbname;
    99     my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $verbose);
     112
     113    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf )
     114        = run(command => $command, verbose => $very_verbose);
    100115    unless ($success) {
    101116        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     
    114129        unless ($success) {
    115130            $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    116             &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code);
     131            &my_die("Unable to perform chiptool -processedimfile: $error_code", "chip", $stage_id, $error_code);
    117132        }
    118133        exit 0;
     
    123138        &my_die("Unable to parse metadata config doc", "chip", $stage_id, $PS_EXIT_PROG_ERROR);
    124139
     140    my $numchips = scalar @$imfiles;
     141    print "Found $numchips to clean\n";
     142
     143    my $clean_sources = 0;
     144    if ((scalar @$imfiles > 0) and ($mode eq 'goto_cleaned')) {
     145        # go and find the smf file(s) for the associated camRun and check the status of the file
     146        # if a good one is found we have the sources for this chipRun and thus can clean the cmfs
     147        my $command = "$chiptool -listrun -chip_id $stage_id";
     148        $command .= " -dbname $dbname" if defined $dbname;
     149        my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $very_verbose);
     150        unless ($success) {
     151            $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     152            &my_die("Unable to perform chiptool -listrun: $error_code", "chip", $stage_id, $error_code);
     153        }
     154        my $entries = $mdcParser->parse_list(join "", @$stdout_buf) or
     155            &my_die("Unable to parse metadata config doc", "chip", $stage_id, $PS_EXIT_PROG_ERROR);
     156        my $good_smf = 0;
     157        foreach my $entry (@$entries) {
     158            my $camRun_state = $entry->{camRun_state};
     159            next if $camRun_state  ne 'full';
     160            my $cam_id = $entry->{cam_id};
     161            if (!$cam_id) {
     162                carp('no cam_id for listrun entry');
     163                next;
     164            }
     165            my $cam_path_base = $entry->{cam_path_base};
     166            if ( !defined $cam_path_base ) {
     167                carp("no path_base for $cam_id\n");
     168                next;
     169            }
     170
     171            # XXX: This assumes that the filerules are filerules-split
     172            my $smf =  $ipprc->filename("PSASTRO.OUTPUT", $cam_path_base);
     173            if (!$ipprc->file_exists($smf)) {
     174                carp("smf for $cam_path_base not found");
     175                next;
     176            }
     177            # we run the program censorObjects in the check mode
     178            # If this program succeeds the smf is a valid fits file and each of the
     179            # extensions was succesfully read.
     180            # XXX: create a new program outside of magic that performs this check
     181
     182            my $command = "$censorObjects -checkinputonly -file $smf";
     183            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     184                                        run(command => $command, verbose => $very_verbose);
     185            unless ($success) {
     186                $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     187                print STDERR "censorObjects failed:\n";
     188                print STDERR "\nSTDOUT:\n" . join "", @$stdout_buf;
     189                print STDERR "\nSTDERR:\n" . join "", @$stderr_buf;
     190                &my_die("Unable to perform censorObjects -checkinputonly: $error_code", "chip", $stage_id, $error_code);
     191            }
     192            $good_smf++;
     193        }
     194        if ($good_smf) {
     195            # we have a good one so we can clean the sources
     196            $clean_sources = 1;
     197            print "Found $good_smf good smf files will clean sources\n";
     198        } else {
     199            print "Unable to find good smf file will NOT clean sources\n";
     200        }
     201    }
     202
    125203    # loop over all of the imfiles, determine the path_base and class_id for each
     204    my $num_errors = 0;
    126205    foreach my $imfile (@$imfiles) {
    127206        my $class_id = $imfile->{class_id};
    128207        my $path_base = $imfile->{path_base};
     208        my $data_state = $imfile->{data_state};
    129209        my $status = 1;
    130210        $status = 0 unless defined $path_base and $path_base ne "NULL";
    131211
    132         my $poor_quality = $imfile->{quality} > 0;
     212        my $quality = $imfile->{quality};
     213        my $good_quality = ($quality == 0);
     214
     215        print "Starting cleanup for $class_id\n";
    133216
    134217        # don't clean up unless the data needed to update is available
    135218        # modes goto_purged and goto_scrubbed will remove files even if the config is non-existent
    136219        # goto_scrubbed now requires the config file to not exist.
    137         if ($status and !$poor_quality) {
     220        if ($status and $good_quality) {
    138221            if ($mode eq "goto_cleaned") {
    139222                my $config_file = $ipprc->filename("PPIMAGE.CONFIG", $path_base, $class_id);
    140223
    141224                unless ($ipprc->file_exists($config_file)) {
     225                    my $fault = $imfile->{fault};
     226
    142227                    if (file_gone($config_file)) {
    143                         print STDERR "forcing cleanup for chipRun $stage_id $class_id "
     228                        # config file was lost. Clean up. If the chip is ever updated a new config
     229                        # file will be created
     230                        print STDERR "forcing cleanup chip $stage_id $class_id fault: $fault quality: $quality"
    144231                            . " because config file ($config_file) is gone\n";
     232                    } elsif ($fault == 0 and $quality == 0) {
     233                            print STDERR "skipping cleaning up chip $stage_id $class_id fault: $fault quality: $quality"
     234                                . " because config file ($config_file) is missing\n";
     235                            $status = 0;
    145236                    } else {
    146                         print STDERR "skipping cleanup for chipRun $stage_id $class_id "
    147                             . " because config file ($config_file) is missing\n";
    148                         $status = 0;
     237                            # config file is missing but this is a bad chip anyways so clean it
     238                            print STDERR "cleaning up chip $stage_id $class_id fault: $fault quality: $quality"
     239                                . " even though config file ($config_file) is missing\n";
    149240                    }
    150241                }
     
    154245
    155246                if ($ipprc->file_exists($config_file)) {
    156                     print STDERR "skipping scrubbed for chipRun $stage_id $class_id "
     247                    print STDERR "skipping scrubbed for chip $stage_id $class_id "
    157248                        . " because config file ($config_file) is present\n";
    158249                    $status = 0;
     
    165256            my @files = ();
    166257
    167             # delete the temporary image datafiles
    168 #            addFilename (\@files, "PPIMAGE.OUTPUT", $path_base, $class_id);
    169 #            addFilename (\@files, "PPIMAGE.OUTPUT.MASK", $path_base, $class_id);
    170 #            addFilename (\@files, "PPIMAGE.OUTPUT.VARIANCE", $path_base, $class_id);
    171258            addFilename (\@files, "PPIMAGE.CHIP", $path_base, $class_id, 1);
    172259            addFilename (\@files, "PPIMAGE.CHIP.MASK", $path_base, $class_id, 1);
    173260            addFilename (\@files, "PPIMAGE.CHIP.VARIANCE", $path_base, $class_id, 1);
    174261            addFilename (\@files, "PPIMAGE.PATTERN", $path_base, $class_id, 0);
     262            if ($clean_sources) {
     263                addFilename (\@files, "PSPHOT.OUTPUT", $path_base, $class_id);
     264                addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id);
     265            }
    175266            if ($mode eq "goto_purged") {
    176267                # additional files to remove for 'purge' mode
     268                if (!$clean_sources) {
     269                    # these weren't added above but we do want to clean it
     270                    addFilename (\@files, "PSPHOT.OUTPUT", $path_base, $class_id);
     271                    addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id);
     272                }
     273               
     274                # background model is needed to build stack background images so we do not remove it
     275                # addFilename (\@files, "PSPHOT.BACKMDL", $path_base, $class_id);
     276
     277                addFilename (\@files, "PSPHOT.PSF.SAVE", $path_base, $class_id);
    177278                addFilename (\@files, "PPIMAGE.OUTPUT.FPA1", $path_base, $class_id);
    178279                addFilename (\@files, "PPIMAGE.OUTPUT.FPA2", $path_base, $class_id);
    179                 addFilename (\@files, "PPIMAGE.BIN1", $path_base, $class_id);          # clean?
    180                 addFilename (\@files, "PPIMAGE.BIN2", $path_base, $class_id);          # clean?
     280                addFilename (\@files, "PPIMAGE.BIN2", $path_base, $class_id);
    181281                addFilename (\@files, "PPIMAGE.JPEG1", $path_base, $class_id);
    182282                addFilename (\@files, "PPIMAGE.JPEG2", $path_base, $class_id);
    183                 addFilename (\@files, "PPIMAGE.STATS", $path_base, $class_id);         #clean?
     283                addFilename (\@files, "PPIMAGE.STATS", $path_base, $class_id);
    184284                addFilename (\@files, "PPIMAGE.CONFIG", $path_base, $class_id);
    185285            }
     
    188288            $status = &delete_files (\@files);
    189289        }
     290        bzip2_file("LOG.IMFILE", $path_base, $class_id);
     291        bzip2_file("LOG.IMFILE.UPDATE", $path_base, $class_id);
    190292
    191293        if ($status)  {
     294            my $update_chip = 1;
    192295            my $command = "$chiptool -chip_id $stage_id -class_id $class_id";
    193296            if ($mode eq "goto_purged") {
    194297                $command .= " -topurgedimfile";
     298                if ($data_state eq 'purged') {
     299                    $update_chip = 0;
     300                }
    195301            }
    196302            elsif ($mode eq "goto_cleaned") {
    197303                $command .= " -tocleanedimfile";
     304                if ($data_state eq 'cleaned') {
     305                    $update_chip = 0;
     306                }
    198307            }
    199308            elsif ($mode eq "goto_scrubbed") {
    200309                $command .= " -toscrubbedimfile";
    201             }
    202 
    203             $command .= " -dbname $dbname" if defined $dbname;
    204 
    205             my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    206                     run(command => $command, verbose => $verbose);
    207             unless ($success) {
    208                 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    209                 &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code);
    210             }
    211 
    212             set_destreak_goto_cleaned();
    213 
     310                if ($data_state eq 'scrubbed') {
     311                    $update_chip = 0;
     312                }
     313            }
     314
     315            if ($update_chip) {
     316                $command .= " -dbname $dbname" if defined $dbname;
     317
     318                my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     319                        run(command => $command, verbose => $verbose);
     320                unless ($success) {
     321                    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     322                    &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code);
     323                }
     324                set_destreak_goto_cleaned();
     325            }
    214326        } else {
     327            $num_errors++;
    215328
    216329            # if an error happens for one chip, the chipRun will stay in goto_*, but the chips will go to error_* (matching the goto_*)
     
    218331            $command .= " -dbname $dbname" if defined $dbname;
    219332
    220 if (0) {
    221         # XXX Don't set components to error cleaned anymore
    222333            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    223334                    run(command => $command, verbose => $verbose);
     
    226337                &my_die("Unable to perform chiptool: $error_code", "chip", $stage_id, $error_code);
    227338            }
    228 }
    229339
    230340            # We want to flag the run as well, to avoid attempting to reprocess the same data over and over again.
     
    241351        }
    242352    }
     353    print "Cleanup completed for chip_id $stage_id.";
     354    print " num_errors: $num_errors" if $num_errors;
     355    print "\n";
    243356    exit 0;
    244357}
     
    350463    my $skyfiles;                      # Array of component files
    351464    my $command = "$warptool -pendingcleanupskyfile -warp_id $stage_id"; # Command to run
     465    $command .= ' -all' if $check_all;
    352466    $command .= " -dbname $dbname" if defined $dbname;
    353467    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    354             run(command => $command, verbose => $verbose);
     468            run(command => $command, verbose => $very_verbose);
    355469    unless ($success) {
    356470        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     
    378492        &my_die("Unable to parse metadata config doc", "warp", $stage_id, $PS_EXIT_PROG_ERROR);
    379493
     494    my $numskycells = scalar @$skyfiles;
     495    print "Found $numskycells to clean\n";
     496
    380497    my @files = ();
     498    my $num_errors = 0;
    381499    foreach my $skyfile (@$skyfiles) {
    382500        my $path_base = $skyfile->{path_base};
    383501        my $skycell_id = $skyfile->{skycell_id};
     502        my $data_state = $skyfile->{data_state};
    384503
    385504        my $status = 1;
     
    391510
    392511                unless ($ipprc->file_exists($config_file)) {
     512                    my $fault = $skyfile->{fault};
     513                    my $quality = $skyfile->{quality};
    393514                    if (file_gone($config_file)) {
    394                         print STDERR "forcing cleanup for warpRun $stage_id $skycell_id" .
    395                             " because config file is gone\n";
     515                        print STDERR "forcing cleanup warp $stage_id $skycell_id fault: $fault quality: $quality"
     516                            . " because config file ($config_file) is gone\n";
     517                    } elsif ($fault == 0 and $quality == 0) {
     518                            print STDERR "skipping cleaning up warp $stage_id $skycell_id fault: $fault quality: $quality"
     519                                . " because config file ($config_file) is missing\n";
     520                            $status = 0;
    396521                    } else {
    397                         print STDERR "skipping cleanup for warpRun $stage_id $skycell_id" .
    398                             " because config file is missing\n";
    399                         $status = 0;
     522                            # config file is missing but this is a bad warp anyways so clean it
     523                            print STDERR "cleaning up warp $stage_id $skycell_id fault: $fault quality: $quality"
     524                                . " even though config file ($config_file) is missing\n";
    400525                    }
    401526                }
     
    413538
    414539        if ($status) {
    415             if ($skyfile->{quality} != 8007) {
     540            # XXX: what is special about quality == 8007?
     541            if ($skyfile->{quality} != 8007 || $check_all) {
    416542                my @files = ();
    417543
     
    420546                addFilename(\@files, "PSWARP.OUTPUT.MASK", $path_base, $skycell_id, 1);
    421547                addFilename(\@files, "PSWARP.OUTPUT.VARIANCE", $path_base, $skycell_id, 1);
    422 #            addFilename(\@files, "PSWARP.OUTPUT.SOURCES", $path_base, $skycell_id);
     548                # these are rebuilt during update so we can delete them here
     549                addFilename(\@files, "PSWARP.OUTPUT.SOURCES", $path_base, $skycell_id);
     550                addFilename(\@files, "SKYCELL.TEMPLATE", $path_base, $skycell_id );
    423551                if ($mode eq "goto_purged") {
    424552                    # additional files to remove for 'purge' mode
     
    426554                    addFilename(\@files, "PSWARP.BIN2", $path_base, $skycell_id );
    427555                    addFilename(\@files, "SKYCELL.STATS", $path_base, $skycell_id );
    428                     # addFilename(\@files, "PSPHOT.PSF.SKY.SAVE", $path_base);
    429 
    430                     # XXX: do we want to delete these?
     556                    addFilename(\@files, "SKYCELL.STATS.UPDATE", $path_base, $skycell_id );
     557                    addFilename(\@files, "PSWARP.CONFIG", $path_base, $skycell_id);
     558
     559                    # XXX: do we want to delete these? trace file is empty
    431560                    # addFilename(\@files, "TRACE.EXP", $path_base, $skycell_id);
    432                     # addFilename(\@files, "PSWARP.CONFIG", $path_base, $skycell_id);
    433                 }
    434             # actual command to delete the files
     561                }
     562                # actual command to delete the files
    435563                $status = &delete_files (\@files);
    436564            }
    437565        }
     566        bzip2_file("LOG.EXP", $path_base, $skycell_id);
     567        bzip2_file("LOG.EXP.UPDATE", $path_base, $skycell_id);
    438568
    439569        if ($status)  {
     570            my $update_skyfile = 1;
    440571            my $command = "$warptool -warp_id $stage_id -skycell_id $skycell_id";
    441572            if ($mode eq "goto_purged") {
    442573                $command .= " -topurgedskyfile";
     574                if ($data_state eq 'purged') {
     575                    $update_skyfile = 0;
     576                }
    443577            }
    444578            elsif ($mode eq "goto_cleaned") {
    445579                $command .= " -tocleanedskyfile";
     580                if ($data_state eq 'cleaned') {
     581                    $update_skyfile = 0;
     582                }
    446583            }
    447584            elsif ($mode eq "goto_scrubbed") {
    448585                $command .= " -toscrubbedskyfile";
    449             }
    450             $command .= " -dbname $dbname" if defined $dbname;
    451 
    452             my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    453                     run(command => $command, verbose => $verbose);
     586                if ($data_state eq 'scrubbed') {
     587                    $update_skyfile = 0;
     588                }
     589            }
     590            $command .= " -dbname $dbname" if defined $dbname;
     591
     592            if ($update_skyfile) {
     593                my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     594                        run(command => $command, verbose => $verbose);
     595                unless ($success) {
     596                    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     597                    &my_die("Unable to perform warptool: $error_code", "warp", $stage_id, $error_code);
     598                }
     599
     600                set_destreak_goto_cleaned();
     601            }
     602
     603         } else {
     604            $num_errors++;
     605            my $command = "$warptool -updateskyfile -warp_id $stage_id -skycell_id $skycell_id -set_state $error_state";
     606            $command .= " -dbname $dbname" if defined $dbname;
     607
     608            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     609                run(command => $command, verbose => $verbose);
    454610            unless ($success) {
    455611                $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     
    457613            }
    458614
    459             set_destreak_goto_cleaned();
    460 
    461          } else {
    462             my $command = "$warptool -updateskyfile -warp_id $stage_id -skycell_id $skycell_id -set_state $error_state";
    463             $command .= " -dbname $dbname" if defined $dbname;
    464 
    465             my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     615            # We want to flag the run as well, to avoid attempting to reprocess the same data over and over again.
     616            $command = "$warptool -warp_id $stage_id -updaterun -set_state $error_state";
     617            $command .= " -dbname $dbname" if defined $dbname;
     618
     619            ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    466620                run(command => $command, verbose => $verbose);
    467621            unless ($success) {
     
    469623                &my_die("Unable to perform warptool: $error_code", "warp", $stage_id, $error_code);
    470624            }
    471 
    472             #            exit $PS_EXIT_UNKNOWN_ERROR;
    473         }
    474     }
     625        }
     626    }
     627    print "Cleanup completed for warp_id $stage_id.";
     628    print " num_errors: $num_errors" if $num_errors;
     629    print "\n";
    475630    exit 0;
    476631}
     
    603758                &my_die("Unable to perform stacktool: $error_code", "stack", $stage_id, $error_code);
    604759            }
    605 #           exit $PS_EXIT_UNKNOWN_ERROR;
    606760        }
    607761    }
     
    619773    my $skyfiles;                  # Array reference of component files
    620774    my $command = "difftool -pendingcleanupskyfile -diff_id $stage_id"; # Command to run
     775    $command .= ' -all' if $check_all;
    621776    $command .= " -dbname $dbname" if defined $dbname;
    622     my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $verbose);
     777    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $very_verbose);
    623778    unless ($success) {
    624779        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     
    646801        &my_die("Unable to parse metadata config doc", "diff", $stage_id, $PS_EXIT_PROG_ERROR);
    647802
     803    my $num_errors = 0;
    648804    my @files = ();
    649805    foreach my $skyfile (@{ $skyfiles }) {
    650806        my $path_base = $skyfile->{path_base};
    651807        my $skycell_id = $skyfile->{skycell_id};
     808        my $data_state = $skyfile->{data_state};
    652809
    653810        my $status = 1;
     
    661818                my $config_file = $ipprc->filename("PPSUB.CONFIG", $path_base, $skycell_id);
    662819
     820            if (0) {
    663821                unless ($ipprc->file_exists($config_file)) {
    664822                    if (file_gone($config_file)) {
     
    672830                }
    673831            }
     832                unless ($ipprc->file_exists($config_file)) {
     833                    my $fault = $skyfile->{fault};
     834                    my $quality = $skyfile->{quality};
     835                    if (file_gone($config_file)) {
     836                        print STDERR "forcing cleanup diff $stage_id $skycell_id fault: $fault quality: $quality"
     837                            . " because config file ($config_file) is gone\n";
     838                    } elsif ($fault == 0 and $quality == 0) {
     839                            print STDERR "skipping cleaning up diff $stage_id $skycell_id fault: $fault quality: $quality"
     840                                . " because config file ($config_file) is missing\n";
     841                            $status = 0;
     842                    } else {
     843                            # config file is missing but this is a bad diff anyways so clean it
     844                            print STDERR "cleaning up diff $stage_id $skycell_id fault: $fault quality: $quality"
     845                                . " even though config file ($config_file) is missing\n";
     846                    }
     847                }
     848            }
    674849            elsif ($mode eq "goto_scrubbed") {
    675850                my $config_file = $ipprc->filename("PPSUB.CONFIG", $path_base, $skycell_id);
     
    712887
    713888            }
    714 #           print STDERR "MY FILES: @files\n";
    715889            $status = &delete_files(\@files);
    716890        }
    717 #       print STDERR "MY STATUS: $status\n";
     891
     892        bzip2_file("LOG.EXP", $path_base, $skycell_id);
     893        bzip2_file("LOG.EXP.UPDATE", $path_base, $skycell_id);
     894
    718895        if ($status) {
    719896            my $command = "$difftool -diff_id $stage_id -skycell_id $skycell_id";
     897            my $update_skyfile = 1;
    720898
    721899            if ($mode eq "goto_purged") {
    722900                $command .= " -topurgedskyfile";
     901                if ($data_state eq 'purged') {
     902                    $update_skyfile = 0;
     903                }
    723904            }
    724905            elsif ($mode eq "goto_cleaned") {
    725906                $command .= " -tocleanedskyfile";
     907                if ($data_state eq 'cleaned') {
     908                    $update_skyfile = 0;
     909                }
    726910            }
    727911            elsif ($mode eq "goto_scrubbed") {
    728912                $command .= " -toscrubbedskyfile";
    729             }
    730 
     913                if ($data_state eq 'scrubbed') {
     914                    $update_skyfile = 0;
     915                }
     916            }
     917
     918            $command .= " -dbname $dbname" if defined $dbname;
     919
     920            if ($update_skyfile) {
     921                my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     922                    run(command => $command, verbose => $verbose);
     923                unless ($success) {
     924                    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     925                    &my_die("Unable to perform difftool: $error_code", "diff", $stage_id, $error_code);
     926                }
     927                set_destreak_goto_cleaned();
     928            }
     929
     930
     931        } else {
     932            $num_errors++;
     933            my $command = "$difftool -updatediffskyfile -diff_id $stage_id -skycell_id $skycell_id -set_state $error_state";
    731934            $command .= " -dbname $dbname" if defined $dbname;
    732935
     
    738941            }
    739942
    740             set_destreak_goto_cleaned();
    741 
    742         } else {
    743             my $command = "$difftool -updaterun -diff_id $stage_id -set_state $error_state";
    744 
    745             $command .= " -dbname $dbname" if defined $dbname;
    746 
    747             my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     943            $command = "$difftool -updaterun -diff_id $stage_id -set_state $error_state";
     944
     945            $command .= " -dbname $dbname" if defined $dbname;
     946
     947            ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    748948                run(command => $command, verbose => $verbose);
    749949            unless ($success) {
     
    751951                &my_die("Unable to perform difftool: $error_code", "diff", $stage_id, $error_code);
    752952            }
    753 #           exit $PS_EXIT_UNKNOWN_ERROR;
    754         }
    755     }
     953        }
     954    }
     955    print "Cleanup completed for diff_id $stage_id.";
     956    print " num_errors: $num_errors" if $num_errors;
     957    print "\n";
    756958    exit 0;
    757959}
     
    19172119
    19182120    foreach my $file (@$files) {
    1919         print STDERR "unlinking $stage $stage_id $file\n";
     2121        print STDERR "unlinking $stage $stage_id $file\n" if $very_verbose;
    19202122
    19212123        my $error_code = $ipprc->kill_file($file);
     
    20082210}
    20092211
    2010 # this gets set to 1 the first time we set the corresponding destreak run to be cleaned
    2011 my $ds_done = 0;
    20122212sub set_destreak_goto_cleaned {
    20132213
     
    20272227}
    20282228
     2229sub bzip2_file {
     2230    my $filerule = shift;
     2231    my $path_base = shift;
     2232    my $component = shift;
     2233
     2234    my $filename = $ipprc->filename($filerule, $path_base, $component);
     2235    if (!$ipprc->file_exists($filename)) {
     2236        return 1;
     2237    }
     2238    if (my $resolved = $ipprc->file_resolve($filename)) {
     2239        my $bzip2_filename = $filename . '.bz2';
     2240        if ($ipprc->file_exists($bzip2_filename)) {
     2241            $ipprc->kill_file($bzip2_filename);
     2242        }
     2243        my $bzip2_file = $ipprc->file_create($bzip2_filename);
     2244        my_die("Unable to create $bzip2_filename", $stage_id, $PS_EXIT_SYS_ERROR) unless $bzip2_file;
     2245
     2246        my $command = "$bzip2 < $resolved > $bzip2_file";
     2247        my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     2248            run(command => $command, verbose => $very_verbose);
     2249        if ($success) {
     2250            # success delete the original file
     2251            my $error_code = $ipprc->kill_file($filename);
     2252        } else {
     2253            # if bzip2 failed. Carry on but don't delete the existing file
     2254            $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     2255            print STDERR "Failed to bzip2 $filename: $error_code\n";
     2256            return 0;
     2257        }
     2258    }
     2259    return 1;
     2260}
     2261
    20292262# XXX we currently do not set the error state in the db on my_die
    20302263sub my_die
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/magic_destreak.pl

  • branches/eam_branches/ipp-20121130/ippScripts/scripts/skycalibration.pl

    r34738 r34839  
    134134# First check the expected file name where the stack_id is the FILE_ID
    135135my $file;
    136 if (!$singlefilter) {
     136# if (!$singlefilter) {
     137if (1) {
     138
    137139    $file = $ipprc->filename('PSPHOT.STACK.OUTPUT', $path_base, $stack_id);
    138140    if (! $ipprc->file_resolve($file)) {
    139         # XXX: Beginning of section that can be removed eventually
    140 
    141         # no file with the expected name found
    142         # assume that the input is from an early staticsky run that did not use stack_id as the FILE_ID
    143         # but instead used FILE_ID = [0 .. num_filters-1]
    144141        print "\nfailed to resolve $file\n";
    145         if (!$filter) {
    146             &my_die("filter not supplied unable to identify appropriate staticsky input.", $skycal_id, $PS_EXIT_SYS_ERROR);
    147         }
    148         print "Trying old style FILE_ID\n";
    149         my $max_filters = 5;
    150         for (my $i=0; $i < $max_filters; $i++) {
    151             my $file_id = sprintf "%03d", $i;
    152             $file  = $ipprc->filename('PSPHOT.STACK.OUTPUT', $path_base, $file_id);
    153             my $resolved = $ipprc->file_resolve($file);
    154             if (!$resolved) {
    155                 # we fail here assumming that if file_id N doesn't exist, neither to N+1
    156                 print "\nfailed to resolve $file\n\n";
    157                 &my_die("unable to identify appropriate staticsky input.", $skycal_id, $PS_EXIT_SYS_ERROR);
     142        # file with proper file rule not found. Try older systems
     143        if ($singlefilter) {
     144            # input is from a single filter static sky run which used psphot instead of psphotStack
     145            # The file rule is different for psphot
     146            $file = $ipprc->filename('PSPHOT.OUT.CMF.MEF', $path_base);
     147            &my_die("Unable to find input for $stack_id $filter", $skycal_id, $PS_EXIT_SYS_ERROR)
     148                unless $ipprc->file_exists($file);
     149        } else {
     150            # XXX: Beginning of section that can be removed eventually
     151            # no file with the expected name found
     152            # assume that the input is from an early multifilter staticsky run that did not use stack_id as the FILE_ID
     153            # but instead used FILE_ID = [0 .. num_filters-1]
     154            if (!$filter) {
     155                &my_die("filter not supplied unable to identify appropriate staticsky input.", $skycal_id, $PS_EXIT_SYS_ERROR);
    158156            }
    159             # Check the filter id for this file
    160             my $command = "$fhead $resolved | grep FILTERID";
    161             my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    162                 run(command => $command, verbose => 0);
    163             unless ($success) {
    164                 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    165                 &my_die("Unable to perform $command: $error_code", $skycal_id, $PS_EXIT_SYS_ERROR);
     157            print "Trying old style FILE_ID\n";
     158            my $max_filters = 5;
     159            for (my $i=0; $i < $max_filters; $i++) {
     160                my $file_id = sprintf "%03d", $i;
     161                $file  = $ipprc->filename('PSPHOT.STACK.OUTPUT', $path_base, $file_id);
     162                my $resolved = $ipprc->file_resolve($file);
     163                if (!$resolved) {
     164                    # we fail here assumming that if file_id N doesn't exist, neither to N+1
     165                    print "\nfailed to resolve $file\n\n";
     166                    &my_die("unable to identify appropriate staticsky input.", $skycal_id, $PS_EXIT_SYS_ERROR);
     167                }
     168                # Check the filter id for this file
     169                my $command = "$fhead $resolved | grep FILTERID";
     170                my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     171                    run(command => $command, verbose => 0);
     172                unless ($success) {
     173                    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     174                    &my_die("Unable to perform $command: $error_code", $skycal_id, $PS_EXIT_SYS_ERROR);
     175                }
     176                # Expected output: HIERARCH FPA.FILTERID = 'r.00000 ' / Filter used (parsed, abstract name)
     177                my ($undef, undef, undef, $filt) = split " ", join("", @$stdout_buf);
     178                my $this_filter = substr $filt, 1, 7;
     179
     180                # if it matches we're done
     181                last if $this_filter eq $filter;
     182
     183                # nope loop around to try the next one
     184                print "Input file for $filter is not $file ($this_filter)\n";
     185                $file = undef;
    166186            }
    167             # Expected output: HIERARCH FPA.FILTERID = 'r.00000 ' / Filter used (parsed, abstract name)
    168             my ($undef, undef, undef, $filt) = split " ", join("", @$stdout_buf);
    169             my $this_filter = substr $filt, 1, 7;
    170 
    171             # if it matches we're done
    172             last if $this_filter eq $filter;
    173 
    174             # nope loop around to try the next one
    175             print "Input file for $filter is not $file ($this_filter)\n";
    176             $file = undef;
    177         }
     187        }
     188        # XXX: End of section that can be removed eventually
     189    }
     190    if ($file) {
    178191        print "\nInput file for $stack_id filter: $filter: $file\n";
    179 
    180         # XXX: End of section that can be removed eventually
    181     }
    182 } else {
    183     # input is from a single filter static sky run use a different file rule
    184     # XXX: can't we just make staticsky.pl use the same file rule?
    185     $file = $ipprc->filename('PSPHOT.OUT.CMF.MEF', $path_base);
    186     &my_die("Unable to find input for $stack_id $filter", $skycal_id, $PS_EXIT_SYS_ERROR)
    187         unless $ipprc->file_exists($file);
    188 }
    189 
    190 if (!$file) {
    191     &my_die("Unable to find input for $stack_id $filter", $skycal_id, $PS_EXIT_SYS_ERROR);
     192    } else {
     193        &my_die("Unable to find input file for stack_id $stack_id.", $skycal_id, $PS_EXIT_SYS_ERROR);
     194    }
    192195}
    193196
     
    197200}
    198201
    199 # read the input header to find the number of detections and the number of detections
    200 # with extended model
     202# XXX: The following is for compatability with psphotStack cmfs created prior to adding NDET
     203# read the input header to find the number of detections
     204my $compatability_flags = "";
    201205my $n_detections = 0;
    202 my $n_extended = 0;
    203206{
     207    # NSTARS is buggy. It only counts sources with a model, and counts them twice.
     208    # We want the actual number of sources (real + matched). Use the length of the psf table
    204209    my $command = "echo $resolved | $fields -n SkyChip.psf NAXIS2";
    205210    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     
    211216        unless defined $n_detections;
    212217
    213     $command = "echo $resolved | $fields -n SkyChip.hdr NDET_EXT";
    214     ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    215             run(command => $command, verbose => 0);
    216     (undef, $n_extended)  = split " ", join "", @$stdout_buf;
    217     chomp $n_extended;
    218     &my_die("Unable to find number of extended objects from $file: ", $skycal_id, $PS_EXIT_SYS_ERROR)
    219         unless defined $n_extended;
     218    $compatability_flags .= " -n_detections $n_detections";
     219
    220220}
    221221
     
    257257        }
    258258
     259        # if ppStats didn't get n_detections use the compatability version extracted above
     260        $cmdflags .= $compatability_flags unless ($cmdflags =~ /-n_detections/);
     261
    259262        my $quality;
    260263        ($quality) =  $cmdflags =~ /-quality (\d+)/;
     
    276279{
    277280    my $command = "$staticskytool -skycal_id $skycal_id";
    278     $command .= " -n_detections $n_detections";
    279     $command .= " -n_extended $n_extended";
    280281    $command .= " -addskycalresult -path_base $outroot";
    281282    $command .= " $cmdflags";
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/skycell_jpeg.pl

    r28403 r34839  
    268268
    269269    my %tangents = ();
     270
     271    my %products = ('image' => "PPSTACK.UNCONV",
     272                    'mask'  => "PPSTACK.UNCONV.MASK",
     273                    'variance' => "PPSTACK.UNCONV.VARIANCE",
     274                    'exp'   => "PPSTACK.UNCONV.EXP",
     275                    'num'   => "PPSTACK.UNCONV.EXPNUM",
     276                    'bkg'   => "PPSTACK.OUTPUT.BKGMODEL"
     277        );
    270278   
    271279    foreach my $imfile (@$imfiles) {
     
    281289
    282290        $projection_cell =~ s/^(.*)\..*$/$1/;
    283        
     291
    284292        unless (exists($tangents{$projection_cell})) {
    285293            # Make a temp file and fill, but be sure to save
    286             ($tempFile, $tempName) = tempfile("/tmp/skycell.$projection_cell.XXXX",
    287                                                  UNLINK => !$save_temps);
    288             $tangents{$projection_cell}{FILE} = $tempFile;
    289             $tangents{$projection_cell}{NAME} = $tempName;
    290             if ($masks) {
    291                 my ($maskFile, $maskName) = tempfile("/tmp/skycell.$projection_cell.masks.XXXX",
    292                                                      UNLINK => !$save_temps);
    293                 $tangents{$projection_cell}{MFILE} = $maskFile;
    294                 $tangents{$projection_cell}{MNAME} = $maskName;
    295             }           
    296         }
    297         print "$skycell_id $projection_cell\n";
    298         my $file = $ipprc->filename("PPSTACK.OUTPUT", $path_base, $skycell_id);
    299         print "$file $state $quality\n";
    300         my $f_fh = $tangents{$projection_cell}{FILE};
    301         print $f_fh "$file\n";
    302         if ($masks) {
    303             my $mask = $ipprc->filename("PPSTACK.OUTPUT.MASK", $path_base, $skycell_id);
    304             print "$mask\n";
    305             my $m_fh = $tangents{$projection_cell}{MFILE};
    306             print $m_fh "$mask\n";
     294            foreach my $key (keys %products) {
     295                ($tempFile, $tempName) = tempfile("/tmp/skycell.$projection_cell.$key.XXXX",
     296                                                  UNLINK => !$save_temps);
     297                $tangents{$projection_cell}{$key}{FILE} = $tempFile;
     298                $tangents{$projection_cell}{$key}{NAME} = $tempName;
     299            }
     300        }
     301        foreach my $key (keys %products) {
     302            print "$skycell_id $projection_cell\n";     
     303            my $file = $ipprc->filename($products{$key}, $path_base, $skycell_id);
     304            print "$file $state $quality\n";
     305            my $f_fh = $tangents{$projection_cell}{$key}{FILE};
     306            print $f_fh "$file\n";
    307307        }
    308308    }
    309309    foreach my $projection_cell (keys %tangents) {
    310         $command = "$ppSkycell -images $tangents{$projection_cell}{NAME}";
    311         if ($masks) {
    312             $command .= " -masks $tangents{$projection_cell}{MNAME} ";
    313         }
    314         $command .= " ${outroot}.${projection_cell} ";
    315         print "$command\n";
    316         ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $verbose);
    317         unless ($success) {
    318             $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    319             &my_die("unable to perform ppSkycell: $error_code", $stage_id, $error_code);
    320         }
     310        ## Loop over results here.
     311        # Images
     312        # Masks
     313        # Variances
     314        # Nexptime
     315        # Nexp
     316        # Backgrounds
     317       
     318        foreach my $key (keys %products) {
     319            $command = "$ppSkycell -images $tangents{$projection_cell}{$key}{NAME}";
     320            $command .= " ${outroot}.${projection_cell}.${key} ";
     321            if ($key eq 'bkg') {
     322                $command .= " -Di BIN1 1 -Di BIN2 1 ";
     323            }
     324            elsif ($key eq 'image') {
     325                $command .= " -masks $tangents{$projection_cell}{mask}{NAME} ";
     326            }
     327            elsif ($key eq 'mask') {
     328                next; # This should be made with the images.
     329            }
     330            print "$command\n";
     331            ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = run(command => $command, verbose => $verbose);
     332            unless ($success) {
     333                $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     334                &my_die("unable to perform ppSkycell: $error_code", $stage_id, $error_code);
     335            }
     336        }
     337
    321338        # Update database:
    322339        $command = "$stacktool -addsummary -sass_id $stage_id -projection_cell $projection_cell -path_base $outroot";
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/stack_skycell.pl

    r32562 r34839  
    229229    my $sources = $ipprc->filename("PSWARP.OUTPUT.SOURCES", $file->{path_base}); # Sources name
    230230
     231    my $bkgmodel = $ipprc->filename("PSWARP.OUTPUT.BKGMODEL", $file->{path_base});
     232
    231233    &my_die("Image $image does not exist", $stack_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists( $image );
    232234    &my_die("Mask $mask does not exist", $stack_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists( $mask );
     
    240242    print $listFile "\tPSF\tSTR\t" . $psf . "\n" if $convolve;
    241243    print $listFile "\tSOURCES\tSTR\t" . $sources . "\n";
     244    print $listFile "\tBKGMODEL\tSTR\t" . $bkgmodel . "\n" if $ipprc->file_exists( $bkgmodel );
    242245
    243246    print $listFile "END\n\n";
  • branches/eam_branches/ipp-20121130/ippScripts/scripts/warp_skycell.pl

    r33053 r34839  
    128128# Where do we get the astrometry source from?
    129129my $astromSource;               # The astrometry source
     130my $doBackground;               # Do we want to make background models?
    130131{
    131132    my $command = "$ppConfigDump -camera $camera -recipe PSWARP $recipe_pswarp -dump-recipe PSWARP -";
     
    139140        &my_die("Unable to parse metadata config doc", $warp_id, $skycell_id, $tess_dir, $PS_EXIT_PROG_ERROR);
    140141    $astromSource = metadataLookupStr($metadata, 'ASTROM.SOURCE');
     142    $doBackground = metadataLookupBool($metadata, 'BACKGROUND.MODEL');   
    141143}
    142144
     
    168170if ($do_stats) {
    169171    $outputStats = prepare_output ("SKYCELL.STATS", $outroot, $skycell_id, 1) if $do_stats;
     172}
     173my $outputBKGs;
     174if ($doBackground) {
     175    $outputBKGs = prepare_output ("PSWARP.OUTPUT.BKGMODEL", $outroot, $skycell_id, 1);
    170176}
    171177my $configuration;
     
    209215my ($weightFile, $weightName) = tempfile( "$tempOutRoot.weight.list.XXXX", UNLINK => !$save_temps);
    210216my ($astromFile, $astromName) = tempfile( "$tempOutRoot.astrom.list.XXXX", UNLINK => !$save_temps);
    211 
     217my ($bkgFile, $bkgName);
     218if ($doBackground) {
     219    ($bkgFile, $bkgName) = tempfile( "$tempOutRoot.bkg.list.XXXX", UNLINK => !$save_temps);
     220}
    212221my $wrote_astrom = 0;
    213222foreach my $imfile (@$imfiles) {
     
    235244    print $maskFile   "$mask\n";
    236245    print $weightFile "$weight\n";
     246    my $bkg;
     247    if ($doBackground) {
     248        $bkg    = $ipprc->filename("PSPHOT.BACKMDL", $imfile->{chip_path_base}, $imfile->{class_id});
     249        print $bkgFile "$bkg\n";
     250    }
    237251
    238252    if (!$wrote_astrom) {
     
    245259close $weightFile;
    246260close $astromFile;
    247 
     261if ($doBackground) {
     262    close($bkgFile);
     263}
    248264# We need the recipe to determine if we care whether the PSF is generated or not
    249265my $recipe;
     
    269285    $command .= " -variancelist $weightName";
    270286    $command .= " -astromlist $astromName";
     287    $command .= " -bkglist $bkgName" if ($doBackground);
    271288    $command .= " $outroot $skyFile";
    272289    $command .= " -F PSPHOT.PSF.SAVE PSPHOT.PSF.SKY.SAVE";
  • branches/eam_branches/ipp-20121130/ippTasks

  • branches/eam_branches/ipp-20121130/ippTasks/Makefile.am

    r33030 r34839  
    4545        diffphot.pro \
    4646        lap.pro \
    47         vp.pro
     47        vp.pro \
     48        bg.regeneration.pro
    4849
    4950other_files = \
  • branches/eam_branches/ipp-20121130/ippTasks/addstar.pro

    r34265 r34839  
    212212  host         local
    213213  periods      -poll $LOADPOLL
    214   periods      -exec 300
     214  periods      -exec $LOADEXEC_ADD
    215215  periods      -timeout 300
    216216  npending     1
     
    266266  host         local
    267267  periods      -poll $LOADPOLL
    268   periods      -exec 300
     268  periods      -exec $LOADEXEC_ADD
    269269  periods      -timeout 300
    270270  npending     1
  • branches/eam_branches/ipp-20121130/ippTasks/nightly_science.pro

    r32375 r34839  
    258258task              ns.dqstats.load
    259259  host            local
    260   periods         -poll 3600
     260  periods         -poll $LOADPOLL
    261261  periods         -exec $LOADEXEC
    262262  periods         -timeout 300
  • branches/eam_branches/ipp-20121130/ippTasks/science.cleanup.pro

    r34203 r34839  
    1313
    1414check.globals
     15
     16# if set tell cleanup script to check for files from all components regardless of the data_state
     17$CHECK_ALL_COMPONENTS = 0
     18macro set.check.all.components
     19    $CHECK_ALL_COMPONENTS = 1
     20end
     21macro clear.check.all.components
     22    $CHECK_ALL_COMPONENTS = 0
     23end
     24macro get.check.all.components
     25    echo CHECK_ALL_COMPONENTS = $CHECK_ALL_COMPONENTS
     26end
     27
    1528
    1629## chip.cleanup.pro : -*- sh -*-
     
    130143    book getword chipPendingCleanup $pageName state -var CLEANUP_MODE
    131144    book getword chipPendingCleanup $pageName chip_id -var CHIP_ID
     145    book getword chipPendingCleanup $pageName exp_tag -var EXP_TAG
     146    book getword chipPendingCleanup $pageName workdir -var WORKDIR_TEMPLATE
    132147    book getword chipPendingCleanup $pageName dbname -var DBNAME
    133148
    134     # specify choice of local or remote host based on camera and chip (class_id)
     149    # specify choice of local or remote host based on camera and chip (in this case FPA)
    135150    set.host.for.camera $CAMERA FPA
     151
     152    set.workdir.by.camera $CAMERA FPA $WORKDIR_TEMPLATE $default_host WORKDIR
     153
     154    sprintf LOGFILE "%s/%s/%s.ch.%s.cleanup.log" $WORKDIR $EXP_TAG $EXP_TAG $CHIP_ID
    136155
    137156    stdout $LOGDIR/chip.cleanup.log
    138157    stderr $LOGDIR/chip.cleanup.log
    139158
    140     # XXX is everything listed here needed?
    141     $run = ipp_cleanup.pl --stage chip --stage_id $CHIP_ID --camera $CAMERA --mode $CLEANUP_MODE
     159    $run = ipp_cleanup.pl --stage chip --stage_id $CHIP_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE
     160    if ($CHECK_ALL_COMPONENTS)
     161        $run = $run --check-all
     162    end
    142163    add_standard_args run
    143164
     
    282303    book getword camPendingCleanup $pageName state  -var CLEANUP_MODE
    283304    book getword camPendingCleanup $pageName cam_id -var CAM_ID
     305    book getword camPendingCleanup $pageName exp_tag -var EXP_TAG
     306    book getword camPendingCleanup $pageName workdir -var WORKDIR_TEMPLATE
    284307    book getword camPendingCleanup $pageName dbname -var DBNAME
    285308
     
    287310    set.host.for.camera $CAMERA FPA
    288311
     312    # set the WORKDIR variable
     313    set.workdir.by.camera $CAMERA FPA $WORKDIR_TEMPLATE $default_host WORKDIR
     314
     315    ## generate LOGFILE specific to this exposure (& cam_id)
     316    sprintf LOGFILE "%s/%s/%s.cm.%s.cleanup.log" $WORKDIR $EXP_TAG $EXP_TAG $CAM_ID
     317
    289318    stdout $LOGDIR/camera.cleanup.log
    290319    stderr $LOGDIR/camera.cleanup.log
    291320
    292     # XXX is everything listed here needed?
    293     $run = ipp_cleanup.pl --stage camera --stage_id $CAM_ID --camera $CAMERA --mode $CLEANUP_MODE
     321    $run = ipp_cleanup.pl --stage camera --stage_id $CAM_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE
    294322    add_standard_args run
    295323
     
    591619    book getword warpPendingCleanup $pageName state -var CLEANUP_MODE
    592620    book getword warpPendingCleanup $pageName warp_id -var WARP_ID
     621    book getword warpPendingCleanup $pageName exp_tag -var EXP_TAG
     622    book getword warpPendingCleanup $pageName workdir -var WORKDIR_TEMPLATE
    593623    book getword warpPendingCleanup $pageName dbname -var DBNAME
    594624
    595625    # specify choice of local or remote host based on camera and warp (class_id)
    596626    set.host.for.camera $CAMERA FPA
     627    set.workdir.by.camera $CAMERA $WARP_ID $WORKDIR_TEMPLATE $default_host WORKDIR
     628
     629    sprintf LOGFILE "%s/%s/%s.wrp.%s.cleanup.log" $WORKDIR $EXP_TAG $EXP_TAG $WARP_ID
    597630
    598631    stdout $LOGDIR/warp.cleanup.log
    599632    stderr $LOGDIR/warp.cleanup.log
    600633
    601     # XXX is everything listed here needed?
    602     $run = ipp_cleanup.pl --stage warp --stage_id $WARP_ID --camera $CAMERA --mode $CLEANUP_MODE
     634    $run = ipp_cleanup.pl --stage warp --stage_id $WARP_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE
     635    if ($CHECK_ALL_COMPONENTS)
     636        $run = $run --check-all
     637    end
    603638    add_standard_args run
    604639
     
    748783    book getword diffCleanup $pageName state -var CLEANUP_MODE
    749784    book getword diffCleanup $pageName diff_id -var DIFF_ID
     785    book getword diffCleanup $pageName tess_id -var TESS_ID
     786    book getword diffCleanup $pageName workdir -var WORKDIR_TEMPLATE
    750787    book getword diffCleanup $pageName dbname -var DBNAME
    751788
    752789    # specify choice of local or remote host based on camera and diff (class_id)
    753790    set.host.for.camera $CAMERA FPA
     791    set.workdir.by.camera $CAMERA $DIFF_ID $WORKDIR_TEMPLATE $default_host WORKDIR
     792    sprintf LOGFILE "%s/%s/%s.dif.%s.cleanup.log" $WORKDIR $TESS_ID $TESS_ID $DIFF_ID
     793
    754794
    755795    stdout $LOGDIR/diff.cleanup.log
    756796    stderr $LOGDIR/diff.cleanup.log
    757797
    758     # XXX is everything listed here needed?
    759     $run = ipp_cleanup.pl --stage diff --stage_id $DIFF_ID --camera $CAMERA --mode $CLEANUP_MODE
     798    $run = ipp_cleanup.pl --stage diff --stage_id $DIFF_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE
     799    if ($CHECK_ALL_COMPONENTS)
     800        $run = $run --check-all
     801    end
    760802    add_standard_args run
    761803
     
    899941    book getword stackCleanup $pageName state -var CLEANUP_MODE
    900942    book getword stackCleanup $pageName stack_id -var STACK_ID
     943    book getword stackCleanup $pageName path_base -var PATH_BASE
    901944    book getword stackCleanup $pageName dbname -var DBNAME
    902945
     
    907950    stderr $LOGDIR/stack.cleanup.log
    908951
    909     # XXX is everything listed here needed?
    910     $run = ipp_cleanup.pl --stage stack --stage_id $STACK_ID --camera $CAMERA --mode $CLEANUP_MODE
     952    sprintf LOGFILE "%s.cleanup.log" PATH_BASE
     953    $run = ipp_cleanup.pl --stage stack --stage_id $STACK_ID --camera $CAMERA --mode $CLEANUP_MODE --logfile $LOGFILE
    911954    add_standard_args run
    912955
  • branches/eam_branches/ipp-20121130/ippTasks/skycal.pro

    r32983 r34839  
    88# test for required global variables
    99check.globals
     10
     11# skcal.pro should have a more restricted polling limit (to avoid stress with getstar)
     12if ($?POLL_LIMIT_SKYCAL == 0) set POLL_LIMIT_SKYCAL = 25
     13
     14macro set.skycal.poll
     15  if ($0 != 2)
     16    echo "USAGE:set.skycal.poll (value)"
     17    break
     18  end
     19 
     20  $POLL_LIMIT_SKYCAL = $1
     21end
     22
     23macro get.skycal.poll
     24  echo "skycal poll limit: $POLL_LIMIT_SKYCAL"
     25end
    1026
    1127### Initialise the books containing the tasks to do
     
    7995      # save the DB name for the exit tasks
    8096      option $DB:$skycal_DB
    81       $run = $run -dbname $DB:$skycal_DB -limit 40
     97      $run = $run -dbname $DB:$skycal_DB
    8298      $skycal_DB ++
    8399      if ($skycal_DB >= $DB:n) set skycal_DB = 0
     
    85101    add_poll_args run
    86102    add_poll_labels run
     103    $run = $run -limit $POLL_LIMIT_SKYCAL
    87104    command $run
    88105  end
     
    123140
    124141  task.exec
     142    # if we are unable to run use "long" exectime
     143    periods -exec $RUNEXEC
    125144    book npages skycalRun -var N
    126145    if ($N == 0) break
    127146    if ($NETWORK == 0) break
    128147    if ($BURNTOOLING == 1) break
     148
    129149
    130150    # look for new entries in skycalRun (pantaskState == INIT)
     
    147167
    148168    # set the host and workdir based on the skycell hash
    149     set.host.for.skycell $SKYCELL_ID
     169    # set.host.for.skycell $SKYCELL_ID
     170    host anyhost
    150171    set.workdir.by.skycell $SKYCELL_ID $WORKDIR_TEMPLATE $default_host WORKDIR
    151172
     
    172193      echo command $run
    173194    end
     195    # since we have work to do shorten exec time
     196    periods -exec .1
    174197    command $run
    175198  end
     
    197220  host         local
    198221
    199   periods      -poll 60.0
    200   periods      -exec 1800.0
     222  periods      -poll 10.0
     223  periods      -exec 1200.0
    201224  periods      -timeout 120.0
    202225  npending     1
    203   active false
     226  active true
    204227 
    205228  stdout NULL
  • branches/eam_branches/ipp-20121130/ippTasks/staticsky.pro

    r33957 r34839  
    7070
    7171  periods      -poll $LOADPOLL
    72   periods      -exec $LOADEXEC
    73   periods      -timeout 30
     72  periods      -exec 30
     73  periods      -timeout 60
    7474  npending     1
    7575
     
    154154
    155155    # set the host and workdir based on the skycell hash
    156     set.host.for.skycell $SKYCELL_ID
     156    # set.host.for.skycell $SKYCELL_ID
     157    host anyhost
    157158    set.workdir.by.skycell $SKYCELL_ID $WORKDIR_TEMPLATE $default_host WORKDIR
    158159
  • branches/eam_branches/ipp-20121130/ippTasks/summit.copy.pro

    r33168 r34839  
    223223    periods      -exec     10
    224224    periods      -poll     1
    225     periods      -timeout  20
     225    periods      -timeout  60
    226226    npending     1
    227227
  • branches/eam_branches/ipp-20121130/ippTasks/survey.pro

    r34350 r34839  
    1717 book create SURVEY_PUBLISH
    1818 book create SURVEY_STATICSKYSINGLE
     19 book create SURVEY_SKYCAL
    1920 $haveSurveyBooks = TRUE
    2021end
     
    3132$SURVEY_WARP_BG_DB = 0
    3233$SURVEY_PUBLISH_DB = 0
     34$SURVEY_SKYCAL_DB = 0
    3335$SURVEY_STATICSKYSINGLE_DB = 0
    3436$SURVEY_EXEC = 120
     
    7375    active true
    7476  end 
     77  task survey.skycal
     78    active true
     79  end
    7580end
    7681
     
    110115  end
    111116  task survey.staticskysingle
     117    active false
     118  end
     119  task survey.skycal
    112120    active false
    113121  end
     
    464472  book delpage SURVEY_STATICSKYSINGLE $1
    465473end
     474
     475macro survey.add.skycal
     476  if ($0 != 3)
     477    echo "USAGE: survey.add.skycal (label) (dist_group)"
     478    break
     479  end
     480  book newpage SURVEY_SKYCAL $1
     481  book setword SURVEY_SKYCAL $1 LABEL $1
     482  book setword SURVEY_SKYCAL $1 DIST_GROUP $2
     483  book setword SURVEY_SKYCAL $1 STATE PENDING
     484end
     485
     486macro survey.del.skycal
     487  if ($0 != 2)
     488    echo "USAGE: survey.del.skycal (label)"
     489    break
     490  end
     491  book delpage SURVEY_SKYCAL $1
     492end
     493
     494macro survey.show.skycal
     495  if ($0 != 1)
     496    echo "USAGE: survey.show.skyacl"
     497    break
     498  end
     499  book listbook SURVEY_SKYCAL
     500end
     501
    466502
    467503task survey.diff
     
    14531489end
    14541490
     1491# Survey task for Skycal stage
     1492
     1493task survey.skycal
     1494  host local
     1495 
     1496  periods      -poll $SURVEY_POLL
     1497  periods      -exec $SURVEY_EXEC
     1498  periods      -timeout $SURVEY_TIMEOUT
     1499  npending     1
     1500
     1501  stdout $LOGDIR/survey.skycal.log
     1502  stderr $LOGDIR/survey.skycal.log
     1503
     1504  task.exec
     1505    book npages SURVEY_SKYCAL -var N
     1506    if ($N == 0)
     1507#      echo "No labels for processing"
     1508      break
     1509    endif
     1510
     1511    book getpage SURVEY_SKYCAL 0 -var label -key STATE NEW
     1512    if ("$label" == "NULL")
     1513      # All labels have been done --- reset
     1514#      echo "Resetting labels"
     1515      for i 0 $N
     1516        book getpage SURVEY_SKYCAL $i -var label
     1517        book setword SURVEY_SKYCAL $label STATE NEW
     1518      end
     1519      book getpage SURVEY_SKYCAL 0 -var label -key STATE NEW
     1520
     1521      # Select different database
     1522      $SURVEY_SKYCAL_DB ++
     1523      if ($SURVEY_SKYCAL_DB >= $DB:n) set SURVEY_SKYCAL_DB = 0
     1524    end
     1525
     1526    book setword SURVEY_SKYCAL $label STATE DONE
     1527    book getword SURVEY_SKYCAL $label DIST_GROUP -var dist_group
     1528
     1529    # note: currently skycal uses the staticskyRun workdir
     1530
     1531    $run = staticskytool -defineskycalrun -select_label $label -set_dist_group $dist_group
     1532
     1533    if ($DB:n == 0)
     1534      option DEFAULT
     1535    else
     1536      $run = $run -dbname $DB:$SURVEY_SKYCAL_DB
     1537      option $DB:$SURVEY_SKYCAL_DB
     1538    end
     1539   
     1540    # echo $run
     1541    command $run
     1542  end
     1543
     1544  # success
     1545  task.exit    0
     1546#    echo "Success"
     1547  end
     1548
     1549  # locked list
     1550  task.exit    default
     1551    showcommand failure
     1552  end
     1553
     1554  task.exit    crash
     1555    showcommand crash
     1556  end
     1557
     1558  # operation times out?
     1559  task.exit    timeout
     1560    showcommand timeout
     1561  end
     1562end
  • branches/eam_branches/ipp-20121130/ippToPsps

  • branches/eam_branches/ipp-20121130/ippToPsps/config/OB/tables.vot

    r34615 r34839  
    2727        <DESCRIPTION>flag indicating odd properties</DESCRIPTION>
    2828      </FIELD>
    29       <FIELD name="varFlag" arraysize="1" datatype="unsignedByte" unit="unknown">
    30         <DESCRIPTION>variable in difference image detections</DESCRIPTION>
     29      <FIELD name="qualityFlag" arraysize="1" datatype="unsignedByte" unit="unknown">
     30        <DESCRIPTION>subset of objInfoFlag - flags related to goodness of object</DESCRIPTION>
    3131      </FIELD>
    3232      <FIELD name="surveyID" arraysize="1" datatype="unsignedByte" unit="unknown">
     
    4545        <DESCRIPTION> Declination error</DESCRIPTION>
    4646      </FIELD>
     47      <FIELD name="cx" arraysize="1" datatype="double" unit="unknown">
     48        <DESCRIPTION>Cartesian x</DESCRIPTION>
     49      </FIELD>
     50      <FIELD name="cy" arraysize="1" datatype="double" unit="unknown">
     51        <DESCRIPTION>Cartesian y</DESCRIPTION>
     52      </FIELD>
     53      <FIELD name="cz" arraysize="1" datatype="double" unit="unknown">
     54        <DESCRIPTION>Cartesian z</DESCRIPTION>
     55      </FIELD>
    4756      <FIELD name="lambda" arraysize="1" datatype="double" unit="degree">
    4857        <DESCRIPTION> ecliptic longitude</DESCRIPTION>
     
    284293      <FIELD name="consistencyFlag" arraysize="1" datatype="short" unit="unknown">
    285294        <DESCRIPTION>Value computed from associated detections, it is originally given by IPP and should agree with the ODM validation</DESCRIPTION>
     295      </FIELD>
     296      <FIELD name="Random" arraysize="1" datatype="double" unit="unknown">
     297        <DESCRIPTION>Random number between 0 and 1</DESCRIPTION>
    286298      </FIELD>
    287299      <FIELD name="dataRelease" arraysize="1" datatype="unsignedByte" unit="unknown">
  • branches/eam_branches/ipp-20121130/ippToPsps/jython/objectbatch.py

    r34723 r34839  
    134134                   ," + filter[1] + "80pct = MAG_80/1000 \
    135135                   ," + filter[1] + "Flags = (0x7fff & FLAGS) | ((FLAGS >> 11) & 0x2000) \
    136                    ," + filter[1] + "StackDetectID = STACK_DETECT_ID + " + str(filterID)
     136                   ," + filter[1] + "StackDetectID = STACK_DETECT_ID"
    137137
    138138            #self.logger.info(sql)
     
    236236               ,ippObjID \
    237237               ,objInfoFlag \
    238                ,varFlag \
     238               ,qualityFlag \
    239239               ,surveyID \
    240240               ,ra \
     
    246246               ,sgSep \
    247247               ,dataRelease \
     248               ,Random \
    248249               ) \
    249250               SELECT \
     
    251252               ,CAT_ID*1000000000 + OBJ_ID \
    252253               ,FLAGS \
    253                ,0 \
     254               ,FLAGS >> 24 & 0xFF \
    254255               ," + str(self.surveyID) + " \
    255256               ,RA \
     
    257258               ,RA_ERR \
    258259               ,DEC_ERR \
    259                ,NMEASURE \
     260               ,0 \
    260261               ,PSF_QF_PERF \
    261262               ,STARGAL_SEP \
    262263               , " + str(self.config.dataRelease) + "\
     264               , RAND() \
    263265               FROM " + cptTableName
    264266
  • branches/eam_branches/ipp-20121130/ippToPsps/jython/stackbatch.py

    r34661 r34839  
    55
    66import stilts
     7import re
    78from java.lang import *
    89from java.sql import *
     
    143144    '''
    144145    def updateApFlxs(self, prefix, psfCondition):
     146        #properly -999 these to start with:
    145147
    146148        sql = "UPDATE StackApFlx AS a, SkyChip_xrad AS b SET \
    147         "+prefix+"flxR1=b.APER_FLUX_1 / " + str(self.expTime) + ", \
    148         "+prefix+"flxR1Err=b.APER_FLUX_ERR_1 / " + str(self.expTime) + ", \
    149         "+prefix+"flxR1Std=b.APER_FLUX_STDEV_1 / " + str(self.expTime) + ", \
    150         "+prefix+"flxR1Fill=b.APER_FILL_1, \
    151         "+prefix+"flxR2=b.APER_FLUX_2 / " + str(self.expTime) + ", \
    152         "+prefix+"flxR2Err=b.APER_FLUX_ERR_2 / " + str(self.expTime) + ", \
    153         "+prefix+"flxR2Std=b.APER_FLUX_STDEV_2 / " + str(self.expTime) + ", \
    154         "+prefix+"flxR2Fill=b.APER_FILL_2, \
    155         "+prefix+"flxR3=b.APER_FLUX_3 / " + str(self.expTime) + ", \
    156         "+prefix+"flxR3Err=b.APER_FLUX_ERR_3 / " + str(self.expTime) + ", \
    157         "+prefix+"flxR3Std=b.APER_FLUX_STDEV_3 / " + str(self.expTime) + ", \
    158         "+prefix+"flxR3Fill=b.APER_FILL_3, \
    159         "+prefix+"flxR4=b.APER_FLUX_4 / " + str(self.expTime) + ", \
    160         "+prefix+"flxR4Err=b.APER_FLUX_ERR_4 / " + str(self.expTime) + ", \
    161         "+prefix+"flxR4Std=b.APER_FLUX_STDEV_4 / " + str(self.expTime) + ", \
    162         "+prefix+"flxR4Fill=b.APER_FILL_4, \
    163         "+prefix+"flxR5=b.APER_FLUX_5 / " + str(self.expTime) + ", \
    164         "+prefix+"flxR5Err=b.APER_FLUX_ERR_5 / " + str(self.expTime) + ", \
    165         "+prefix+"flxR5Std=b.APER_FLUX_STDEV_5 / " + str(self.expTime) + ", \
    166         "+prefix+"flxR5Fill=b.APER_FILL_5, \
    167         "+prefix+"flxR6=b.APER_FLUX_6 / " + str(self.expTime) + ", \
    168         "+prefix+"flxR6Err=b.APER_FLUX_ERR_6 / " + str(self.expTime) + ", \
    169         "+prefix+"flxR6Std=b.APER_FLUX_STDEV_6 / " + str(self.expTime) + ", \
    170         "+prefix+"flxR6Fill=b.APER_FILL_6, \
    171         "+prefix+"flxR7=b.APER_FLUX_7 / " + str(self.expTime) + ", \
    172         "+prefix+"flxR7Err=b.APER_FLUX_ERR_7 / " + str(self.expTime) + ", \
    173         "+prefix+"flxR7Std=b.APER_FLUX_STDEV_7 / " + str(self.expTime) + ", \
    174         "+prefix+"flxR7Fill=b.APER_FILL_7, \
    175         "+prefix+"flxR8=b.APER_FLUX_8 / " + str(self.expTime) + ", \
    176         "+prefix+"flxR8Err=b.APER_FLUX_ERR_8 / " + str(self.expTime) + ", \
    177         "+prefix+"flxR8Std=b.APER_FLUX_STDEV_8 / " + str(self.expTime) + ", \
    178         "+prefix+"flxR8Fill=b.APER_FILL_8, \
    179         "+prefix+"flxR9=b.APER_FLUX_9 / " + str(self.expTime) + ", \
    180         "+prefix+"flxR9Err=b.APER_FLUX_ERR_9 / " + str(self.expTime) + ", \
    181         "+prefix+"flxR9Std=b.APER_FLUX_STDEV_9 / " + str(self.expTime) + ", \
    182         "+prefix+"flxR9Fill=b.APER_FILL_9, \
    183         "+prefix+"flxR10=b.APER_FLUX_10 / " + str(self.expTime) + ", \
    184         "+prefix+"flxR10Err=b.APER_FLUX_ERR_10 / " + str(self.expTime) + ", \
    185         "+prefix+"flxR10Std=b.APER_FLUX_STDEV_10 / " + str(self.expTime) + ", \
    186         "+prefix+"flxR10Fill=b.APER_FILL_10 \
    187         WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition
    188 
    189         self.scratchDb.execute(sql)
     149        "+prefix+"flxR1=-999, \
     150        "+prefix+"flxR1Err=-999, \
     151        "+prefix+"flxR1Std=-999, \
     152        "+prefix+"flxR1Fill=-999, \
     153        "+prefix+"flxR2=-999, \
     154        "+prefix+"flxR2Err=-999, \
     155        "+prefix+"flxR2Std=-999, \
     156        "+prefix+"flxR2Fill=-999, \
     157        "+prefix+"flxR3=-999, \
     158        "+prefix+"flxR3Err=-999, \
     159        "+prefix+"flxR3Std=-999, \
     160        "+prefix+"flxR3Fill=-999, \
     161        "+prefix+"flxR4=-999, \
     162        "+prefix+"flxR4Err=-999, \
     163        "+prefix+"flxR4Std=-999, \
     164        "+prefix+"flxR4Fill=-999, \
     165        "+prefix+"flxR5=-999, \
     166        "+prefix+"flxR5Err=-999, \
     167        "+prefix+"flxR5Std=-999, \
     168        "+prefix+"flxR5Fill=-999, \
     169        "+prefix+"flxR6=-999, \
     170        "+prefix+"flxR6Err=-999, \
     171        "+prefix+"flxR6Std=-999, \
     172        "+prefix+"flxR6Fill=-999, \
     173        "+prefix+"flxR7=-999, \
     174        "+prefix+"flxR7Err=-999, \
     175        "+prefix+"flxR7Std=-999, \
     176        "+prefix+"flxR7Fill=-999, \
     177        "+prefix+"flxR8=-999, \
     178        "+prefix+"flxR8Err=-999, \
     179        "+prefix+"flxR8Std=-999, \
     180        "+prefix+"flxR8Fill=-999, \
     181        "+prefix+"flxR9=-999, \
     182        "+prefix+"flxR9Err=-999, \
     183        "+prefix+"flxR9Std=-999, \
     184        "+prefix+"flxR9Fill=-999, \
     185        "+prefix+"flxR10=-999, \
     186        "+prefix+"flxR10Err=-999, \
     187        "+prefix+"flxR10Std=-999, \
     188        "+prefix+"flxR10Fill=-999 \
     189        WHERE a.ippDetectID=b.IPP_IDET "
     190        #self.logger.infoPair("sql", sql)
     191        self.scratchDb.execute(sql)
     192
     193
     194        #we have variable numbers of these columns. find out which are in use
     195        sql = "DESCRIBE SkyChip_xrad 'aper_fill_%'"
     196        rs = self.scratchDb.executeQuery(sql)
     197        rs.first()
     198        columns = []
     199        column = rs.getString(1)
     200        columns.append(column)
     201        while (rs.next()):
     202            column = rs.getString(1)
     203            columns.append(column)
     204        rs.close()
     205
     206        #use regex to leave just the numbers
     207
     208        numbers = []
     209        for column in columns:
     210            number = re.sub("APER_FILL_","",column)
     211            if (int(number) >= 1 and int(number) <=10):
     212                numbers.append(number)
     213                self.logger.infoPair("Aperture Numbers",number)
     214
     215        #generate the sql to do the necessary ops on the columns   
     216        sql = "UPDATE StackApFlx AS a, SkyChip_xrad AS b SET "
     217        cnt =0
     218        for number in numbers:
     219            if (cnt>0):
     220                sql=sql+" , "
     221            sql=sql+prefix+"flxR"+number+"=b.APER_FLUX_"+number +" / " + str(self.expTime) + ", "
     222            sql=sql+prefix+"flxR"+number+"Err=b.APER_FLUX_ERR_"+number +" / " + str(self.expTime) + ", "
     223            sql=sql+prefix+"flxR"+number+"Std=b.APER_FLUX_STDEV_"+number +" / " + str(self.expTime) + ", "
     224            sql=sql+prefix+"flxR"+number+"Fill=b.APER_FILL_"+number + " "
     225            cnt=cnt+1
     226           
     227        sql=sql+"WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition     
     228        self.scratchDb.execute(sql)
     229
     230        #self.logger.infoPair("sql",sql)
     231
     232        #sql = "UPDATE StackApFlx AS a, SkyChip_xrad AS b SET \
     233        #"+prefix+"flxR1=b.APER_FLUX_1 / " + str(self.expTime) + ", \
     234        #"+prefix+"flxR1Err=b.APER_FLUX_ERR_1 / " + str(self.expTime) + ", \
     235        #"+prefix+"flxR1Std=b.APER_FLUX_STDEV_1 / " + str(self.expTime) + ", \
     236        #"+prefix+"flxR1Fill=b.APER_FILL_1, \
     237        #"+prefix+"flxR2=b.APER_FLUX_2 / " + str(self.expTime) + ", \
     238        ##"+prefix+"flxR2Err=b.APER_FLUX_ERR_2 / " + str(self.expTime) + ", \
     239        #"+prefix+"flxR2Std=b.APER_FLUX_STDEV_2 / " + str(self.expTime) + ", \
     240        #"+prefix+"flxR2Fill=b.APER_FILL_2, \
     241        #"+prefix+"flxR3=b.APER_FLUX_3 / " + str(self.expTime) + ", \
     242        #"+prefix+"flxR3Err=b.APER_FLUX_ERR_3 / " + str(self.expTime) + ", \
     243        #"+prefix+"flxR3Std=b.APER_FLUX_STDEV_3 / " + str(self.expTime) + ", \
     244        #"+prefix+"flxR3Fill=b.APER_FILL_3, \
     245        #"+prefix+"flxR4=b.APER_FLUX_4 / " + str(self.expTime) + ", \
     246        #"+prefix+"flxR4Err=b.APER_FLUX_ERR_4 / " + str(self.expTime) + ", \
     247        #"+prefix+"flxR4Std=b.APER_FLUX_STDEV_4 / " + str(self.expTime) + ", \
     248        #"+prefix+"flxR4Fill=b.APER_FILL_4, \
     249        #"+prefix+"flxR5=b.APER_FLUX_5 / " + str(self.expTime) + ", \
     250        #"+prefix+"flxR5Err=b.APER_FLUX_ERR_5 / " + str(self.expTime) + ", \
     251        #"+prefix+"flxR5Std=b.APER_FLUX_STDEV_5 / " + str(self.expTime) + ", \
     252        #"+prefix+"flxR5Fill=b.APER_FILL_5, \
     253        #"+prefix+"flxR6=b.APER_FLUX_6 / " + str(self.expTime) + ", \
     254        #"+prefix+"flxR6Err=b.APER_FLUX_ERR_6 / " + str(self.expTime) + ", \
     255        #"+prefix+"flxR6Std=b.APER_FLUX_STDEV_6 / " + str(self.expTime) + ", \
     256        #"+prefix+"flxR6Fill=b.APER_FILL_6, \
     257        #"+prefix+"flxR7=b.APER_FLUX_7 / " + str(self.expTime) + ", \
     258        #"+prefix+"flxR7Err=b.APER_FLUX_ERR_7 / " + str(self.expTime) + ", \
     259        #"+prefix+"flxR7Std=b.APER_FLUX_STDEV_7 / " + str(self.expTime) + ", \
     260        #"+prefix+"flxR7Fill=b.APER_FILL_7, \
     261        #"+prefix+"flxR8=b.APER_FLUX_8 / " + str(self.expTime) + ", \
     262        #"+prefix+"flxR8Err=b.APER_FLUX_ERR_8 / " + str(self.expTime) + ", \
     263        #"+prefix+"flxR8Std=b.APER_FLUX_STDEV_8 / " + str(self.expTime) + ", \
     264        #"+prefix+"flxR8Fill=b.APER_FILL_8, \
     265        #"+prefix+"flxR9=b.APER_FLUX_9 / " + str(self.expTime) + ", \
     266        #"+prefix+"flxR9Err=b.APER_FLUX_ERR_9 / " + str(self.expTime) + ", \
     267        #"+prefix+"flxR9Std=b.APER_FLUX_STDEV_9 / " + str(self.expTime) + ", \
     268        #"+prefix+"flxR9Fill=b.APER_FILL_9, \
     269        #"+prefix+"flxR10=b.APER_FLUX_10 / " + str(self.expTime) + ", \
     270        #"+prefix+"flxR10Err=b.APER_FLUX_ERR_10 / " + str(self.expTime) + ", \
     271        #"+prefix+"flxR10Std=b.APER_FLUX_STDEV_10 / " + str(self.expTime) + ", \
     272        #"+prefix+"flxR10Fill=b.APER_FILL_10 \
     273        #WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition
     274
     275        #self.scratchDb.execute(sql)
    190276
    191277    '''
     
    395481               ,KRON_FLUX_ERR / " + str(self.expTime) + " \
    396482               ,MOMENTS_R1 * 2.5 \
    397                ,PSF_CHISQ \
     483               ,PSF_CHISQ / PSF_NDOF \
    398484               ,N_FRAMES \
    399485               , '" + self.dateStr + "' \
  • branches/eam_branches/ipp-20121130/ippToPsps/src/Dvo.c

    r34629 r34839  
    2121    if (this->mysql) mysql_close(this->mysql);
    2222
    23     free(this);
     23    // libohana redirects free and gets confused by thigns allocated by calloc
     24    // so call the real free funtion through this warpper
     25    real_free(this);
    2426}
    2527
     
    9496                PhotCode *code = GetPhotcodebyCode(meas->photcode);
    9597                sprintf(sql,
    96                         "INSERT INTO dvoDetection (imageID, ippDetectID, detectID, ippObjID, objID, flags, zp, zpErr, airMass, expTime, ra, dec_, raErr, decErr) VALUES (%d, %u, %lu, %lu, %lu, %u, %f, %f, %f, %f, %lf, %lf, %f %f)",
     98                        "INSERT INTO dvoDetection (imageID, ippDetectID, detectID, ippObjID, objID, flags, zp, zpErr, airMass, expTime, ra, dec_, raErr, decErr) VALUES (%d, %u, %lu, %lu, %lu, %u, %f, %f, %f, %f, %lf, %lf, %f, %f)",
    9799                        image->imageID,    // imageID
    98100                        meas->detID,   // ippDetectID
    99101                        meas->extID,   // detectID
    100102                        (uint64_t)ave->catID*1000000000 + (uint64_t)ave->objID, // ippObjID
    101                         dvoDetections[i].ave.extID,   // objID
    102                         meas->dbFlags,                // flags
     103                        ave->extID,   // objID
     104                        meas->dbFlags,  // flags
    103105                        code->C * 0.001 + code->K * (meas->airmass - 1) - meas->Mcal,   // zp
    104                         meas->dMcal,                  // zpErr
     106                        meas->dMcal,    // zpErr
    105107                        meas->airmass,
    106108                        pow(10.0, 0.4 * meas->dt),    // expTime
    107109                        ave->R - meas->dR / 3600.,    // ra
    108110                        ave->D - meas->dR / 3600.,    // dec
    109                         meas->dXccd * meas->pltscale, // estimate of raErr
    110                         meas->dYccd * meas->pltscale // estimate of decErr
     111                        meas->dXccd * 0.01 * fabs(meas->pltscale), // estimate of raErr
     112                        meas->dYccd * 0.01 * fabs(meas->pltscale) // estimate of decErr
    111113                        );
    112114
  • branches/eam_branches/ipp-20121130/ippTools/configure.ac

    r34081 r34839  
    11AC_PREREQ(2.61)
    22
    3 AC_INIT([ipptools], [1.1.71], [ipp-support@ifa.hawaii.edu])
     3AC_INIT([ipptools], [1.1.73], [ipp-support@ifa.hawaii.edu])
    44AC_CONFIG_SRCDIR([autogen.sh])
    55
  • branches/eam_branches/ipp-20121130/ippTools/share/Makefile.am

    r34265 r34839  
    8888        chiptool_listrun.sql \
    8989        chiptool_pendingcleanupimfile.sql \
     90        chiptool_pendingcleanupimfile_all.sql \
    9091        chiptool_pendingcleanuprun.sql \
    9192        chiptool_pendingimfile.sql \
     
    172173        difftool_pendingcleanuprun.sql \
    173174        difftool_pendingcleanupskyfile.sql \
     175        difftool_pendingcleanupskyfile_all.sql \
    174176        difftool_revertdiffskyfile_delete.sql \
    175177        difftool_revertdiffskyfile_updated.sql \
     
    391393        stacktool_sassskyfile.sql \
    392394        stacktool_tosum.sql \
     395        stacktool_tobkg.sql \
    393396        stacktool_tosummary.sql \
    394397        stacktool_addsummary.sql \
     
    423426        warptool_pendingcleanuprun.sql \
    424427        warptool_pendingcleanupskyfile.sql \
     428        warptool_pendingcleanupskyfile_all.sql \
    425429        warptool_revertoverlap.sql \
    426430        warptool_revertwarped_delete.sql \
  • branches/eam_branches/ipp-20121130/ippTools/share/camtool_find_pendingimfile.sql

  • branches/eam_branches/ipp-20121130/ippTools/share/camtool_pendingcleanuprun.sql

    r25324 r34839  
    22    camRun.cam_id,
    33    rawExp.camera,
     4    rawExp.exp_tag,
     5    camRun.workdir,
    46    camRun.state
    57FROM camRun
  • branches/eam_branches/ipp-20121130/ippTools/share/chiptool_pendingcleanuprun.sql

    r22751 r34839  
    1 SELECT
     1SELECT DISTINCT
    22    chipRun.chip_id,
    33    rawExp.camera,
    4     chipRun.state
     4    rawExp.exp_tag,
     5    chipRun.state,
     6    chipRun.workdir
    57FROM chipRun
    68JOIN rawExp
  • branches/eam_branches/ipp-20121130/ippTools/share/chiptool_setimfiletoupdate.sql

  • branches/eam_branches/ipp-20121130/ippTools/share/difftool_pendingcleanuprun.sql

    r32218 r34839  
    66            rawExp.camera,
    77            diffRun.state,
     8            diffRun.workdir,
     9            diffRun.tess_id,
    810            diffRun.label
    911        FROM diffRun
     
    3537            rawExp.camera,
    3638            diffRun.state,
     39            diffRun.workdir,
     40            diffRun.tess_id,
    3741            diffRun.label
    3842        FROM diffRun
     
    6468            rawExp.camera,
    6569            diffRun.state,
     70            diffRun.workdir,
     71            diffRun.tess_id,
    6672            diffRun.label
    6773        FROM diffRun
     
    9399            rawExp.camera,
    94100            diffRun.state,
     101            diffRun.workdir,
     102            diffRun.tess_id,
    95103            diffRun.label
    96104        FROM diffRun
  • branches/eam_branches/ipp-20121130/ippTools/share/pstamptool_revertdependent.sql

    r29286 r34839  
    44SET pstampDependent.fault = 0
    55-- fault count hook %s
    6 WHERE pstampDependent.state = 'new'
     6WHERE pstampRequest.state ='run'
     7    AND pstampJob.state ='run'
     8    AND pstampDependent.state = 'new'
    79    AND (pstampDependent.fault > 0)
  • branches/eam_branches/ipp-20121130/ippTools/share/pxadmin_create_tables.sql

    r34750 r34839  
    21192119      n_detections INT,
    21202120      n_extended INT,
     2121      n_forced INT,
    21212122      zpt_obs FLOAT,
    21222123      zpt_stdev FLOAT,
  • branches/eam_branches/ipp-20121130/ippTools/share/stacktool_inputskyfile.sql

    r32937 r34839  
    44    rawExp.exp_id,
    55    rawExp.exp_name,
     6    rawExp.exp_time,
    67    rawExp.object,
    78    rawExp.dateobs,
  • branches/eam_branches/ipp-20121130/ippTools/share/stacktool_pendingcleanuprun.sql

    r24186 r34839  
    88    stackRun.stack_id,
    99    rawExp.camera,
    10     stackRun.state
     10    stackRun.state,
     11    stackSumSkyfile.path_base
    1112FROM stackRun
     13JOIN stackSumSkyfile using(stack_id)
    1214JOIN stackInputSkyfile
    1315    USING(stack_id)
  • branches/eam_branches/ipp-20121130/ippTools/share/staticskytool_defineskycalrun.sql

    r32960 r34839  
    22    sky_id,
    33    stack_id,
     4    skycell_id,
     5    filter,
    46    staticskyRun.workdir,
    57    staticskyRun.label,
     
    1113    JOIN stackRun USING(stack_id)
    1214    JOIN stackSumSkyfile USING(stack_id)
     15    JOIN skycell USING(tess_id, skycell_id)
    1316    LEFT JOIN skycalRun USING(sky_id, stack_id)
    1417WHERE staticskyRun.state = 'full'
  • branches/eam_branches/ipp-20121130/ippTools/share/staticskytool_pendingskycalrun.sql

    r34743 r34839  
    66    staticskyResult.path_base,
    77    rawExp.camera,
    8     0 AS singlefilter
     8    staticskyResult.num_inputs = 1 AS singlefilter
    99FROM skycalRun
    1010JOIN staticskyRun USING (sky_id)
  • branches/eam_branches/ipp-20121130/ippTools/share/warptool_pendingcleanuprun.sql

    r23418 r34839  
    11SELECT
    22    warpRun.warp_id,
     3    warpRun.workdir,
    34    rawExp.camera,
     5    rawExp.exp_tag,
    46    warpRun.state
    57FROM warpRun
  • branches/eam_branches/ipp-20121130/ippTools/share/warptool_towarped.sql

  • branches/eam_branches/ipp-20121130/ippTools/src

  • branches/eam_branches/ipp-20121130/ippTools/src/chiptool.c

    r34501 r34839  
    13111311    PXOPT_LOOKUP_S64(chip_id, config->args, "-chip_id", false, false);
    13121312    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1313    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    13131314    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    13141315
     
    13191320    pxAddLabelSearchArgs (config, where, "-label", "label", "==");
    13201321
    1321     psString query = pxDataGet("chiptool_pendingcleanupimfile.sql");
     1322    char *sql_file = all ? "chiptool_pendingcleanupimfile_all.sql" : "chiptool_pendingcleanupimfile.sql";
     1323    psString query = pxDataGet(sql_file);
    13221324    if (!query) {
    13231325        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
  • branches/eam_branches/ipp-20121130/ippTools/src/chiptoolConfig.c

    r34501 r34839  
    296296    psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-chip_id", 0,          "search by chip ID", 0);
    297297    psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-exp_id",                 0,            "search by exp_id", NULL);
     298    psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-all",  0,            "list all components regardless of data_state", false);
    298299    psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    299300    psMetadataAddU64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
  • branches/eam_branches/ipp-20121130/ippTools/src/difftool.c

    r34538 r34839  
    25612561
    25622562    PXOPT_LOOKUP_S64(diff_id, config->args, "-diff_id", false, false);
     2563    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    25632564    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    25642565    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
    25702571    pxAddLabelSearchArgs (config, where, "-label", "diffRun.label", "==");
    25712572
    2572     psString query = pxDataGet("difftool_pendingcleanupskyfile.sql");
     2573    char * sql_file  = all ? "difftool_pendingcleanupskyfile_all.sql": "difftool_pendingcleanupskyfile.sql" ;
     2574    psString query = pxDataGet(sql_file);
    25732575    if (!query) {
    25742576        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     
    27402742    PS_ASSERT_PTR_NON_NULL(config, false);
    27412743
    2742     PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
    2743     PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
    2744 
    2745     psMetadata *where = psMetadataAlloc();
    2746     PXOPT_COPY_S64(config->args, where, "-diff_id",   "diff_id",   "==");
    2747     PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id",   "==");
    2748 
    2749     if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault, quality)) {
    2750         psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
     2744    PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
     2745
     2746    if (!state) {
     2747        psMetadata *where = psMetadataAlloc();
     2748        PXOPT_COPY_S64(config->args, where, "-diff_id",   "diff_id",   "==");
     2749        PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id",   "==");
     2750
     2751        PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
     2752        PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
     2753
     2754        if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault, quality)) {
     2755            psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
     2756            psFree (where);
     2757            return false;
     2758        }
    27512759        psFree (where);
    2752         return false;
    2753     }
    2754     psFree (where);
     2760    } else {
     2761      if (strcmp(state,"error_cleaned") == 0) {
     2762        change_skyfile_data_state(config,"error_cleaned", "goto_cleaned");
     2763      }
     2764      else if (strcmp(state, "error_scrubbed") == 0) {
     2765        change_skyfile_data_state(config,"error_scrubbed", "goto_scrubbed");
     2766      }
     2767      else if (strcmp(state, "error_purged") == 0) {
     2768        change_skyfile_data_state(config,"error_purged", "goto_purged");
     2769      }
     2770      else {
     2771        psError(PS_ERR_UNKNOWN, false, "unhandled state given");
     2772        return(false);
     2773      }
     2774    }
    27552775
    27562776    return true;
  • branches/eam_branches/ipp-20121130/ippTools/src/difftoolConfig.c

    r34443 r34839  
    395395    psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL);
    396396    psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-diff_id", 0,          "search by diff ID", 0);
     397    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-all",  0,            "list all skycells regardless of data_state", false);
    397398    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    398399    psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     
    411412    psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple",  0,          "use the simple output format", false);
    412413    psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     414
    413415    // -updatediffskyfile
    414416    psMetadata *updatediffskyfileArgs = psMetadataAlloc();
     
    416418    psMetadataAddStr(updatediffskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0,   "search by skycell ID", NULL);
    417419    psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-fault", 0,        "set fault code (required)", 0);
    418     psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-set_quality", 0,      "set quality", 0);
     420    psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-set_quality", 0,  "set quality", 0);
     421    psMetadataAddStr(updatediffskyfileArgs, PS_LIST_TAIL, "-set_state", 0,    "set data_state state", NULL);
    419422
    420423    // -tocleanedskyfile
  • branches/eam_branches/ipp-20121130/ippTools/src/magictool.c

  • branches/eam_branches/ipp-20121130/ippTools/src/stacktool.c

    r34731 r34839  
    3737static bool inputskyfileMode(pxConfig *config);
    3838static bool tosumMode(pxConfig *config);
     39static bool tobkgMode(pxConfig *config);
    3940static bool addsumskyfileMode(pxConfig *config);
    4041static bool sumskyfileMode(pxConfig *config);
     
    7677        MODECASE(STACKTOOL_MODE_INPUTSKYFILE,          inputskyfileMode);
    7778        MODECASE(STACKTOOL_MODE_TOSUM,                 tosumMode);
     79        MODECASE(STACKTOOL_MODE_TOBKG,                 tobkgMode);
    7880        MODECASE(STACKTOOL_MODE_ADDSUMSKYFILE,         addsumskyfileMode);
    7981        MODECASE(STACKTOOL_MODE_SUMSKYFILE,            sumskyfileMode);
     
    952954        // negative simple so the default is true
    953955        if (!ippdbPrintMetadatas(stdout, output, "stackSumSkyfile", !simple)) {
     956            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     957            psFree(output);
     958            return false;
     959        }
     960    }
     961
     962    psFree(output);
     963
     964    return true;
     965}
     966
     967static bool tobkgMode(pxConfig *config)
     968{
     969    PS_ASSERT_PTR_NON_NULL(config, false);
     970
     971    psMetadata *where = psMetadataAlloc();
     972    PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "==");
     973    pxAddLabelSearchArgs (config, where, "-label", "stackRun.label", "==");
     974
     975    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     976    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     977
     978    psString query = pxDataGet("stacktool_tobkg.sql");
     979    if (!query) {
     980        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     981        return false;
     982    }
     983
     984    psString whereClause = psStringCopy(""); // WHERE conditions to add
     985    if (psListLength(where->list)) {
     986        psString new = psDBGenerateWhereConditionSQL(where, NULL);
     987        psStringAppend(&whereClause, "\nAND %s", new);
     988        psFree(new);
     989    }
     990    psFree(where);
     991
     992    psStringAppend(&query, "\nORDER by priority DESC, stack_id");
     993
     994    // treat limit == 0 as "no limit"
     995    if (limit) {
     996        psString limitString = psDBGenerateLimitSQL(limit);
     997        psStringAppend(&query, " %s", limitString);
     998        psFree(limitString);
     999    }
     1000
     1001    if (!p_psDBRunQueryF(config->dbh, query, whereClause)) {
     1002        psError(PS_ERR_UNKNOWN, false, "database error");
     1003        psFree(query);
     1004        return false;
     1005    }
     1006    psFree(query);
     1007
     1008    psArray *output = p_psDBFetchResult(config->dbh);
     1009    if (!output) {
     1010        psErrorCode err = psErrorCodeLast();
     1011        switch (err) {
     1012            case PS_ERR_DB_CLIENT:
     1013                psError(PXTOOLS_ERR_SYS, false, "database error");
     1014            case PS_ERR_DB_SERVER:
     1015                psError(PXTOOLS_ERR_PROG, false, "database error");
     1016            default:
     1017                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1018        }
     1019
     1020        return false;
     1021    }
     1022    if (!psArrayLength(output)) {
     1023        psTrace("stacktool", PS_LOG_INFO, "no rows found");
     1024        psFree(output);
     1025        return true;
     1026    }
     1027
     1028    if (psArrayLength(output)) {
     1029        // negative simple so the default is true
     1030        if (!ippdbPrintMetadatas(stdout, output, "stackBkgSkyfile", !simple)) {
    9541031            psError(PS_ERR_UNKNOWN, false, "failed to print array");
    9551032            psFree(output);
     
    16811758    PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
    16821759    PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
     1760    PXOPT_LOOKUP_S16(background_model, config->args, "-set_background_model", false, false);
    16831761
    16841762    psMetadata *where = psMetadataAlloc();
    16851763    PXOPT_COPY_S64(config->args, where, "-stack_id",   "stack_id",   "==");
    16861764
    1687     if (!pxSetFaultCode(config->dbh, "stackSumSkyfile", where, fault, quality)) {
     1765    if (background_model) {
     1766      psMetadata *values = psMetadataAlloc();
     1767      PXOPT_COPY_S16(config->args, values, "-set_background_model", "background_model", "==");
     1768      long rows = psDBUpdateRows(config->dbh,"stackSumSkyfile", where, values);
     1769      psFree(values);
     1770      if (!rows) {
     1771        // This maybe should rollback and error if rows != 1
     1772        psError(PS_ERR_UNKNOWN, true, "no rows changed");
     1773        return false;
     1774      }
     1775    }
     1776    else {   
     1777      if (!pxSetFaultCode(config->dbh, "stackSumSkyfile", where, fault, quality)) {
    16881778        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
    16891779        psFree (where);
    16901780        return false;
     1781      }
    16911782    }
    16921783    psFree (where);
  • branches/eam_branches/ipp-20121130/ippTools/src/stacktool.h

    r28375 r34839  
    3131    STACKTOOL_MODE_INPUTSKYFILE,
    3232    STACKTOOL_MODE_TOSUM,
     33    STACKTOOL_MODE_TOBKG,
    3334    STACKTOOL_MODE_ADDSUMSKYFILE,
    3435    STACKTOOL_MODE_SUMSKYFILE,
  • branches/eam_branches/ipp-20121130/ippTools/src/stacktoolConfig.c

    r34731 r34839  
    150150    psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    151151
     152    // -tobkg
     153    psMetadata *tobkgArgs = psMetadataAlloc();
     154    psMetadataAddS64(tobkgArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
     155    psMetadataAddStr(tobkgArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL);
     156    psMetadataAddU64(tobkgArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     157    psMetadataAddBool(tobkgArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     158   
    152159    // -addsumskyfile
    153160    psMetadata *addsumskyfileArgs = psMetadataAlloc();
     
    280287    psMetadataAddS16(updatesumskyfileArgs, PS_LIST_TAIL, "-fault", 0,            "set fault code (required)", 0);
    281288    psMetadataAddS16(updatesumskyfileArgs, PS_LIST_TAIL, "-set_quality", 0,            "set quality", 0);
    282 
     289    psMetadataAddS16(updatesumskyfileArgs, PS_LIST_TAIL, "-set_background_model", 0,   "set background model", 0);
     290   
    283291    // -exportrun
    284292    psMetadata *exportrunArgs = psMetadataAlloc();
     
    304312    PXOPT_ADD_MODE("-inputskyfile",    "", STACKTOOL_MODE_INPUTSKYFILE,    inputskyfileArgs);
    305313    PXOPT_ADD_MODE("-tosum",           "", STACKTOOL_MODE_TOSUM,          tosumArgs);
     314    PXOPT_ADD_MODE("-tobkg",           "", STACKTOOL_MODE_TOBKG,          tobkgArgs);
    306315    PXOPT_ADD_MODE("-addsumskyfile",   "", STACKTOOL_MODE_ADDSUMSKYFILE,   addsumskyfileArgs);
    307316    PXOPT_ADD_MODE("-sumskyfile",      "list results of stackRun", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
  • branches/eam_branches/ipp-20121130/ippTools/src/staticskytool.c

    r34733 r34839  
    132132    pxAddLabelSearchArgs(config, whereMD, "-select_data_group",    "stackRun.data_group",       "LIKE");
    133133    pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
    134 #ifdef notdef
    135     PXOPT_COPY_F32(config->args, whereMD, "-select_glat_min",      "skycell.glat",              ">=");
    136     PXOPT_COPY_F32(config->args, whereMD, "-select_glat_max",      "skycell.glat",              "<=");
    137     PXOPT_COPY_F32(config->args, whereMD, "-select_rahours_min",   "skycell.radeg/15",          ">=");
    138     PXOPT_COPY_F32(config->args, whereMD, "-select_rahours_max",   "skycell.radeg/15",          "<=");
    139     PXOPT_COPY_F32(config->args, whereMD, "-select_radeg_min",     "skycell.radeg",             ">=");
    140     PXOPT_COPY_F32(config->args, whereMD, "-select_radeg_max",     "skycell.radeg",             "<=");
    141     PXOPT_COPY_F32(config->args, whereMD, "-select_decdeg_min",    "skycell.decdeg",             ">=");
    142     PXOPT_COPY_F32(config->args, whereMD, "-select_decdeg_max",    "skycell.decdeg",             "<=");
    143 #endif
    144134    if (!pxskycellAddWhere(config, whereMD)) {
    145135        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
     
    686676    psStringAppend(&query, "\nGROUP BY sky_id");
    687677    if (num_filters) {
    688         psStringAppend(&query, "\nHAVING COUNT(filter) >= %d", num_filters);
     678        psStringAppend(&query, "\nHAVING COUNT(filter) = %d", num_filters);
    689679    }
    690680       
     
    10491039    pxAddLabelSearchArgs(config, whereMD, "-select_data_group",    "staticskyRun.data_group",       "LIKE");
    10501040    pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
     1041    if (!pxskycellAddWhere(config, whereMD)) {
     1042        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
     1043        return false;
     1044    }
    10511045
    10521046    PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false);
     
    11281122        psString sky_label =  psMetadataLookupStr(&status, row, "label");
    11291123        psString sky_data_group =  psMetadataLookupStr(&status, row, "data_group");
     1124        psString sky_dist_group =  psMetadataLookupStr(&status, row, "dist_group");
    11301125
    11311126        // create a staticskyRun
     
    11381133                                label ? label : sky_label,
    11391134                                data_group ? data_group : sky_data_group,
    1140                                 dist_group,
     1135                                dist_group ? dist_group : sky_dist_group,
    11411136                                reduction,
    11421137                                registered,
     
    11591154
    11601155    psMetadata *where = psMetadataAlloc();
    1161     PXOPT_COPY_S64(config->args, where, "-skycal_id",  "skycal_id",   "==");
    1162     PXOPT_COPY_STR(config->args, where, "-label",   "label",    "==");
    1163     PXOPT_COPY_STR(config->args, where, "-state",   "state",    "==");
     1156    PXOPT_COPY_S64(config->args, where, "-skycal_id", "skycal_id",   "==");
     1157    PXOPT_COPY_S64(config->args, where, "-sky_id",   "sky_id",   "==");
     1158    PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id",   "==");
     1159    PXOPT_COPY_STR(config->args, where, "-label",   "skycalRun.label",    "==");
     1160    PXOPT_COPY_STR(config->args, where, "-state",   "skycalRun.state",    "==");
     1161    if (!pxskycellAddWhere(config, where)) {
     1162        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
     1163        return false;
     1164    }
    11641165    if (!psListLength(where->list)) {
    11651166        psFree(where);
     
    11681169    }
    11691170
    1170     psString query = psStringCopy("UPDATE skycalRun");
     1171    psString query = psStringCopy("UPDATE skycalRun JOIN stackRun using(stack_id) join skycell using(tess_id, skycell_id)");
    11711172
    11721173    // pxUpdateRun gets parameters from config->args and updates
     
    12761277    PXOPT_LOOKUP_STR(hostname, config->args,    "-hostname", false, false);
    12771278    PXOPT_LOOKUP_S32(n_astrom, config->args,    "-n_astrom", false, false);
    1278     PXOPT_LOOKUP_S32(n_detections, config->args,    "-n_detections", false, false);
    1279     PXOPT_LOOKUP_S32(n_extended, config->args,    "-n_extended", false, false);
     1279    PXOPT_LOOKUP_S32(n_detections, config->args,"-n_detections", false, false);
     1280    PXOPT_LOOKUP_S32(n_extended, config->args,  "-n_extended", false, false);
     1281    PXOPT_LOOKUP_S32(n_forced, config->args,    "-n_forced", false, false);
    12801282
    12811283    PXOPT_LOOKUP_STR(path_base, config->args,   "-path_base", false, false);
     
    13181320        n_detections,
    13191321        n_extended,
     1322        n_forced,
    13201323        zpt_obs,
    13211324        zpt_stdev,
  • branches/eam_branches/ipp-20121130/ippTools/src/staticskytoolConfig.c

    r34733 r34839  
    126126    psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);
    127127    psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group (LIKE comparison)", NULL);
    128     psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-num_filters", 0, "search by number of filters in the inputs (>=)", 0);
     128    psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-num_filters", 0, "search by number of filters in the inputs", 0);
    129129    pxskycellAddArguments(resultArgs);
    130130    psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0);
     
    166166    psMetadataAddStr(defineskycalrunArgs,  PS_LIST_TAIL, "-select_data_group", PS_META_DUPLICATE_OK, "search by stackRun data_group (LIKE comparison, multiple OK)", NULL);
    167167    psMetadataAddStr(defineskycalrunArgs,  PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL);
     168    pxskycellAddArguments(defineskycalrunArgs);
    168169    psMetadataAddStr(defineskycalrunArgs,  PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL);
    169170    psMetadataAddStr(defineskycalrunArgs,  PS_LIST_TAIL, "-set_label", 0, "define label", NULL);
     
    181182    psMetadata *updateskycalrunArgs = psMetadataAlloc();
    182183    psMetadataAddS64(updateskycalrunArgs, PS_LIST_TAIL, "-skycal_id", 0, "search by skycal ID", 0);
     184    psMetadataAddS64(updateskycalrunArgs, PS_LIST_TAIL, "-sky_id", 0,    "search by sky ID", 0);
     185    psMetadataAddS64(updateskycalrunArgs, PS_LIST_TAIL, "-stack_id", 0,  "search by stack ID", 0);
    183186    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL);
    184187    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0);
     188    pxskycellAddArguments(updateskycalrunArgs);
    185189    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_label", 0, "define new value for label", NULL);
    186190    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_state", 0, "define new state", NULL);
     
    215219    psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_detections", 0,        "define number of detections", 0);
    216220    psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_extended", 0,          "define number of extended detections", 0);
     221    psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_forced", 0,            "define number of forced detections", 0);
    217222
    218223    psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-path_base", 0,            "define base output location", NULL);
  • branches/eam_branches/ipp-20121130/ippTools/src/warptool.c

    r34731 r34839  
    18381838    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    18391839    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1840    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    18401841
    18411842    psMetadata *where = psMetadataAlloc();
     
    18431844    pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "==");
    18441845
    1845     psString query = pxDataGet("warptool_pendingcleanupskyfile.sql");
     1846    char * sql_file = all ? "warptool_pendingcleanupskyfile_all.sql" : "warptool_pendingcleanupskyfile.sql";
     1847    psString query = pxDataGet(sql_file);
    18461848    if (!query) {
    18471849        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     
    20572059        PXOPT_LOOKUP_S64(magicked, config->args, "-set_magicked", false, false);
    20582060        PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
     2061
    20592062        if (magicked) {
    20602063            psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.magicked = %" PRId64, magicked);
     
    20632066        if (quality) {
    20642067          psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.quality = %"PRId16, quality);
     2068        }
     2069        PXOPT_LOOKUP_S16(background_model, config->args, "-set_background_model", false, false);
     2070        if (background_model) {
     2071          psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.background_model = %"PRId16, background_model);
    20652072        }
    20662073    } else if (!strcmp(data_state, "cleaned") || !strcmp(data_state, "purged")) {
     
    21232130    // warp_id, skycell_id, fault are required
    21242131    PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
    2125 
    2126     if (!state) {
     2132    PXOPT_LOOKUP_S16(background_model, config->args, "-set_background_model", false, false);
     2133    if (background_model) {
     2134      // CZW 2012-12-06: I'm unclear why we don't use this form for all updates?
     2135      psMetadata *where = psMetadataAlloc();
     2136      psMetadata *values = psMetadataAlloc();
     2137      PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
     2138      PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "==");
     2139      PXOPT_COPY_S16(config->args, values, "-set_background_model", "background_model", "==");
     2140      long rows = psDBUpdateRows(config->dbh,"warpSkyfile", where, values);
     2141      psFree(values);
     2142      psFree(where);
     2143      if (!rows) {
     2144        // This maybe should rollback and error if rows != 1
     2145        psError(PS_ERR_UNKNOWN, true, "no rows changed");
     2146        return false;
     2147      }
     2148    }
     2149    else if (!state) {
    21272150      psMetadata *where = psMetadataAlloc();
    21282151      PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
  • branches/eam_branches/ipp-20121130/ippTools/src/warptoolConfig.c

    r34731 r34839  
    364364    psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL);
    365365    psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,          "search by warp ID (required)", 0);
     366    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-all",  0,            "list all skycells regardless of data_state", false);
    366367    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    367368    psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     
    409410    psMetadataAddS16(updateskyfileArgs, PS_LIST_TAIL, "-set_quality",  0,"new quality value", 0);
    410411    psMetadataAddStr(updateskyfileArgs, PS_LIST_TAIL, "-set_state", 0,   "set state", 0);
    411 
     412    psMetadataAddS16(updateskyfileArgs, PS_LIST_TAIL, "-set_background_model", 0, "set the background_model value", 0);
    412413    // -exportrun
    413414    psMetadata *exportrunArgs = psMetadataAlloc();
  • branches/eam_branches/ipp-20121130/magic/censorObjects/src/censorLoop.c

    r33626 r34839  
    2929
    3030
    31 
    32 
    3331    // select the current recipe
    3432    psMetadata *recipe  = psMetadataLookupPtr (NULL, config->recipes, CENSOR_RECIPE);
     
    5856    // check on the mask file at this level if possible
    5957    badMaskFile = censorBadFileByView(badMaskFile, inMask, config, view);
     58
     59    bool checkInputOnly = psMetadataLookupBool(NULL, config->arguments, "CHECK.INPUT.ONLY");
    6060
    6161    // files associated with the science image
     
    116116                if (!readout->data_exists) { continue; }
    117117
    118                 if (!censorReadout (readout, config, view, badMaskFile)) ESCAPE;
     118                if (!checkInputOnly) {
     119                    if (!censorReadout (readout, config, view, badMaskFile)) ESCAPE;
     120                }
    119121
    120122                if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
Note: See TracChangeset for help on using the changeset viewer.