Changeset 14115
- Timestamp:
- Jul 10, 2007, 3:18:44 PM (19 years ago)
- Location:
- trunk/ippScripts/scripts
- Files:
-
- 12 edited
-
camera_exp.pl (modified) (13 diffs)
-
chip_imfile.pl (modified) (3 diffs)
-
detrend_norm_apply.pl (modified) (3 diffs)
-
detrend_norm_exp.pl (modified) (3 diffs)
-
detrend_process_exp.pl (modified) (3 diffs)
-
detrend_process_imfile.pl (modified) (3 diffs)
-
detrend_reject_exp.pl (modified) (4 diffs)
-
detrend_reject_imfile.pl (modified) (5 diffs)
-
detrend_resid.pl (modified) (4 diffs)
-
detrend_stack.pl (modified) (3 diffs)
-
register_exp.pl (modified) (5 diffs)
-
register_imfile.pl (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippScripts/scripts/camera_exp.pl
r13824 r14115 16 16 use IPC::Cmd 0.36 qw( can_run run ); 17 17 use PS::IPP::Metadata::Config; 18 use PS::IPP::Metadata::Stats; 18 19 use PS::IPP::Metadata::List qw( parse_md_list ); 19 use Statistics::Descriptive; 20 20 21 use File::Temp qw( tempfile ); 21 22 … … 34 35 use Pod::Usage qw( pod2usage ); 35 36 36 my ($exp_ id, $cam_id, $recipe, $camera, $dbname, $workdir, $dvodb, $no_update, $no_op);37 my ($exp_tag, $cam_id, $recipe, $camera, $dbname, $workdir, $reduction, $dvodb, $no_update, $no_op); 37 38 GetOptions( 38 'exp_ id=s' => \$exp_id, # Exposure identifier39 'exp_tag=s' => \$exp_tag, # Exposure identifier 39 40 'cam_id=s' => \$cam_id, # Camtool identifier 40 41 'recipe=s' => \$recipe, # Recipe to use … … 42 43 'dbname|d=s' => \$dbname, # Database name 43 44 'workdir|w=s' => \$workdir, # Working directory 45 'reduction=s' => \$reduction, # Reduction class 44 46 'dvodb|w=s' => \$dvodb, # output DVO database 45 47 'no-update' => \$no_update, # Update the database? … … 49 51 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV; 50 52 pod2usage( 51 -msg => "Required options: --exp_ id--cam_id --camera",53 -msg => "Required options: --exp_tag --cam_id --camera", 52 54 -exitval => 3, 53 ) unless defined $exp_ id55 ) unless defined $exp_tag 54 56 and defined $cam_id 55 57 and defined $camera; … … 57 59 $ipprc->define_camera($camera); 58 60 59 use constant RECIPE1 => 'PPIMAGE_J1'; # Recipe to use for ppImage to make JPEGs 60 use constant RECIPE2 => 'PPIMAGE_J2'; # Recipe to use for ppImage to make JPEGs 61 61 # Recipes to use based on reduction class 62 $reduction = 'DEFAULT' unless defined $reduction; 63 64 my $recipe1 = $ipprc->reduction($reduction, 'JPEG_BIN1'); # Recipe to use 65 &my_die("Unrecognised JPEG recipe", $cam_id, $PS_EXIT_PROG_ERROR) unless defined $recipe1; 66 67 my $recipe2 = $ipprc->reduction($reduction, 'JPEG_BIN2'); # Recipe to use 68 &my_die("Unrecognised JPEG recipe", $cam_id, $PS_EXIT_PROG_ERROR) unless defined $recipe2; 69 70 # values to extract from output metadata and the stats to calculate 71 my $CHIPSTATS = 72 [ 73 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 74 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, 75 { name => "bg_mean_stdev", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 76 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, 77 78 # these should be coming from the psastro results for Nimfile > 1, 79 { name => "sigma_ra", type => "rms", flag => "-sigma_ra", dtype => "float" }, 80 { name => "sigma_dec", type => "rms", flag => "-sigma_dec", dtype => "float" }, 81 { name => "n_stars", type => "sum", flag => "-n_stars", dtype => "int" }, 82 { name => "n_astrom", type => "sum", flag => "-n_astrom", dtype => "int" }, 83 84 { name => "fwhm", type => "mean", flag => "-fwhm", dtype => "float" }, 85 86 # these are not defined for the database table camProcessedExp 87 # { name => "ap_resid", type => "mean", flag => "-ap_resid", dtype => "float" }, 88 # { name => "ap_resid_stdev", type => "rms", flag => "-ap_resid_stdev", dtype => "float" }, 89 # { name => "fringe_0", type => "mean", flag => "-fringe_0", dtype => "float" }, 90 # { name => "fringe_1", type => "rms", flag => "-fringe_1", dtype => "float" }, 91 # { name => "fringe_0", type => "stdev", flag => "-fringe_2", dtype => "float" }, 92 ]; 93 my $chipStats = PS::IPP::Metadata::Stats->new($CHIPSTATS); # Stats parser 62 94 63 95 # Look for programs we need … … 90 122 my $metadata = $mdcParser->parse(join "", @$stdout_buf) or 91 123 &my_die("Unable to parse metadata config doc", $cam_id, $PS_EXIT_PROG_ERROR); 124 125 # extract the metadata for the files into a hash list 92 126 $files = parse_md_list($metadata) or 93 127 &my_die("Unable to parse metadata list", $cam_id, $PS_EXIT_PROG_ERROR); 94 } 95 96 # Gather the statistics 97 my ($bg, $bg_stdev, $bg_mean_stdev); # The statistics triplet 98 { 99 my @backgrounds; # Array of backgrounds in each component 100 my @variances; # Array of variances for each component 101 # my @ra; # Array of ra errors 102 # my @dec; # Array of dec errors 103 # my @zp; # Array of photometric zero points 104 foreach my $file (@$files) { 105 &my_die("Unable to find class id", $cam_id, $PS_EXIT_SYS_ERROR) unless defined $file->{class_id}; 106 my $class_id = $file->{class_id}; 107 &my_die("Unable to find bg for class_id=$class_id", $cam_id, $PS_EXIT_SYS_ERROR) unless defined $file->{bg}; 108 &my_die("Unable to find bg_mean_stdev for class_id=$class_id", $cam_id, $PS_EXIT_SYS_ERROR) unless defined $file->{bg_mean_stdev}; 109 # &my_die("Unable to find sigma_ra for class_id=$class_id", $cam_id, $PS_EXIT_SYS_ERROR) unless defined $file->{sigma_ra}; 110 # &my_die("Unable to find sigma_dec for class_id=$class_id", $cam_id, $PS_EXIT_SYS_ERROR) unless defined $file->{sigma_dec}; 111 # &my_die("Unable to find zp for class_id=$class_id", $cam_id, $PS_EXIT_SYS_ERROR) unless defined $file->{zp}; 112 push @backgrounds, $file->{bg}; 113 push @variances, $file->{bg_stdev}**2; 114 } 115 116 { 117 my $stats = Statistics::Descriptive::Sparse->new; # Statistics calculator 118 $stats->add_data(@backgrounds); 119 $bg = ($stats->mean() or 'NAN'); 120 $bg_mean_stdev = ($stats->standard_deviation() or 'NAN'); 121 } 122 { 123 my $stats = Statistics::Descriptive::Sparse->new; # Statistics calculator 124 $stats->add_data(@variances); 125 $bg_stdev = (sqrt( $stats->mean() ) or 'NAN'); 126 } 127 } 128 129 my ($list1File, $list1Name) = tempfile( "$exp_id.cam$cam_id.b1.list.XXXX", UNLINK => 1 ); # For binning 1 130 my ($list2File, $list2Name) = tempfile( "$exp_id.cam$cam_id.b2.list.XXXX", UNLINK => 1 ); # For binning 2 131 my ($list3File, $list3Name) = tempfile( "$exp_id.cam$cam_id.b3.list.XXXX", UNLINK => 1 ); # For astrometry 132 133 my @means; # Array of means 134 my @stdevs; # Array of stdevs 128 129 # extract the stats from the metadata 130 unless ($chipStats->parse($metadata)) { 131 &my_die("Unable to find all values in statistics output.\n", $cam_id, $PS_EXIT_PROG_ERROR); 132 } 133 } 134 135 my ($list1File, $list1Name) = tempfile( "$exp_tag.cm.$cam_id.b1.list.XXXX", UNLINK => 1 ); # For binning 1 136 my ($list2File, $list2Name) = tempfile( "$exp_tag.cm.$cam_id.b2.list.XXXX", UNLINK => 1 ); # For binning 2 137 my ($list3File, $list3Name) = tempfile( "$exp_tag.cm.$cam_id.b3.list.XXXX", UNLINK => 1 ); # For astrometry 138 135 139 my $chipObjects; 136 140 foreach my $file (@$files) { … … 143 147 print $list2File ($ipprc->filename("PPIMAGE.BIN2", $file->{path_base}, $class_id) . "\n"); 144 148 print $list3File ($chipObjects . "\n"); 145 push @means, $file->{bg};146 push @stdevs, $file->{bg_stdev};147 149 } 148 150 close $list1File; … … 151 153 152 154 # Output products 153 $workdir = caturi( $workdir, $exp_id ) if defined $workdir; 154 my $outputRoot = $ipprc->file_prepare( "$exp_id.cam$cam_id", $workdir, ${$files}[0]->{path_base} ); 155 my $jpeg1 = $ipprc->filename("PPIMAGE.JPEG1", $outputRoot); # Binned JPEG #1 156 my $jpeg2 = $ipprc->filename("PPIMAGE.JPEG2", $outputRoot); # Binned JPEG #2 155 $workdir = caturi( $workdir, $exp_tag ) if defined $workdir; 156 my $outputRoot = $ipprc->file_prepare( "$exp_tag.cm.$cam_id", $workdir, ${$files}[0]->{path_base} ); 157 158 my $jpeg1 = $ipprc->filename("PPIMAGE.JPEG1", $outputRoot); # Binned JPEG #1 159 my $jpeg2 = $ipprc->filename("PPIMAGE.JPEG2", $outputRoot); # Binned JPEG #2 157 160 my $fpaObjects = $ipprc->filename("PSASTRO.OUTPUT.MEF", $outputRoot); # MEF psastro output 158 161 … … 167 170 # run psastro +mosastro on the set of chips 168 171 # XXX note that this is wrong if imfiles are cells 172 # XXX add a ppStats call which will collect the astrometry stats 169 173 if (scalar @$files > 1) { 170 174 my $command = "$psastro -list $list3Name $outputRoot +mosastro -chipastro " . … … 202 206 # Make the jpeg for binning 1 203 207 { 204 my $command = "$ppImage -list $list1Name $outputRoot -recipe PPIMAGE " . RECIPE1; # Command to run208 my $command = "$ppImage -list $list1Name $outputRoot -recipe PPIMAGE $recipe1"; # Command to run 205 209 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 206 210 run(command => $command, verbose => 1); … … 214 218 # Make the jpeg for binning 2 215 219 { 216 my $command = "$ppImage -list $list2Name $outputRoot -recipe PPIMAGE " . RECIPE2; # Command to run220 my $command = "$ppImage -list $list2Name $outputRoot -recipe PPIMAGE $recipe2"; # Command to run 217 221 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 218 222 run(command => $command, verbose => 1); … … 224 228 } 225 229 } 230 231 my $fpaCommand = "$camtool -addprocessedexp"; 232 $fpaCommand .= " -cam_id $cam_id"; 233 $fpaCommand .= " -uri UNKNOWN"; 234 $fpaCommand .= " -path_base $outputRoot"; 235 $fpaCommand .= " -dbname $dbname" if defined $dbname; 236 $fpaCommand .= $chipStats->cmdflags(); 226 237 227 238 # Add the result into the database 228 239 unless ($no_update) { 229 230 my $command = "$camtool -addprocessedexp";231 $command .= " -cam_id $cam_id -uri UNKNOWN -path_base $outputRoot";232 $command .= " -bg $bg -bg_stdev $bg_stdev -bg_mean_stdev $bg_mean_stdev";233 $command .= " -sigma_ra 0.0 -sigma_dec 0.0";234 $command .= " -zp_mean 0.0 -zp_stdev 0.0";235 $command .= " -fwhm 0.0 -fwhm_range 0.0";236 $command .= " -n_stars 0 -n_extended 0 -n_cr 0 -n_astrom 0";237 $command .= " -dbname $dbname" if defined $dbname;238 239 240 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 240 run(command => $ command, verbose => 1);241 run(command => $fpaCommand, verbose => 1); 241 242 unless ($success) { 242 243 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); … … 244 245 exit($error_code); 245 246 } 247 } else { 248 print "skipping command: $fpaCommand\n"; 246 249 } 247 250 -
trunk/ippScripts/scripts/chip_imfile.pl
r14093 r14115 68 68 [ 69 69 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 70 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg" },71 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev" },72 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev" },73 { name => "FRINGE_0", type => "rms", flag => "-fringe_0" },74 { name => "FRINGE_RESID_0", type => "rms", flag => "-fringe_1" },75 { name => "FRINGE_ERR_0", type => "rms", flag => "-fringe_2" },76 { name => "OVER_VAL", type => "mean", flag => "-bias" },77 { name => "FWHM", type => "mean", flag => "-fwhm" },78 { name => "APMIFIT", type => "mean", flag => "-ap_resid" },79 { name => "DAPMIFIT", type => "rms", flag => "-ap_resid_stdev" },80 { name => "CERROR", type => "rms", flag => "-sigma_ra" },81 { name => "CERROR", type => "rms", flag => "-sigma_dec" },82 { name => "NSTARS", type => "sum", flag => "-n_stars" },83 { name => "NASTRO", type => "sum", flag => "-n_astrom" },70 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg", dtype => "float" }, 71 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 72 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev", dtype => "float" }, 73 { name => "FRINGE_0", type => "rms", flag => "-fringe_0", dtype => "float" }, 74 { name => "FRINGE_RESID_0", type => "rms", flag => "-fringe_1", dtype => "float" }, 75 { name => "FRINGE_ERR_0", type => "rms", flag => "-fringe_2", dtype => "float" }, 76 { name => "OVER_VAL", type => "mean", flag => "-bias", dtype => "float" }, 77 { name => "FWHM", type => "mean", flag => "-fwhm", dtype => "float" }, 78 { name => "APMIFIT", type => "mean", flag => "-ap_resid", dtype => "float" }, 79 { name => "DAPMIFIT", type => "rms", flag => "-ap_resid_stdev", dtype => "float" }, 80 { name => "CERROR", type => "rms", flag => "-sigma_ra", dtype => "float" }, 81 { name => "CERROR", type => "rms", flag => "-sigma_dec", dtype => "float" }, 82 { name => "NSTARS", type => "sum", flag => "-n_stars", dtype => "int" }, 83 { name => "NASTRO", type => "sum", flag => "-n_astrom", dtype => "int" }, 84 84 ]; 85 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 85 86 86 87 # Look for programs we need … … 140 141 141 142 # extract the stats from the metadata 142 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser143 143 unless ($stats->parse($metadata)) { 144 144 &my_die("Unable to find all values in statistics output.\n", $chip_id, $class_id, $PS_EXIT_PROG_ERROR); … … 154 154 $command .= " -path_base $outputRoot"; 155 155 $command .= " -dbname $dbname" if defined $dbname; 156 157 # add in the elements from the selected stats above 158 foreach my $entry (@$STATS) { 159 my $value = $entry->{value}; 160 my $flag = $entry->{flag}; 161 $command .= " $flag $value"; 162 } 156 $command .= $stats->cmdflags(); 163 157 164 158 # Add the processed file to the database -
trunk/ippScripts/scripts/detrend_norm_apply.pl
r14009 r14115 68 68 [ 69 69 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 70 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg" },71 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev" },72 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev" },70 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg", dtype => "float" }, 71 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 72 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev", dtype => "float" }, 73 73 ]; 74 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 74 75 75 76 # Look for programs we need … … 127 128 128 129 # extract the stats from the metadata 129 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser130 130 unless ($stats->parse($metadata)) { 131 131 &my_die("Unable to find all values in statistics output.", $det_id, $iter, $class_id, $PS_EXIT_PROG_ERROR); … … 141 141 $command .= " -path_base $outputRoot"; 142 142 $command .= " -dbname $dbname" if defined $dbname; 143 144 # add in the elements from the selected stats above 145 foreach my $entry (@$STATS) { 146 my $value = $entry->{value}; 147 my $flag = $entry->{flag}; 148 $command .= " $flag $value"; 149 } 143 $command .= $stats->cmdflags(); 150 144 151 145 # Add the processed file to the database -
trunk/ippScripts/scripts/detrend_norm_exp.pl
r14048 r14115 74 74 [ 75 75 # KEYWORD STATISTIC CHIPTOOL FLAG 76 { name => "bg", type => "mean", flag => "-bg" },77 { name => "bg", type => "stdev", flag => "-bg_mean_stdev" },78 { name => "bg_stdev", type => "rms", flag => "-bg_stdev" },76 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, 77 { name => "bg", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 78 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, 79 79 # { name => "bg_mean_stdev", type => "rms", flag => "-bg_mean_stdev" }, 80 80 ]; 81 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 81 82 82 83 # Look for programs we need … … 111 112 112 113 # parse the stats in the metadata 113 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser114 114 unless ($stats->parse($metadata)) { 115 115 &my_die("Unable to find all values in statistics output.\n", $det_id, $iter, $PS_EXIT_PROG_ERROR); … … 154 154 $command .= " -path_base $outputRoot "; 155 155 $command .= " -dbname $dbname" if defined $dbname; 156 157 # add in the elements from the selected stats above 158 foreach my $entry (@$STATS) { 159 my $value = $entry->{value}; 160 my $flag = $entry->{flag}; 161 $command .= " $flag $value"; 162 } 156 $command .= $stats->cmdflags(); 163 157 164 158 # Add the processed file to the database -
trunk/ippScripts/scripts/detrend_process_exp.pl
r14048 r14115 76 76 [ 77 77 # KEYWORD STATISTIC CHIPTOOL FLAG 78 { name => "bg", type => "mean", flag => "-bg" },79 { name => "bg", type => "stdev", flag => "-bg_mean_stdev" },80 { name => "bg_stdev", type => "rms", flag => "-bg_stdev" },78 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, 79 { name => "bg", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 80 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, 81 81 # { name => "bg_mean_stdev", type => "rms", flag => "-bg_mean_stdev" }, 82 82 ]; 83 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 83 84 84 85 # Look for programs we need … … 113 114 114 115 # parse the stats in the metadata 115 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser116 116 unless ($stats->parse($metadata)) { 117 117 &my_die("Unable to find all values in statistics output.\n", $det_id, $exp_id, $PS_EXIT_PROG_ERROR); … … 163 163 $command .= " -recip $recipe1,$recipe2 -path_base $outputRoot"; 164 164 $command .= " -dbname $dbname" if defined $dbname; 165 166 # add in the elements from the selected stats above 167 foreach my $entry (@$STATS) { 168 my $value = $entry->{value}; 169 my $flag = $entry->{flag}; 170 $command .= " $flag $value"; 171 } 165 $command .= $stats->cmdflags(); 172 166 173 167 # Add the processed file to the database -
trunk/ippScripts/scripts/detrend_process_imfile.pl
r14048 r14115 70 70 [ 71 71 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 72 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg" },73 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev" },74 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev" },72 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg", dtype => "float" }, 73 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 74 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev", dtype => "float" }, 75 75 ]; 76 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 76 77 77 78 # Look for programs we need … … 127 128 128 129 # extract the stats from the metadata 129 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser130 130 $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $det_id, $exp_id, $class_id, $PS_EXIT_PROG_ERROR); 131 131 } … … 139 139 $command .= " -uri $outputImage -path_base $outputRoot"; 140 140 $command .= " -dbname $dbname" if defined $dbname; 141 142 # add in the elements from the selected stats above 143 foreach my $entry (@$STATS) { 144 my $value = $entry->{value}; 145 my $flag = $entry->{flag}; 146 $command .= " $flag $value"; 147 } 141 $command .= $stats->cmdflags(); 148 142 149 143 # Add the processed file to the database -
trunk/ippScripts/scripts/detrend_reject_exp.pl
r14083 r14115 63 63 [ 64 64 # KEYWORD STATISTIC CHIPTOOL FLAG 65 { name => "bg", type => "mean", flag => "-bg" },66 { name => "bg_mean_stdev", type => "stdev", flag => "-bg_mean_stdev" },67 { name => "bg_stdev", type => "rms", flag => "-bg_stdev" },65 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, 66 { name => "bg_mean_stdev", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 67 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, 68 68 ]; 69 69 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 70 71 # these stats are used it the rejections but not passed to the database 72 # there is some duplication with the above, but the calculation time is minimal 70 73 my $REJSTATS = 71 74 [ 72 75 # KEYWORD STATISTIC CHIPTOOL FLAG 73 { name => "bg", type => "mean", flag => "ensMeanMean" },74 { name => "bg", type => "stdev", flag => "ensMeanStdev" },75 { name => "bg_mean_stdev", type => "mean", flag => "ensMeanStdevMean" },76 { name => "bg_mean_stdev", type => "stdev", flag => "ensMeanStdevStdev" },77 { name => "bg_stdev", type => "mean", flag => "ensStdevMean" },78 { name => "bg_stdev", type => "stdev", flag => "ensStdevStdev" },76 { name => "bg", type => "mean", flag => "ensMeanMean", dtype => "float" }, 77 { name => "bg", type => "stdev", flag => "ensMeanStdev", dtype => "float" }, 78 { name => "bg_mean_stdev", type => "mean", flag => "ensMeanStdevMean", dtype => "float" }, 79 { name => "bg_mean_stdev", type => "stdev", flag => "ensMeanStdevStdev", dtype => "float" }, 80 { name => "bg_stdev", type => "mean", flag => "ensStdevMean", dtype => "float" }, 81 { name => "bg_stdev", type => "stdev", flag => "ensStdevStdev", dtype => "float" }, 79 82 ]; 83 my $rejstats = PS::IPP::Metadata::Stats->new($REJSTATS); # Stats parser 80 84 81 85 # Look for programs we need … … 112 116 113 117 # Parse the statistics on the residual image 114 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser115 118 $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $det_id, $iter, $PS_EXIT_PROG_ERROR); 116 119 117 120 # Parse the statistics for rejections 118 my $rejstats = PS::IPP::Metadata::Stats->new($REJSTATS); # Stats parser119 121 $rejstats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $det_id, $iter, $PS_EXIT_PROG_ERROR); 120 122 } 121 123 122 124 # we use the statistics of the ensemble to accept/reject exposurs 123 my $ensMeanMean = &STATS_value_for_flag ($REJSTATS,"ensMeanMean");124 my $ensMeanStdev = &STATS_value_for_flag ($REJSTATS,"ensMeanStdev");125 my $ensMeanStdevMean = &STATS_value_for_flag ($REJSTATS,"ensMeanStdevMean");126 my $ensMeanStdevStdev = &STATS_value_for_flag ($REJSTATS,"ensMeanStdevStdev");127 my $ensStdevMean = &STATS_value_for_flag ($REJSTATS,"ensStdevMean");128 my $ensStdevStdev = &STATS_value_for_flag ($REJSTATS,"ensStdevStdev");125 my $ensMeanMean = $rejstats->value_for_flag ("ensMeanMean"); 126 my $ensMeanStdev = $rejstats->value_for_flag ("ensMeanStdev"); 127 my $ensMeanStdevMean = $rejstats->value_for_flag ("ensMeanStdevMean"); 128 my $ensMeanStdevStdev = $rejstats->value_for_flag ("ensMeanStdevStdev"); 129 my $ensStdevMean = $rejstats->value_for_flag ("ensStdevMean"); 130 my $ensStdevStdev = $rejstats->value_for_flag ("ensStdevStdev"); 129 131 130 132 $ipprc->define_camera($camera); … … 283 285 $command .= " -dbname $dbname" if defined $dbname; 284 286 $command .= " -again" unless $stop; 285 286 # add in the elements from the selected stats above 287 foreach my $entry (@$STATS) { 288 my $value = $entry->{value}; 289 my $flag = $entry->{flag}; 290 $command .= " $flag $value"; 291 } 287 $command .= $stats->cmdflags(); 292 288 293 289 # Put results into the database … … 347 343 } 348 344 349 sub STATS_value_for_flag350 {351 my $STATS = shift;352 my $flag = shift;353 354 foreach my $entry (@$STATS) {355 if ($flag eq $entry->{flag}) {356 return $entry->{value};357 }358 }359 return 'NAN';360 }361 362 345 __END__ -
trunk/ippScripts/scripts/detrend_reject_imfile.pl
r14048 r14115 89 89 [ 90 90 # KEYWORD STATISTIC CHIPTOOL FLAG 91 { name => "bg", type => "mean", flag => "-bg" },92 { name => "bg_mean_stdev", type => "stdev", flag => "-bg_mean_stdev" },93 { name => "bg_stdev", type => "rms", flag => "-bg_stdev" },94 { name => "bin_stdev", type => "rms", flag => "-bin_stdev" },95 { name => "fringe_0", type => "mean", flag => "-fringe_0" },96 { name => "fringe_1", type => "rms", flag => "-fringe_1" },97 { name => "fringe_0", type => "stdev", flag => "-fringe_2" },98 { name => "user_1", type => "mean", flag => "-user_1" }, # fringe residual99 { name => "user_2", type => "rms", flag => "-user_2" }, # fringe residual100 { name => "user_ 3", type => "stdev", flag => "-user_1" }, # fringe residual91 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, 92 { name => "bg_mean_stdev", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 93 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, 94 { name => "bin_stdev", type => "rms", flag => "-bin_stdev", dtype => "float" }, 95 { name => "fringe_0", type => "mean", flag => "-fringe_0", dtype => "float" }, 96 { name => "fringe_1", type => "rms", flag => "-fringe_1", dtype => "float" }, 97 { name => "fringe_0", type => "stdev", flag => "-fringe_2", dtype => "float" }, 98 { name => "user_1", type => "mean", flag => "-user_1", dtype => "float" }, # fringe residual 99 { name => "user_2", type => "rms", flag => "-user_2", dtype => "float" }, # fringe residual 100 { name => "user_1", type => "stdev", flag => "-user_3", dtype => "float" }, # fringe residual 101 101 ]; 102 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 102 103 103 104 # Look for programs we need … … 138 139 139 140 # Parse the statistics on the residual image 140 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser141 141 $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $det_id, $iter, $exp_id, $PS_EXIT_PROG_ERROR); 142 142 } … … 338 338 339 339 # basic ensemble stats 340 my $mean = &STATS_value_for_flag ($STATS,"-bg");341 my $meanStdev = &STATS_value_for_flag ($STATS,"-bg_mean_stdev");342 my $stdev = &STATS_value_for_flag ($STATS,"-bg_stdev");343 my $binStdev = &STATS_value_for_flag ($STATS,"-bin_stdev");344 my $fringe_mean = &STATS_value_for_flag ($STATS,"-fringe_0");345 my $fringe_err = &STATS_value_for_flag ($STATS,"-fringe_1");346 my $fringe_mean_stdev = &STATS_value_for_flag ($STATS,"-fringe_2");347 my $dfringe_mean = &STATS_value_for_flag ($STATS,"-user_1");348 my $dfringe_err = &STATS_value_for_flag ($STATS,"-user_2");349 my $dfringe_mean_stdev = &STATS_value_for_flag ($STATS,"-user_3");340 my $mean = $stats->value_for_flag ("-bg"); 341 my $meanStdev = $stats->value_for_flag ("-bg_mean_stdev"); 342 my $stdev = $stats->value_for_flag ("-bg_stdev"); 343 my $binStdev = $stats->value_for_flag ("-bin_stdev"); 344 my $fringe_mean = $stats->value_for_flag ("-fringe_0"); 345 my $fringe_err = $stats->value_for_flag ("-fringe_1"); 346 my $fringe_mean_stdev = $stats->value_for_flag ("-fringe_2"); 347 my $dfringe_mean = $stats->value_for_flag ("-user_1"); 348 my $dfringe_err = $stats->value_for_flag ("-user_2"); 349 my $dfringe_mean_stdev = $stats->value_for_flag ("-user_3"); 350 350 351 351 # other stats (flux depends on bg and exp_time) … … 469 469 $command .= ' -reject' if $reject; 470 470 $command .= " -dbname $dbname" if defined $dbname; 471 472 # add in the elements from the selected stats above 473 foreach my $entry (@$STATS) { 474 my $value = $entry->{value}; 475 my $flag = $entry->{flag}; 476 $command .= " $flag $value"; 477 } 471 $command .= $stats->cmdflags(); 478 472 479 473 unless ($no_update) { … … 532 526 533 527 return $value; 534 }535 536 sub STATS_value_for_flag537 {538 my $STATS = shift;539 my $flag = shift;540 541 foreach my $entry (@$STATS) {542 if ($flag eq $entry->{flag}) {543 return $entry->{value};544 }545 }546 return 'NAN';547 528 } 548 529 -
trunk/ippScripts/scripts/detrend_resid.pl
r14048 r14115 83 83 [ 84 84 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 85 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg" },86 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev" },87 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev" },88 { name => "FRINGE_0", type => "mean", flag => "-fringe_0" },89 { name => "FRINGE_ERR_0", type => "rms", flag => "-fringe_1" },90 { name => "FRINGE_0", type => "stdev", flag => "-fringe_2" },91 { name => "FRINGE_RESID_0", type => "mean", flag => "-user_1" },92 { name => "FRINGE_RESID_ERR_0", type => "rms", flag => "-user_2" },93 { name => "FRINGE_RESID_0", type => "stdev", flag => "-user_3" },85 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg", dtype => "float" }, 86 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 87 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev", dtype => "float" }, 88 { name => "FRINGE_0", type => "mean", flag => "-fringe_0", dtype => "float" }, 89 { name => "FRINGE_ERR_0", type => "rms", flag => "-fringe_1", dtype => "float" }, 90 { name => "FRINGE_0", type => "stdev", flag => "-fringe_2", dtype => "float" }, 91 { name => "FRINGE_RESID_0", type => "mean", flag => "-user_1", dtype => "float" }, 92 { name => "FRINGE_RESID_ERR_0", type => "rms", flag => "-user_2", dtype => "float" }, 93 { name => "FRINGE_RESID_0", type => "stdev", flag => "-user_3", dtype => "float" }, 94 94 ]; 95 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 96 95 97 my $BINNED_STATS = 96 98 [ 97 99 { name => "ROBUST_STDEV", type => "rms", flag => "-bin_stdev" }, 98 100 ]; 101 my $binnedStats = PS::IPP::Metadata::Stats->new($BINNED_STATS); # Stats parser 99 102 100 103 # Flags to specify the particular detrend to use … … 167 170 168 171 # Parse the statistics on the residual image 169 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser170 172 $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR); 171 173 … … 179 181 } 180 182 183 # Parse the output contents into a metadata 184 my $binnedMetadata = $mdcParser->parse(join "", @$stdout_buf) or &my_die("Unable to parse metadata output", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR); 185 181 186 # parse the binned image statistics 182 my $binnedMetadata = $mdcParser->parse(join "", @$stdout_buf) or &my_die("Unable to parse metadata output", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR);183 184 my $binnedStats = PS::IPP::Metadata::Stats->new($BINNED_STATS); # Stats parser185 187 $binnedStats->parse($binnedMetadata) or &my_die("Unable to find all values in statistics output.", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR); 186 188 } … … 196 198 $command .= " -path_base $outputRoot"; 197 199 $command .= " -dbname $dbname" if defined $dbname; 198 199 # add in the elements from the selected stats above 200 foreach my $entry (@$STATS, @$BINNED_STATS) { 201 my $value = $entry->{value}; 202 my $flag = $entry->{flag}; 203 $command .= " $flag $value"; 204 } 200 $command .= $stats->cmdflags(); 201 $command .= $binnedStats->cmdflags(); 205 202 206 203 # Add the processed file to the database -
trunk/ippScripts/scripts/detrend_stack.pl
r14048 r14115 73 73 [ 74 74 # KEYWORD STATISTIC CHIPTOOL FLAG 75 { name => "bg", type => "mean", flag => "-bg" },76 { name => "bg", type => "stdev", flag => "-bg_mean_stdev" },77 { name => "bg_stdev", type => "rms", flag => "-bg_stdev" },75 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, 76 { name => "bg", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 77 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, 78 78 # { name => "bg_mean_stdev", type => "rms", flag => "-bg_mean_stdev" }, 79 79 ]; 80 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 80 81 81 82 # Look for programs we need … … 147 148 &my_die("Unable to parse metadata config doc", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR); 148 149 149 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser150 150 $stats->parse($metadata) or 151 151 &my_die("Unable to find all values in statistics output.", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR); … … 159 159 $command .= " -recip $recipe"; 160 160 $command .= " -dbname $dbname" if defined $dbname; 161 162 # add in the elements from the selected stats above 163 foreach my $entry (@$STATS) { 164 my $value = $entry->{value}; 165 my $flag = $entry->{flag}; 166 $command .= " $flag $value"; 167 } 161 $command .= $stats->cmdflags(); 168 162 169 163 # Add the resultant into the database -
trunk/ippScripts/scripts/register_exp.pl
r14080 r14115 59 59 [ 60 60 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 61 { name => "exp_name", type => "constant", flag => "-exp_name" }, # File level62 { name => "telescope", type => "constant", flag => "-telescope" }, # File level63 { name => "camera", type => "constant", flag => "-inst" }, # File level64 { name => "filelevel", type => "constant", flag => "-filelevel" }, # File level65 { name => "object", type => "constant", flag => "-object" },66 { name => "exp_type", type => "constant", flag => "-exp_type" }, # File level67 { name => "filter", type => "constant", flag => "-filter" }, # File level68 { name => "dateobs", type => "constant", flag => "-dateobs" }, # File level69 { name => "ccd_temp", type => "mean", flag => "-ccd_temp"}, # CCD temperature70 { name => "exp_time", type => "mean", flag => "-exp_time"}, # Exposure time71 { name => "sat_pixel_frac", type => "mean", flag => "-sat_pixel_frac"}, # Fraction of saturated pixels72 { name => "airmass", type => "mean", flag => "-airmass"}, # Airmass73 { name => "ra", type => "mean", flag => "-ra"}, # Right ascension74 { name => "decl", type => "mean", flag => "-decl"}, # Declination75 { name => "posang", type => "mean", flag => "-posang"}, # Position angle76 { name => "alt", type => "mean", flag => "-alt"}, # Altitude77 { name => "az", type => "mean", flag => "-az"}, # Azimuth78 { name => "bg", type => "mean", flag => "-bg" }, # Azimuth79 { name => "bg", type => "stdev", flag => "-bg_mean_stdev"}, # Azimuth80 { name => "bg_stdev", type => "rms", flag => "-bg_stdev"}, # Azimuth61 { name => "exp_name", type => "constant", flag => "-exp_name", dtype => "string" }, # File level 62 { name => "telescope", type => "constant", flag => "-telescope", dtype => "string" }, # File level 63 { name => "camera", type => "constant", flag => "-inst", dtype => "string" }, # File level 64 { name => "filelevel", type => "constant", flag => "-filelevel", dtype => "string" }, # File level 65 { name => "object", type => "constant", flag => "-object", dtype => "string" }, 66 { name => "exp_type", type => "constant", flag => "-exp_type", dtype => "string" }, # File level 67 { name => "filter", type => "constant", flag => "-filter", dtype => "string" }, # File level 68 { name => "dateobs", type => "constant", flag => "-dateobs", dtype => "string" }, # File level 69 { name => "ccd_temp", type => "mean", flag => "-ccd_temp", dtype => "float" }, # CCD temperature 70 { name => "exp_time", type => "mean", flag => "-exp_time", dtype => "float" }, # Exposure time 71 { name => "sat_pixel_frac", type => "mean", flag => "-sat_pixel_frac", dtype => "float" }, # Fraction of saturated pixels 72 { name => "airmass", type => "mean", flag => "-airmass", dtype => "float" }, # Airmass 73 { name => "ra", type => "mean", flag => "-ra", dtype => "float" }, # Right ascension 74 { name => "decl", type => "mean", flag => "-decl", dtype => "float" }, # Declination 75 { name => "posang", type => "mean", flag => "-posang", dtype => "float" }, # Position angle 76 { name => "alt", type => "mean", flag => "-alt", dtype => "float" }, # Altitude 77 { name => "az", type => "mean", flag => "-az", dtype => "float" }, # Azimuth 78 { name => "bg", type => "mean", flag => "-bg", dtype => "float" }, # background 79 { name => "bg", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, # Azimuth 80 { name => "bg_stdev", type => "rms", flag => "-bg_stdev", dtype => "float" }, # Azimuth 81 81 ]; 82 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 82 83 83 84 # Look for commands we need … … 117 118 118 119 # extract the stats from the metadata 119 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser120 120 unless ($stats->parse($metadata)) { 121 121 &my_die ("Unable to find all values", $exp_id, $PS_EXIT_CONFIG_ERROR); … … 124 124 125 125 # we require at a minimum: -telescope, -inst, -filelevel, -class_id, -exp_type 126 if (uc( &STATS_value_for_flag ($STATS, "-telescope")) eq "NAN") { &my_die ("telescope not found", $exp_id, $PS_EXIT_CONFIG_ERROR); }127 if (uc( &STATS_value_for_flag ($STATS, "-inst")) eq "NAN") { &my_die ("inst not found", $exp_id, $PS_EXIT_CONFIG_ERROR); }128 if (uc( &STATS_value_for_flag ($STATS, "-filelevel")) eq "NAN") { &my_die ("filelevel not found", $exp_id, $PS_EXIT_CONFIG_ERROR); }129 if (uc( &STATS_value_for_flag ($STATS, "-exp_type")) eq "NAN") { &my_die ("exp_type not found", $exp_id, $PS_EXIT_CONFIG_ERROR); }130 if (uc( &STATS_value_for_flag ($STATS, "-exp_name")) eq "NAN") { &my_die ("exp_name not found", $exp_id, $PS_EXIT_CONFIG_ERROR); }126 if (uc($stats->value_for_flag ("-telescope")) eq "NULL") { &my_die ("telescope not found", $exp_id, $PS_EXIT_CONFIG_ERROR); } 127 if (uc($stats->value_for_flag ("-inst")) eq "NULL") { &my_die ("inst not found", $exp_id, $PS_EXIT_CONFIG_ERROR); } 128 if (uc($stats->value_for_flag ("-filelevel")) eq "NULL") { &my_die ("filelevel not found", $exp_id, $PS_EXIT_CONFIG_ERROR); } 129 if (uc($stats->value_for_flag ("-exp_type")) eq "NULL") { &my_die ("exp_type not found", $exp_id, $PS_EXIT_CONFIG_ERROR); } 130 if (uc($stats->value_for_flag ("-exp_name")) eq "NULL") { &my_die ("exp_name not found", $exp_id, $PS_EXIT_CONFIG_ERROR); } 131 131 132 132 my $command = "$regtool -addprocessedexp"; … … 134 134 $command .= " -exp_tag $exp_tag"; 135 135 $command .= " -dbname $dbname" if defined $dbname; 136 $command .= $stats->cmdflags(); 136 137 137 # add in the elements from the selected stats above 138 foreach my $entry (@$STATS) { 139 my $value = $entry->{value}; 140 my $flag = $entry->{flag}; 141 $command .= " $flag '$value'"; 142 } 143 144 my $exp_type = &STATS_value_for_flag ($STATS, "-exp_type"); 138 my $exp_type = $stats->value_for_flag ("-exp_type"); 145 139 146 140 # Add the detrend flag, if needed … … 196 190 } 197 191 198 sub STATS_value_for_flag199 {200 my $STATS = shift;201 my $flag = shift;202 203 foreach my $entry (@$STATS) {204 if ($flag eq $entry->{flag}) {205 return $entry->{value};206 }207 }208 return 'NAN';209 }210 211 192 END { 212 193 my $exit = $?; -
trunk/ippScripts/scripts/register_imfile.pl
r14080 r14115 52 52 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV; 53 53 pod2usage( -msg => "Required options: --exp_id --tmp_class_id --tmp_exp_name --uri", 54 -exitval => 3) unless54 -exitval => 3) unless 55 55 defined $exp_id and 56 56 defined $tmp_class_id and … … 64 64 [ 65 65 # PPSTATS KEYWORD STATISTIC CHIPTOOL FLAG 66 { name => "FILE.LEVEL", type => "constant", flag => "-filelevel" }, # File level67 { name => "CLASS.ID", type => "constant", flag => "-class_id" },# Real Class ID68 { name => "FPA.OBJECT", type => "constant", flag => "-object" },# Object69 { name => "FPA.OBSTYPE", type => "constant", flag => "-exp_type" },# Exposure type70 { name => "FPA.FILTER", type => "constant", flag => "-filter" },# Filter used71 { name => "FPA.AIRMASS", type => "constant", flag => "-airmass" },# Airmass72 { name => "FPA.RA", type => "constant", flag => "-ra" },# Right ascension73 { name => "FPA.DEC", type => "constant", flag => "-decl" },# Declination74 { name => "FPA.ALT", type => "constant", flag => "-alt" },# Altitude75 { name => "FPA.AZ", type => "constant", flag => "-az" },# Azimuth76 { name => "FPA.POSANGLE", type => "constant", flag => "-posang" },# Position angle77 { name => "FPA.TIME", type => "constant", flag => "-dateobs" },# Date of observation (UTC)78 { name => "FPA.TELESCOPE", type => "constant", flag => "-telescope" }, # Telescope79 { name => "FPA.INSTRUMENT", type => "constant", flag => "-inst" },# Instrument80 { name => "CHIP.TEMP", type => "mean", flag => "-ccd_temp" }, # CCD temperature81 { name => "CELL.EXPOSURE", type => "mean", flag => "-exp_time" }, # Exposure time82 { name => "SAT_PIXEL_FRAC", type => "mean", flag => "-sat_pixel_frac" }, # fraction of saturated pixels83 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg" },84 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev" },85 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev" },66 { name => "FILE.LEVEL", type => "constant", flag => "-filelevel", dtype => "string" }, # File level 67 { name => "CLASS.ID", type => "constant", flag => "-class_id", dtype => "string" }, # Real Class ID 68 { name => "FPA.OBJECT", type => "constant", flag => "-object", dtype => "string" }, # Object 69 { name => "FPA.OBSTYPE", type => "constant", flag => "-exp_type", dtype => "string" }, # Exposure type 70 { name => "FPA.FILTER", type => "constant", flag => "-filter", dtype => "string" }, # Filter used 71 { name => "FPA.AIRMASS", type => "constant", flag => "-airmass", dtype => "float" }, # Airmass 72 { name => "FPA.RA", type => "constant", flag => "-ra", dtype => "float" }, # Right ascension 73 { name => "FPA.DEC", type => "constant", flag => "-decl", dtype => "float" }, # Declination 74 { name => "FPA.ALT", type => "constant", flag => "-alt", dtype => "float" }, # Altitude 75 { name => "FPA.AZ", type => "constant", flag => "-az", dtype => "float" }, # Azimuth 76 { name => "FPA.POSANGLE", type => "constant", flag => "-posang", dtype => "float" }, # Position angle 77 { name => "FPA.TIME", type => "constant", flag => "-dateobs", dtype => "string" }, # Date of observation (UTC) 78 { name => "FPA.TELESCOPE", type => "constant", flag => "-telescope", dtype => "string" }, # Telescope 79 { name => "FPA.INSTRUMENT", type => "constant", flag => "-inst", dtype => "string" }, # Instrument 80 { name => "CHIP.TEMP", type => "mean", flag => "-ccd_temp", dtype => "float" }, # CCD temperature 81 { name => "CELL.EXPOSURE", type => "mean", flag => "-exp_time", dtype => "float" }, # Exposure time 82 { name => "SAT_PIXEL_FRAC", type => "mean", flag => "-sat_pixel_frac", dtype => "float" }, # fraction of saturated pixels 83 { name => "ROBUST_MEDIAN", type => "mean", flag => "-bg", dtype => "float" }, 84 { name => "ROBUST_MEDIAN", type => "stdev", flag => "-bg_mean_stdev", dtype => "float" }, 85 { name => "ROBUST_STDEV", type => "rms", flag => "-bg_stdev", dtype => "float" }, 86 86 ]; 87 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser 87 88 88 89 # Look for programs we need … … 112 113 cache_run(command => $command, verbose => 1); 113 114 unless ($success) { 114 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);115 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 115 116 &my_die ("Unable to perform ppStats on exposure id $exp_id: $error_code", $exp_id, $tmp_exp_name, $tmp_class_id, $error_code); 116 117 } … … 124 125 125 126 # extract the stats from the metadata 126 my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser127 127 unless ($stats->parse($metadata)) { 128 128 &my_die ("Unable to find all values", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); … … 131 131 132 132 # we require at a minimum: -telescope, -inst, -filelevel, -class_id, -exp_type 133 if (uc( &STATS_value_for_flag ($STATS, "-telescope")) eq "NAN") { &my_die ("telescope not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); }134 if (uc( &STATS_value_for_flag ($STATS, "-inst")) eq "NAN") { &my_die ("inst not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); }135 if (uc( &STATS_value_for_flag ($STATS, "-filelevel")) eq "NAN") { &my_die ("filelevel not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); }136 if (uc( &STATS_value_for_flag ($STATS, "-class_id")) eq "NAN") { &my_die ("class_id not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); }137 if (uc( &STATS_value_for_flag ($STATS, "-exp_type")) eq "NAN") { &my_die ("exp_type not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); }133 if (uc($stats->value_for_flag ("-telescope")) eq "NULL") { &my_die ("telescope not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); } 134 if (uc($stats->value_for_flag ("-inst")) eq "NULL") { &my_die ("inst not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); } 135 if (uc($stats->value_for_flag ("-filelevel")) eq "NULL") { &my_die ("filelevel not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); } 136 if (uc($stats->value_for_flag ("-class_id")) eq "NULL") { &my_die ("class_id not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); } 137 if (uc($stats->value_for_flag ("-exp_type")) eq "NULL") { &my_die ("exp_type not found", $exp_id, $tmp_exp_name, $tmp_class_id, $PS_EXIT_CONFIG_ERROR); } 138 138 139 139 my $command = "$regtool -addprocessedimfile"; … … 142 142 $command .= " -tmp_class_id $tmp_class_id"; # the original class_id supplied by the user, replace by ppStats CLASS.ID 143 143 $command .= " -dbname $dbname" if defined $dbname; 144 145 # add in the elements from the selected stats above 146 foreach my $entry (@$STATS) { 147 my $value = $entry->{value}; 148 my $flag = $entry->{flag}; 149 $command .= " $flag '$value'"; 150 } 144 $command .= $stats->cmdflags(); 151 145 152 146 # Push the results into the database … … 155 149 run(command => $command, verbose => 1); 156 150 unless ($success) { 157 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);151 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 158 152 warn ("Unable to perform regtool -addprocessedimfile: $error_code"); 159 153 exit($error_code); … … 189 183 carp($msg); 190 184 if ($exp_id && $tmp_class_id and not $no_update) { 191 my $command = "$regtool -addprocessedimfile";192 $command .= " -exp_id $exp_id";193 $command .= " -exp_name $exp_name";194 $command .= " -tmp_class_id $tmp_class_id";195 $command .= " -telescope UNKNOWN";196 $command .= " -inst UNKNOWN";197 $command .= " -class_id $tmp_class_id";198 $command .= " -code $exit_code";199 $command .= " -dbname $dbname" if defined $dbname;185 my $command = "$regtool -addprocessedimfile"; 186 $command .= " -exp_id $exp_id"; 187 $command .= " -exp_name $exp_name"; 188 $command .= " -tmp_class_id $tmp_class_id"; 189 $command .= " -telescope UNKNOWN"; 190 $command .= " -inst UNKNOWN"; 191 $command .= " -class_id $tmp_class_id"; 192 $command .= " -code $exit_code"; 193 $command .= " -dbname $dbname" if defined $dbname; 200 194 system ($command); 201 195 } 202 196 exit $exit_code; 203 }204 205 sub STATS_value_for_flag206 {207 my $STATS = shift;208 my $flag = shift;209 210 foreach my $entry (@$STATS) {211 if ($flag eq $entry->{flag}) {212 return $entry->{value};213 }214 }215 return 'NAN';216 197 } 217 198
Note:
See TracChangeset
for help on using the changeset viewer.
