Changeset 33283 for trunk/pstamp
- Timestamp:
- Feb 16, 2012, 2:37:03 PM (14 years ago)
- File:
-
- 1 edited
-
trunk/pstamp/scripts/detectability_respond.pl (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pstamp/scripts/detectability_respond.pl
r33248 r33283 103 103 } # End reading wisdom. 104 104 else { 105 #106 # Parse input request file using detect_query_read (as it's already written).107 #105 # 106 # Parse input request file using detect_query_read (as it's already written). 107 # 108 108 my $dqr_command = "$detect_query_read --dbname $imagedb --input $request_file"; 109 109 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = … … 118 118 { 119 119 my @column_names = (); 120 # split output into lines skip until the line which lists the column names is found 121 # Parse subsequent lines 120 122 foreach my $entry (split /\n/, (join "", @$stdout_buf)) { 121 123 if ($entry =~ /^#/) { … … 123 125 shift(@column_names); # Dump the hash sign. 124 126 } 125 els e{127 elsif (scalar @column_names) { 126 128 # ROWNUM RA1_DEG DEC1_DEG RA2_DEG DEC2_DEG MAG QUERY_ID FPA_ID MJD-OBS FILTER OBSCODE STAGE 127 129 my %row_data; 128 130 @row_data{@column_names} = (split /\s+/, $entry); 129 131 for (my $i = 0; $i <= $#column_names; $i++) { 130 push @{ $query{$row_data{"FPA_ID"}}{$column_names[$i]} }, $row_data{$column_names[$i]};131 $Nrows = scalar(keys(%query));132 #print "$row_data{'FPA_ID'} $Nrows $i $column_names[$i] $row_data{$column_names[$i]}\n";133 }134 } 135 } 136 } 137 #138 # Identify target images. This should properly collate targets on a single imfile.139 #132 push @{ $query{$row_data{"FPA_ID"}}{$column_names[$i]} }, $row_data{$column_names[$i]}; 133 $Nrows = scalar(keys(%query)); 134 # print "$row_data{'FPA_ID'} $Nrows $i $column_names[$i] $row_data{$column_names[$i]}\n"; 135 } 136 } 137 } 138 } 139 # 140 # Identify target images. This should properly collate targets on a single imfile. 141 # 140 142 foreach my $fpa_id (keys %query) { 141 143 my %temp_hash; … … 207 209 } 208 210 elsif ($fpa_id eq 'Not_Set') { 211 # no matching file was found skip 209 212 next; 210 213 } … … 222 225 $need_magic = 0; 223 226 } 224 my $mjd_min = $mjd;227 my $mjd_min = int $mjd; 225 228 my $mjd_max = $mjd + 1; 226 229 … … 239 242 240 243 foreach my $this_image_ref (@{ $pstamp_images_ref }) { 241 foreach my $key (sort (keys %{ $this_image_ref } )) { 242 my $value = ${ $this_image_ref }{$key}; 243 if ($key eq 'row_index') { 244 $value = join ' ', @{ $this_image_ref->{$key} }; 245 } 246 247 # print "$this_image_ref $key $value\n"; 248 foreach my $valid_index (@{ $this_image_ref->{row_index} }) { 249 $query{$fpa_id}{IMAGE}[$valid_index] = $this_image_ref->{image}; 250 $query{$fpa_id}{MASK}[$valid_index] = $this_image_ref->{mask}; 251 $query{$fpa_id}{WEIGHT}[$valid_index] = $this_image_ref->{weight}; 252 $query{$fpa_id}{PSF}[$valid_index] = $this_image_ref->{psf}; 253 $query{$fpa_id}{STAGE_ID}[$valid_index] = $this_image_ref->{stage_id}; 254 $query{$fpa_id}{IMAGE_DB}[$valid_index] = $this_image_ref->{imagedb}; 255 $query{$fpa_id}{NEED_MAGIC}[$valid_index] = $need_magic; 256 $query{$fpa_id}{BAD_COMPONENT}[$valid_index] = 0; 257 258 if (exists($this_image_ref->{astrom})) { 259 $query{$fpa_id}{CATALOG}[$valid_index] = $this_image_ref->{astrom}; 260 } 261 else { 262 $query{$fpa_id}{CATALOG}[$valid_index] = $this_image_ref->{cmf}; 263 } 264 if (exists($this_image_ref->{class_id})) { 265 $query{$fpa_id}{COMPONENT_ID}[$valid_index] = $this_image_ref->{class_id}; 266 $query{$fpa_id}{CLASS_ID}[$valid_index] = $this_image_ref->{class_id}; 267 268 } 269 else { 270 $query{$fpa_id}{COMPONENT_ID}[$valid_index] = $this_image_ref->{skycell_id}; 271 $query{$fpa_id}{CLASS_ID}[$valid_index] = 'fpa'; 272 } 273 274 $query{$fpa_id}{STATE}[$valid_index] = $this_image_ref->{state}; 275 if (exists($this_image_ref->{data_state})) { 276 $query{$fpa_id}{DATA_STATE}[$valid_index] = $this_image_ref->{data_state}; 277 } 278 else { 279 $query{$fpa_id}{DATA_STATE}[$valid_index] = $this_image_ref->{state}; 280 } 281 $query{$fpa_id}{FAULT}[$valid_index] = 0; 244 245 if (0) { 246 foreach my $key (sort (keys %{ $this_image_ref } )) { 247 my $value = ${ $this_image_ref }{$key}; 248 if ($key eq 'row_index') { 249 $value = join ' ', @{ $this_image_ref->{$key} }; 250 } 251 print "$this_image_ref $key $value\n"; 252 } 253 } 254 255 256 foreach my $valid_index (@{ $this_image_ref->{row_index} }) { 257 $query{$fpa_id}{IMAGE}[$valid_index] = $this_image_ref->{image}; 258 $query{$fpa_id}{MASK}[$valid_index] = $this_image_ref->{mask}; 259 $query{$fpa_id}{WEIGHT}[$valid_index] = $this_image_ref->{weight}; 260 $query{$fpa_id}{PSF}[$valid_index] = $this_image_ref->{psf}; 261 $query{$fpa_id}{STAGE_ID}[$valid_index] = $this_image_ref->{stage_id}; 262 $query{$fpa_id}{IMAGE_DB}[$valid_index] = $this_image_ref->{imagedb}; 263 $query{$fpa_id}{NEED_MAGIC}[$valid_index] = $need_magic; 264 $query{$fpa_id}{BAD_COMPONENT}[$valid_index] = 0; 265 266 if (exists($this_image_ref->{astrom})) { 267 $query{$fpa_id}{CATALOG}[$valid_index] = $this_image_ref->{astrom}; 268 } 269 else { 270 $query{$fpa_id}{CATALOG}[$valid_index] = $this_image_ref->{cmf}; 271 } 272 if (exists($this_image_ref->{class_id})) { 273 $query{$fpa_id}{COMPONENT_ID}[$valid_index] = $this_image_ref->{class_id}; 274 $query{$fpa_id}{CLASS_ID}[$valid_index] = $this_image_ref->{class_id}; 275 276 } 277 else { 278 $query{$fpa_id}{COMPONENT_ID}[$valid_index] = $this_image_ref->{skycell_id}; 279 $query{$fpa_id}{CLASS_ID}[$valid_index] = 'fpa'; 280 } 281 282 $query{$fpa_id}{STATE}[$valid_index] = $this_image_ref->{state}; 283 if (exists($this_image_ref->{data_state})) { 284 $query{$fpa_id}{DATA_STATE}[$valid_index] = $this_image_ref->{data_state}; 285 } 286 else { 287 $query{$fpa_id}{DATA_STATE}[$valid_index] = $this_image_ref->{state}; 288 } 289 $query{$fpa_id}{FAULT}[$valid_index] = 0; 282 290 $query{$fpa_id}{MAGICKED}[$valid_index] = $this_image_ref->{magicked}; 283 if ($stage eq 'chip') {284 $query{$fpa_id}{BURNTOOL_STATE}[$valid_index] = $this_image_ref->{burntool_state};285 }286 287 # Determine if the data exists.288 if (($query{$fpa_id}{STATE}[$valid_index] eq 'goto_purged') or289 ($query{$fpa_id}{DATA_STATE}[$valid_index] eq 'purged') or290 ($query{$fpa_id}{STATE}[$valid_index] eq 'drop') or291 ($query{$fpa_id}{STATE}[$valid_index] eq 'error_cleaned') or292 ($query{$fpa_id}{STATE}[$valid_index] eq 'goto_scrubbed') or293 ($query{$fpa_id}{DATA_STATE}[$valid_index] eq 'scrubbed')) {294 295 # image is gone and it's not coming back296 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_GONE;297 }298 elsif ($need_magic and ($query{$fpa_id}{MAGICKED}[$valid_index] eq 0)) {299 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_DESTREAKED;300 }301 elsif (($query{$fpa_id}{DATA_STATE}[$valid_index] ne 'full')) {302 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_AVAILABLE;303 304 # updating stacks isn't implemented305 if (($stage eq 'stack')) {306 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_IMPLEMENTED;307 }308 # updating old burntool data isn't implemented309 elsif ($stage eq 'chip') {310 if ($query{$fpa_id}{BURNTOOL_STATE}[$valid_index] and311 (abs($query{$fpa_id}{BURNTOOL_STATE}[$valid_index]) < 14)) {312 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_IMPLEMENTED;291 if ($stage eq 'chip') { 292 $query{$fpa_id}{BURNTOOL_STATE}[$valid_index] = $this_image_ref->{burntool_state}; 293 } 294 295 # Determine if the data exists. 296 if (($query{$fpa_id}{STATE}[$valid_index] eq 'goto_purged') or 297 ($query{$fpa_id}{DATA_STATE}[$valid_index] eq 'purged') or 298 ($query{$fpa_id}{STATE}[$valid_index] eq 'drop') or 299 ($query{$fpa_id}{STATE}[$valid_index] eq 'error_cleaned') or 300 ($query{$fpa_id}{STATE}[$valid_index] eq 'goto_scrubbed') or 301 ($query{$fpa_id}{DATA_STATE}[$valid_index] eq 'scrubbed')) { 302 303 # image is gone and it's not coming back 304 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_GONE; 305 } 306 elsif ($need_magic and ($query{$fpa_id}{MAGICKED}[$valid_index] eq 0)) { 307 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_DESTREAKED; 308 } 309 elsif (($query{$fpa_id}{DATA_STATE}[$valid_index] ne 'full')) { 310 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_AVAILABLE; 311 312 # updating stacks isn't implemented 313 if (($stage eq 'stack')) { 314 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_IMPLEMENTED; 315 } 316 # updating old burntool data isn't implemented 317 elsif ($stage eq 'chip') { 318 if ($query{$fpa_id}{BURNTOOL_STATE}[$valid_index] and 319 (abs($query{$fpa_id}{BURNTOOL_STATE}[$valid_index]) < 14)) { 320 $query{$fpa_id}{FAULT}[$valid_index] = $PSTAMP_NOT_IMPLEMENTED; 313 321 } 314 } 315 } # End determining error faults. 316 } 317 } 318 } 322 } 323 } # End determining error faults. 324 } 325 } 319 326 } 320 327 } # End calculating wisdom … … 322 329 my %processing_request; 323 330 324 if (!$job_id) { 325 open(WISDOM,">$wisdom_file") or my_die("failed to open wisdom file $wisdom_file"); 326 foreach my $fpa_id (keys %query) { 327 for (my $i = 0; $i <= $#{ $query{$fpa_id}{ROWNUM} }; $i++) { 328 print WISDOM "$fpa_id\t"; 329 foreach my $key (keys %{ $query{$fpa_id} }) { 330 print WISDOM "$key $query{$fpa_id}{$key}[$i]\t"; 331 if ($job_id) { 332 $wisdom_file = "$wisdom_file.$job_id"; 333 } 334 open(WISDOM,">$wisdom_file") or my_die("failed to open wisdom file $wisdom_file"); 335 foreach my $fpa_id (keys %query) { 336 for (my $i = 0; $i <= $#{ $query{$fpa_id}{ROWNUM} }; $i++) { 337 print WISDOM "$fpa_id\t"; 338 foreach my $key (keys %{ $query{$fpa_id} }) { 339 print WISDOM "$key $query{$fpa_id}{$key}[$i]\t"; 340 } 341 print WISDOM "\n"; 342 my $data_state = $query{$fpa_id}{DATA_STATE}[$i]; 343 if ($query{$fpa_id}{BAD_COMPONENT}[$i] == 0) { 344 if ($data_state ne 'full') { 345 346 @{ $update_request{$query{$fpa_id}{IMAGE}[$i]}{$query{$fpa_id}{FAULT}[$i]} } = 347 ($query{$fpa_id}{STATE}[$i],$query{$fpa_id}{STAGE}[$i],$query{$fpa_id}{STAGE_ID}[$i], 348 $query{$fpa_id}{COMPONENT_ID}[$i],$query{$fpa_id}{NEED_MAGIC}[$i],$query{$fpa_id}{IMAGE_DB}[$i]); 331 349 } 332 print WISDOM "\n"; 333 my $data_state = $query{$fpa_id}{DATA_STATE}[$i]; 334 if ($query{$fpa_id}{BAD_COMPONENT}[$i] == 0) { 335 if ($data_state ne 'full') { 336 337 @{ $update_request{$query{$fpa_id}{IMAGE}[$i]}{$query{$fpa_id}{FAULT}[$i]} } = 338 ($query{$fpa_id}{STATE}[$i],$query{$fpa_id}{STAGE}[$i],$query{$fpa_id}{STAGE_ID}[$i], 339 $query{$fpa_id}{COMPONENT_ID}[$i],$query{$fpa_id}{NEED_MAGIC}[$i],$query{$fpa_id}{IMAGE_DB}[$i]); 340 } 341 push @{ $processing_request{$fpa_id}{$query{$fpa_id}{IMAGE}[$i]} }, $i; 342 } 350 push @{ $processing_request{$fpa_id}{$query{$fpa_id}{IMAGE}[$i]} }, $i; 343 351 } 344 352 } 345 close(WISDOM); 346 353 } 354 close(WISDOM); 355 356 if (! defined $job_id) { 347 357 # If there is anything that needs to be updated, create the update request list, and then exit the program. 348 358 my $exit_code = 0; … … 399 409 # if (($fault != 0)||($query{$fpa_id}{BAD_COMPONENT}[$index] == 1)) { 400 410 if ($fault = check_component($stage, $stage_id, $component, $imagedb)) { 401 $query{$fpa_id}{PROC_ERROR}[$index] = $fault; 402 403 $query{$fpa_id}{NPIX}[$index] = 0; 404 $query{$fpa_id}{QFACTOR}[$index] = 0.0; 405 $query{$fpa_id}{FLUX}[$index] = 0.0; 406 $query{$fpa_id}{FLUX_SIG}[$index] = 0.0; 411 foreach my $i (@{ $processing_request{$fpa_id}{$image} }) { 412 $query{$fpa_id}{PROC_ERROR}[$i] = $fault; 413 414 $query{$fpa_id}{NPIX}[$i] = 0; 415 $query{$fpa_id}{QFACTOR}[$i] = 0.0; 416 $query{$fpa_id}{FLUX}[$i] = 0.0; 417 $query{$fpa_id}{FLUX_SIG}[$i] = 0.0; 418 } 407 419 408 420 next; … … 704 716 $inHeader->{FPA_ID}->{value} = $fpa_id; 705 717 } 718 719 my @keysa = keys %{$query{$fpa_id}}; 720 721 print "$fpa_id: @keysa\n"; 706 722 707 723 push @{$colData{'ROWNUM'}}, @{ $query{$fpa_id}{ROWNUM} };
Note:
See TracChangeset
for help on using the changeset viewer.
