Changeset 35413
- Timestamp:
- Apr 19, 2013, 3:42:02 PM (13 years ago)
- Location:
- branches/eam_branches/ipp-20130307
- Files:
-
- 51 edited
-
. (modified) (1 prop)
-
DataStore/lib/DataStore/Utils.pm (modified) (1 diff)
-
DataStoreServer/scripts/dsreg (modified) (1 diff)
-
Nebulous (modified) (1 prop)
-
Nebulous-Server (modified) (1 prop)
-
PS-IPP-PStamp/lib/PS/IPP/PStamp/Job.pm (modified) (37 diffs)
-
PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm (modified) (4 diffs)
-
dbconfig/cam.md (modified) (1 prop)
-
dbconfig/changes.txt (modified) (1 prop)
-
ippMonitor (modified) (1 prop)
-
ippMonitor/raw/czartool_getplot.php (modified) (1 diff)
-
ippMonitor/raw/heathers_plot.php (modified) (2 diffs)
-
ippTasks (modified) (1 prop)
-
ippTasks/release.pro (modified) (1 diff)
-
ippTasks/survey.pro (modified) (8 diffs)
-
ippToPsps (modified) (1 prop)
-
ippconfig (modified) (1 prop)
-
ippconfig/dvo.photcodes (modified) (2 diffs)
-
ippconfig/gpc1/ppStack.config (modified) (5 diffs)
-
ippconfig/gpc1/psphot.config (modified) (1 prop)
-
ippconfig/isp/dvo.config (modified) (1 diff)
-
ippconfig/isp/ppImage.config (modified) (1 diff)
-
ippconfig/recipes/filerules-mef.mdc (modified) (1 diff)
-
ippconfig/recipes/filerules-simple.mdc (modified) (1 diff)
-
ippconfig/recipes/filerules-split.mdc (modified) (1 diff)
-
ippconfig/recipes/ppStack.config (modified) (1 diff)
-
ippconfig/recipes/ppSub.config (modified) (1 prop)
-
ippconfig/recipes/psphot.config (modified) (1 prop)
-
ippconfig/recipes/reductionClasses.mdc (modified) (1 prop)
-
ppImage/src (modified) (1 prop)
-
ppImage/src/ppImageParseCamera.c (modified) (1 diff)
-
ppStack/src/ppStackMatch.c (modified) (7 diffs)
-
ppStack/src/ppStackPrepare.c (modified) (6 diffs)
-
ppStack/src/ppStackSources.c (modified) (11 diffs)
-
ppStack/src/ppStackTarget.c (modified) (2 diffs)
-
psModules (modified) (1 prop)
-
psModules/src/objects/pmSourceIO.c (modified) (2 diffs)
-
psModules/src/objects/pmSourceMatch.c (modified) (3 diffs)
-
psModules/src/objects/pmSourceMatch.h (modified) (1 diff)
-
psconfig (modified) (1 prop)
-
psphot (modified) (1 prop)
-
psphot/src (modified) (1 prop)
-
psphot/src/psphotStackImageLoop.c (modified) (1 prop)
-
psvideophot (modified) (1 prop)
-
pswarp/doc/notes.20130406.txt (modified) (1 diff)
-
pswarp/src/Makefile.am (modified) (1 diff)
-
pswarp/src/pswarp.c (modified) (1 diff)
-
pswarp/src/pswarpDefine.c (modified) (1 diff)
-
pswarp/src/pswarpDefineSkycell.c (modified) (2 diffs)
-
pswarp/src/pswarpLoop.c (modified) (2 diffs)
-
pswarp/src/pswarpParseCamera.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20130307
- Property svn:mergeinfo changed
/trunk merged: 35353-35354,35356-35368,35380,35383-35384,35388-35392,35394-35400,35409-35411
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/DataStore/lib/DataStore/Utils.pm
r34370 r35413 42 42 $BYTE_FIELD = qr/^\d+$/; 43 43 $MD5_FIELD = qr/^[0-9a-f]{32}$/; 44 %KNOWN_FILE_TYPES = map { $_ => 1 } qw( chip psrequest psresults pstamp chipproc warp stack diff ipp-mops table text xml tgz fits IPP-MOPS notset );44 %KNOWN_FILE_TYPES = map { $_ => 1 } qw( chip psrequest psresults pstamp chipproc warp stack diff ipp-mops table text xml tgz fits IPP-MOPS IPP-PSPS ipp-psps notset ); 45 45 %KNOWN_FILESET_TYPES = map { $_ => 1 } qw( OBJECT BIAS DARK SKYFLAT DOMEFLAT OOF SHACKHARTMANN PSREQUEST PSRESULTS IPP-MOPS XRAY FOCUS MOPS_DETECTABILITY_QUERY MOPS_DETECTABILITY_RESPONSE MOPS_TRANSIENT_DETECTIONS LED notset IPP_PSPS IPP-DIST table); 46 46 %KNOWN_PRODUCT_TYPES = map { $_ => 1 } qw( image dump psrequest psresults table ipp-dist ipp-misc dqresults); -
branches/eam_branches/ipp-20130307/DataStoreServer/scripts/dsreg
r30455 r35413 236 236 $dbh->disconnect(); 237 237 238 if ($remove ) {238 if ($remove and -e $fileset_dir) { 239 239 my $rc; 240 if (($rc = system "rm -r $fileset_dir")) {240 if (($rc = system "rm -rf $fileset_dir")) { 241 241 &my_die("failed to remove $fileset_dir error code: $rc", $PS_EXIT_UNKNOWN_ERROR); 242 242 } -
branches/eam_branches/ipp-20130307/Nebulous
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/Nebulous-Server
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/PS-IPP-PStamp/lib/PS/IPP/PStamp/Job.pm
r35350 r35413 15 15 our @EXPORT_OK = qw( 16 16 locate_images 17 locate_images_for_row 17 18 resolve_project 18 19 getCamRunByCamID … … 46 47 my $last_project = ""; 47 48 48 my ($regtool, $chiptool, $camtool, $warptool, $stacktool, $difftool );49 my ($regtool, $chiptool, $camtool, $warptool, $stacktool, $difftool, $releasetool); 49 50 my ($pstamptool, $dvoImagesAtCoords, $whichimage, $ppConfigDump); 50 51 … … 56 57 my $rowList = shift; # required 57 58 my $req_type = shift; # required 58 my $ img_type = shift; # required59 my $stage = shift; # required 59 60 my $id = shift; # required unless req_type eq bycoord or byskycell 60 61 my $tess_id = shift; … … 78 79 ($req_type ne "byskycell"); 79 80 80 $default_data_groups = load_data_groups($verbose); 81 if (!$data_group and !$default_data_groups) { 82 $default_data_groups = load_data_groups($verbose); 83 } 81 84 82 85 my $dateobs_begin; … … 104 107 my $x = $row->{CENTER_X}; 105 108 my $y = $row->{CENTER_Y}; 106 my $results = lookup_bycoord($ipprc, $row List, $imagedb, $img_type, $tess_id, $component, $need_magic, $x, $y, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, $verbose);109 my $results = lookup_bycoord($ipprc, $row, $imagedb, $stage, $tess_id, $component, $need_magic, $x, $y, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, $verbose); 107 110 return $results; 108 111 } 109 112 110 if (($req_type eq "byid") and ($ img_type eq "diff")) {113 if (($req_type eq "byid") and ($stage eq "diff")) { 111 114 # lookups of all of the information for diff images requires a two level lookup to 112 115 # get the exposure information. Switching the req_type allows us to keep that code 113 116 # in one place 114 117 $req_type = "bydiff"; 115 my $results = lookup_diff($ipprc, $rowList, $imagedb, $id, $component, 1, $option_mask, $ img_type, $verbose);118 my $results = lookup_diff($ipprc, $rowList, $imagedb, $id, $component, 1, $option_mask, $stage, $verbose); 116 119 return $results; 117 120 } … … 120 123 # for bydiff reuqests we go look up the diffRun to obtain exp_id, chip_id, warp_id, stack_id, or 121 124 # the image from the diffRun 122 my $results = lookup_diff($ipprc, $rowList, $imagedb, $id, $component, 0, $option_mask, $ img_type, $verbose);125 my $results = lookup_diff($ipprc, $rowList, $imagedb, $id, $component, 0, $option_mask, $stage, $verbose); 123 126 if (!$results) { 124 127 return undef; 125 128 } 126 if ($ img_type eq "diff") {129 if ($stage eq "diff") { 127 130 # lookup_diff has done all of the work 128 131 return $results; … … 130 133 131 134 my $image = $results->[0]; 132 if ($ img_type eq "raw") {135 if ($stage eq "raw") { 133 136 $req_type = "byid"; 134 137 $id = $image->{exp_id}; 135 138 return undef if !$id; 136 139 # fall through and lookup byid 137 } elsif ($ img_type eq "chip") {140 } elsif ($stage eq "chip") { 138 141 $req_type = "byid"; 139 142 $id = $image->{chip_id}; 140 143 return undef if !$id; 141 144 # fall through and lookup byid 142 } elsif ($ img_type eq "warp") {145 } elsif ($stage eq "warp") { 143 146 $req_type = "byid"; 144 147 $id = $image->{warp_id}; … … 146 149 return undef if !$id; 147 150 # fall through and lookup by warp_id 148 } elsif ($ img_type eq "stack") {151 } elsif ($stage eq "stack") { 149 152 $req_type = "byid"; 150 153 $id = $image->{stack_id}; … … 153 156 } else { 154 157 # This is checked this elsewhere? 155 print STDERR "Error: $ img_type is an unknown image type\n";158 print STDERR "Error: $stage is an unknown image type\n"; 156 159 return undef; 157 160 } 158 161 } elsif ($req_type eq "byskycell") { 159 if (($ img_type eq "raw") or ($img_type eq "chip")) {162 if (($stage eq "raw") or ($stage eq "chip")) { 160 163 print STDERR "REQ_TYPE byskycell not supported for IMG_TYPE raw or chip\n"; 161 164 return undef; … … 167 170 } 168 171 169 my $results = lookup($ipprc, $rowList, $imagedb, $req_type, $img_type, $id, $tess_id, $component, 170 $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, $verbose); 172 my $results = lookup($ipprc, $rowList, $imagedb, $req_type, $stage, $id, $tess_id, $component, 173 $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, 174 undef, undef, undef, $verbose); 175 176 return $results; 177 } 178 179 sub locate_images_for_row { 180 my $ipprc = shift; 181 my $imagedb = shift; 182 my $camera = shift; 183 my $row = shift; 184 my $verbose = shift; 185 186 my $req_type = $row->{REQ_TYPE}; 187 188 # we die in response to bad data in request files 189 # The caller is responsible for updating the database 190 # pstampparse.pl error checks now so this shouldn't happen 191 &my_die("Unknown req_type: $req_type", $PS_EXIT_PROG_ERROR) 192 if ($req_type ne "byid") and 193 ($req_type ne "byexp") and 194 ($req_type ne "bycoord") and 195 ($req_type ne "bydiff") and 196 ($req_type ne "byskycell"); 197 198 my $stage = $row->{IMG_TYPE}; 199 my $id = $row->{ID}; 200 my $component = $row->{COMPONENT}; 201 my $tess_id = $row->{TESS_ID}; 202 203 my $filter = $row->{REQFILT}; 204 my $mjd_min = $row->{MJD_MIN}; 205 my $mjd_max = $row->{MJD_MAX}; 206 my $data_group = $row->{DATA_GROUP}; 207 if (isnull($data_group) and !$default_data_groups) { 208 $default_data_groups = load_data_groups($verbose); 209 } 210 211 my $rownum = $row->{ROWNUM}; 212 my $job_type = $row->{JOB_TYPE}; 213 my $option_mask= $row->{OPTION_MASK}; 214 215 my $dateobs_begin; 216 my $dateobs_end; 217 if (!iszero($mjd_min)) { 218 $dateobs_begin = mjd_to_dateobs($mjd_min); 219 } 220 if (!iszero($mjd_max)) { 221 $dateobs_end = mjd_to_dateobs($mjd_max); 222 } 223 if (isnull($tess_id)) { 224 $tess_id = undef; 225 } 226 if (isnull($data_group)) { 227 $data_group = undef; 228 } 229 if (isnull($filter)) { 230 $filter = undef; 231 } 232 233 if ($req_type eq "bycoord") { 234 my $x = $row->{CENTER_X}; 235 my $y = $row->{CENTER_Y}; 236 my $results = lookup_bycoord($ipprc, $row, $imagedb, $stage, $tess_id, $component, 0, $x, $y, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, $verbose); 237 return $results; 238 } 239 240 # for compatability with the lower level functions that haven't been converted to take a single row 241 my $rowList = [$row]; 242 243 if (($req_type eq "byid") and ($stage eq "diff")) { 244 # lookups of all of the information for diff images requires a two level lookup to 245 # get the exposure information. Switching the req_type allows us to keep that code 246 # in one place 247 $req_type = "bydiff"; 248 my $results = lookup_diff($ipprc, $rowList, $imagedb, $id, $component, 1, $option_mask, $stage, $verbose); 249 return $results; 250 } 251 252 my ($release_name, $survey) = get_release_info($row); 253 254 if ($req_type eq "bydiff") { 255 # for bydiff reuqests we go look up the diffRun to obtain exp_id, chip_id, warp_id, stack_id, or 256 # the image from the diffRun 257 my $results = lookup_diff($ipprc, $rowList, $imagedb, $id, $component, 0, $option_mask, $stage, $verbose); 258 if (!$results) { 259 return undef; 260 } 261 if ($stage eq "diff") { 262 # lookup_diff has done all of the work 263 return $results; 264 } 265 266 my $image = $results->[0]; 267 if ($stage eq "raw") { 268 $req_type = "byid"; 269 $id = $image->{exp_id}; 270 return undef if !$id; 271 # fall through and lookup byid 272 } elsif ($stage eq "chip") { 273 $req_type = "byid"; 274 $id = $image->{chip_id}; 275 return undef if !$id; 276 # fall through and lookup byid 277 } elsif ($stage eq "warp") { 278 $req_type = "byid"; 279 $id = $image->{warp_id}; 280 $component = $image->{skycell_id}; 281 return undef if !$id; 282 # fall through and lookup by warp_id 283 } elsif ($stage eq "stack") { 284 $req_type = "byid"; 285 $id = $image->{stack_id}; 286 return undef if !$id; 287 # fall though and lookup by stack_id 288 } else { 289 # This is checked this elsewhere? 290 print STDERR "Error: $stage is an unknown image type\n"; 291 return undef; 292 } 293 } elsif ($req_type eq "byskycell") { 294 if (($stage eq "raw") or ($stage eq "chip")) { 295 print STDERR "REQ_TYPE byskycell not supported for IMG_TYPE raw or chip\n"; 296 return undef; 297 } 298 if (!$tess_id or !$component) { 299 print STDERR "component and tess_id are required for REQ_TYPE byskycell\n"; 300 return undef; 301 } 302 } 303 304 my $results = lookup($ipprc, $rowList, $imagedb, $req_type, $stage, $id, $tess_id, $component, 305 0, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, 306 undef, $release_name, $survey, 307 $verbose); 171 308 172 309 return $results; … … 193 330 my $mjd_min = shift; 194 331 my $mjd_max = shift; 332 my $selectedAstrom = shift; 333 my $release_name = shift; 334 my $survey = shift; 195 335 my $verbose = shift; 196 336 … … 217 357 my $magic_arg = $need_magic ? " -destreaked" : ""; 218 358 359 my $row = $rowList->[0]; 360 219 361 # all rows have the same center type 220 my $skycenter = ! ($rowList->[0]->{COORD_MASK} & $PSTAMP_CENTER_IN_PIXELS); 362 my $skycenter = ! ($row->{COORD_MASK} & $PSTAMP_CENTER_IN_PIXELS); 363 364 my $use_releasetool = 0; 365 my $release_args; 366 if (($req_type eq 'byexp' and $stage ne 'raw') or ($req_type eq 'byskycell' and $stage ne 'diff')) { 367 unless (isnull($release_name) and isnull($survey)) { 368 $use_releasetool = 1; 369 $release_args = " -release_name $release_name" if $release_name; 370 $release_args .= " -surveyName $survey" if $survey; 371 } 372 } 221 373 222 374 my $component_args; … … 249 401 # use chiptool -processsedimfile. Otherwise use chiptool -listrun and then 250 402 # choose the chips containing the center pixel by calling selectComponets() below 251 if ($component or $use_imfile_id or !$skycenter) { 252 $command = "$chiptool -processedimfile -pstamp_order -dbname $imagedb"; 253 if ($component and $component ne 'all') { 254 $class_id = $component; 255 $component_args = " -class_id $class_id"; 256 } 257 } else { 258 $command = "$chiptool -listrun -pstamp_order -dbname $imagedb"; 403 if ($use_releasetool) { 404 $command = "$releasetool -dbname $imagedb -priority_order -listrelexp $release_args"; 259 405 $choose_components = 1; 260 } 261 $id_opt = $use_imfile_id ? "-chip_imfile_id" : "-chip_id"; 406 } else { 407 $command = "$chiptool -pstamp_order -dbname $imagedb"; 408 if ($component or $use_imfile_id or !$skycenter) { 409 $command .= " -processedimfile"; 410 if ($component and $component ne 'all') { 411 $class_id = $component; 412 $component_args = " -class_id $class_id"; 413 } 414 } else { 415 $command .= " -listrun"; 416 $choose_components = 1; 417 } 418 $id_opt = $use_imfile_id ? "-chip_imfile_id" : "-chip_id"; 419 } 262 420 # XXX: perhaps we should stop resolving images to this level here and do it at job run time. 263 421 # With the mdc file it has all of the information that it needs. … … 273 431 $want_astrom = 1; 274 432 $set_class_id = 1; 275 } elsif ($stage eq "warp") { 276 if ($component or $use_imfile_id or !$skycenter) { 277 $command = "$warptool -warped -pstamp_order -dbname $imagedb"; 278 if ($component and $component ne 'all') { 279 $skycell_id = $component; 280 $component_args = " -skycell_id $skycell_id"; 281 } 282 } else { 283 $command = "$warptool -listrun -pstamp_order -dbname $imagedb"; 433 } elsif ($stage eq 'warp') { 434 if ($use_releasetool) { 435 $command = "$releasetool -dbname $imagedb -priority_order -listrelexp $release_args"; 284 436 $choose_components = 1; 285 } 286 $id_opt = $use_imfile_id ? "-warp_skyfile_id" : "-warp_id"; 437 } else { 438 $command = "$warptool -pstamp_order -dbname $imagedb"; 439 if ($component or $use_imfile_id or !$skycenter) { 440 $command .= " -warped"; 441 if ($component and $component ne 'all') { 442 $skycell_id = $component; 443 $component_args = " -skycell_id $skycell_id"; 444 } 445 } else { 446 $command = " -listrun"; 447 $choose_components = 1; 448 } 449 $id_opt = $use_imfile_id ? "-warp_skyfile_id" : "-warp_id"; 450 } 287 451 $image_name = "PSWARP.OUTPUT"; 288 452 $mask_name = "PSWARP.OUTPUT.MASK"; … … 292 456 $base_name = "path_base"; # name of the field for the warptool output 293 457 } elsif ($stage eq "diff") { 458 # XXX: is this path ever used for diff images anymore? 294 459 if ($component or $use_imfile_id or !$skycenter) { 295 460 $command = "$difftool -diffskyfile -pstamp_order -dbname $imagedb"; … … 312 477 } elsif ($stage eq "stack") { 313 478 $skycell_id = $component; 314 $command = "$stacktool -sumskyfile -dbname $imagedb"; 315 # only consider stacks in full state. 316 $command .= " -state full"; 317 $id_opt = "-stack_id"; 479 if ($use_releasetool) { 480 $command = "$releasetool -listrelstack -dbname $imagedb $release_args"; 481 $base_name = 'stack_path_base'; 482 } else { 483 $command = "$stacktool -sumskyfile -dbname $imagedb"; 484 # only consider stacks in full state. 485 $command .= " -state full"; 486 $id_opt = "-stack_id"; 487 $base_name = 'path_base'; 488 } 318 489 $component_args = " -skycell_id $skycell_id" if $skycell_id and $skycell_id ne 'all'; 319 490 … … 329 500 # this is wrong but gets the right answer. Need to figure out how to find the 330 501 # rule properly 331 #$cmf_name = "PSPHOT.OUTPUT"; # this puts .fpa. in the name332 502 $cmf_name = "PSWARP.OUTPUT.SOURCES"; 503 # $cmf_name = "PSPHOT.OUTPUT"; # this puts .fpa. in the name 333 504 $psf_name = "PPSTACK.TARGET.PSF"; 334 $base_name = "path_base";335 505 } else { 336 die "Unknown IMG_TYP esupplied: $stage";506 die "Unknown IMG_TYPE supplied: $stage"; 337 507 } 338 508 … … 377 547 if (!isnull($data_group)) { 378 548 $command .= " -data_group $data_group"; 379 } elsif ($req_type eq 'byskycell') { 549 } elsif (!$use_releasetool and $req_type eq 'byskycell') { 550 # XXX: Why am I using default data_groups only for byskycell requests? 380 551 $command .= $default_data_groups; 381 552 } … … 392 563 $images = filterRuns($stage, $need_magic, $images, $inverse, $verbose); 393 564 } 565 394 566 if ($choose_components) { 395 567 # the list of "images" is actually a list of "Runs" 396 568 # match the coords in the rows to the components in the runs 397 569 # returns an actual list of images 398 $images = selectComponents($ipprc, $imagedb, $req_type, $stage, $rowList, $images, $verbose); 570 if ($skycenter) { 571 $images = selectComponents($ipprc, $imagedb, $req_type, $stage, $rowList, $images, $verbose); 572 } else { 573 $images = selectComponentsByName($ipprc, $imagedb, $req_type, $stage, $component, $rowList, $images, $verbose); 574 } 399 575 } else { 400 # put index for each of the rows into all of the the images576 # put index for each of the rows into all of the the selected images 401 577 setRowRefs($rowList, $images); 402 578 } … … 462 638 # dquery wants these set 463 639 $out->{magicked} = 0; 464 $out->{data_state} = $out->{state}; 640 if ($use_releasetool) { 641 if ($image->{skycal_path_base}) { 642 $out->{astrom} = $image->{skycal_path_base} . ".cmf"; 643 } 644 $out->{data_state} = $out->{state} = $out->{stack_state}; 645 } else { 646 $out->{data_state} = $out->{state}; 647 } 465 648 } 466 649 $out->{stage_id} = $stage_id; … … 470 653 my $mask_base; 471 654 if ($want_astrom) { 472 if (! defined $out->{astrom}) { 655 if ($selectedAstrom) { 656 $out->{astrom} = $selectedAstrom; 657 $out->{cam_path_base} = basename($selectedAstrom); 658 } elsif (! defined $out->{astrom}) { 473 659 if (! find_astrometry($ipprc, $imagedb, $out, $verbose)) { 474 660 print STDERR "failed to find astrometry for $stage $stage_id\n"; … … 505 691 my $byid = shift; 506 692 my $option_mask = shift; 507 my $ img_type = shift;693 my $stage = shift; 508 694 my $verbose = shift; 509 695 … … 573 759 # we have a stack - stack diff (well it might be stack - warp....) 574 760 # but at any rate we only handle image type diff and stack 575 if (($ img_type ne "diff") and ($img_type ne "stack")) {576 print STDERR "lookup_diff: cannot lookup IMG_TYPE $ img_type bydiff from a stack stack diff run\n";761 if (($stage ne "diff") and ($stage ne "stack")) { 762 print STDERR "lookup_diff: cannot lookup IMG_TYPE $stage bydiff from a stack stack diff run\n"; 577 763 setErrorCodes($rowList, $PSTAMP_INVALID_REQUEST); 578 764 # all images will be the same so we can stop … … 625 811 } 626 812 627 if ($ img_type eq "diff") {813 if ($stage eq "diff") { 628 814 my @imageList = ($image); 629 815 … … 656 842 sub lookup_bycoord { 657 843 my $ipprc = shift; 658 my $row List= shift;844 my $row = shift; 659 845 my $imagedb = shift; 660 my $ img_type= shift;846 my $stage = shift; 661 847 my $tess_id = shift; 662 848 my $component = shift; … … 671 857 my $mjd_min = shift; 672 858 my $mjd_max = shift; 859 my $astrom = shift; 673 860 my $verbose = shift; 674 861 862 my ($release_name, $survey) = get_release_info($row); 863 864 my $rowList = [$row]; 865 675 866 my $results = (); 676 if (($ img_type eq "raw") or ($img_type eq "chip")) {677 678 my $chips = lookup_by_cam_id_and_coords($ipprc, $imagedb, $ img_type,679 $ra, $dec, $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $verbose );867 if (($stage eq "raw") or ($stage eq "chip")) { 868 869 my $chips = lookup_by_cam_id_and_coords($ipprc, $imagedb, $stage, 870 $ra, $dec, $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $verbose, $release_name, $survey, $row->{FWHM_MIN}, $row->{FWHM_MAX}); 680 871 681 872 if (!$chips or scalar @$chips == 0) { … … 684 875 foreach my $chip (@$chips) { 685 876 next if $component and ($chip->{component} ne $component); 686 my $these_results = lookup($ipprc, $rowList, $imagedb, "byid", $ img_type, $chip->{id},877 my $these_results = lookup($ipprc, $rowList, $imagedb, "byid", $stage, $chip->{id}, 687 878 $tess_id, $chip->{component}, $need_magic, 688 $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, $verbose); 879 $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, 880 $chip->{astrom}, undef, undef, 881 $verbose); 689 882 690 883 next if !$these_results; … … 695 888 } else { 696 889 # this should have been checked elsewhere 697 die "unexpected image type $ img_type" if ($img_type ne "warp")698 and ($ img_type ne "stack") and ($img_type ne "diff");890 die "unexpected image type $stage" if ($stage ne "warp") 891 and ($stage ne "stack") and ($stage ne "diff"); 699 892 700 893 my $skycells = lookup_skycell_by_coords($ipprc, $tess_id, $component, $ra, $dec, $verbose); … … 704 897 } else { 705 898 foreach my $skycell (@$skycells) { 706 my $these_results = lookup($ipprc, $rowList, $imagedb, "byskycell", $ img_type, undef,899 my $these_results = lookup($ipprc, $rowList, $imagedb, "byskycell", $stage, undef, 707 900 $skycell->{tess_id}, $skycell->{component}, $need_magic, 708 $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, $verbose); 901 $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max, 902 undef, $release_name, $survey, 903 $verbose); 709 904 710 905 next if !$these_results; … … 722 917 723 918 sub lookup_by_cam_id_and_coords { 724 my $ipprc = shift;725 my $imagedb = shift;726 my $ img_type= shift;727 my $ra = shift;728 my $dec = shift;729 my $need_magic = shift;919 my $ipprc = shift; 920 my $imagedb = shift; 921 my $stage = shift; 922 my $ra = shift; 923 my $dec = shift; 924 my $need_magic = shift; 730 925 my $dateobs_begin = shift; 731 926 my $dateobs_end = shift; … … 733 928 my $data_group = shift; 734 929 my $verbose = shift; 735 736 my $camruns; 737 738 { 739 my $search_radius = 1.6; # XXX: this should be camera specific 740 930 my $release_name = shift; 931 my $survey = shift; 932 my $fwhm_min = shift; 933 my $fwhm_max = shift; 934 935 my $search_radius = 1.6; # XXX: this should be camera specific 936 937 my $command; 938 my $using_camtool = 0; 939 if ($release_name or $survey) { 940 $command = "$releasetool -dbname $imagedb -listrelexp"; 941 if (!isnull($survey)) { 942 $command .= " -survey_name $survey"; 943 } 944 if (!isnull($release_name)) { 945 $command .= " -release_name $release_name"; 946 } else { 947 $command .= " -priority_order"; 948 } 949 if ($fwhm_min != 0) { 950 $command .= " -fwhm_min $fwhm_min"; 951 } 952 if ($fwhm_max != 0) { 953 $command .= " -fwhm_max $fwhm_max"; 954 } 955 } else { 956 $using_camtool = 1; 741 957 my $command = "$camtool -dbname $imagedb -processedexp -pstamp_order"; 742 $command .= " -ra $ra -decl $dec -radius $search_radius";743 $command .= " -dateobs_begin $dateobs_begin" if $dateobs_begin;744 $command .= " -dateobs_end $dateobs_end" if $dateobs_end ;745 $command .= " -filter $filter" if $filter;746 958 # NOTE: we are applying the data_group to the camera run. 747 959 # If we're looking for chip stage images there is no guarentee that … … 755 967 } 756 968 $command .= " -destreaked" if $need_magic; 757 758 # run the tool and parse the output 759 $camruns = runToolAndParse($command, $verbose); 760 } 761 if (!$camruns) { 969 } 970 $command .= " -ra $ra -decl $dec -radius $search_radius"; 971 $command .= " -dateobs_begin $dateobs_begin" if $dateobs_begin; 972 $command .= " -dateobs_end $dateobs_end" if $dateobs_end ; 973 $command .= " -filter $filter" if $filter; 974 975 # run the tool and parse the output 976 my $results = runToolAndParse($command, $verbose); 977 if (!$results) { 762 978 return undef; 763 979 } 764 980 my $components; 765 981 my $last_exp_id = 0; 766 foreach my $camRun (@$camruns) { 767 my $cam_id = $camRun->{cam_id}; 768 my $exp_id = $camRun->{exp_id}; 769 982 foreach my $result (@$results) { 983 my $cam_id = $result->{cam_id}; 984 my $exp_id = $result->{exp_id}; 985 986 # go on if we already have a result for this exposure 770 987 next if $exp_id eq $last_exp_id; 771 988 772 next if $camRun->{quality}; 773 next if $camRun->{fault}; 774 775 updateCamRunCache($camRun); 989 next if $result->{quality}; 990 991 if ($using_camtool) { 992 next if $result->{fault}; 993 } else { 994 $result->{path_base} = $result->{cam_path_base}; 995 } 996 updateCamRunCache($result); 776 997 777 998 $last_exp_id = $exp_id; 778 999 779 1000 # XXX Use file rule 780 my $astrom = $ camRun->{path_base} . ".smf";1001 my $astrom = $result->{path_base} . ".smf"; 781 1002 my $astrom_resolved = $ipprc->file_resolve($astrom); 782 1003 next if !$astrom_resolved; … … 832 1053 } 833 1054 834 print "cam_id $cam_id exp_id $ camRun->{exp_id} chip_id $camRun->{chip_id} $class_id\n";1055 print "cam_id $cam_id exp_id $result->{exp_id} chip_id $result->{chip_id} $class_id\n"; 835 1056 836 1057 # build the hash to return … … 840 1061 # problem 841 1062 my $comp = { 842 exp_id => $ camRun->{exp_id},843 exp_name => $ camRun->{exp_name},844 chip_id => $ camRun->{chip_id},845 cam_id => $ camRun->{cam_id},1063 exp_id => $result->{exp_id}, 1064 exp_name => $result->{exp_name}, 1065 chip_id => $result->{chip_id}, 1066 cam_id => $result->{cam_id}, 846 1067 class_id => $class_id, 847 component => $class_id 1068 component => $class_id, 1069 astrom => $astrom 848 1070 }; 849 if ($ img_type eq "chip") {850 $comp->{id} = $ camRun->{chip_id};851 $comp->{state} = $ camRun->{chip_state};852 $comp->{magicked} = $camRun->{chip_magicked};853 } else { 854 $comp->{id} = $ camRun->{exp_id};1071 if ($stage eq "chip") { 1072 $comp->{id} = $result->{chip_id}; 1073 $comp->{state} = $result->{chip_state}; 1074 $comp->{magicked} = 0; 1075 } else { 1076 $comp->{id} = $result->{exp_id}; 855 1077 $comp->{state} = 'full'; 856 $comp->{magicked} = $ camRun->{raw_magicked};1078 $comp->{magicked} = $0; 857 1079 } 858 1080 push @$components, $comp; … … 1281 1503 } 1282 1504 1505 sub selectComponentsByName { 1506 my $ipprc = shift; 1507 my $imagedb = shift; 1508 my $req_type = shift; 1509 my $stage = shift; 1510 my $component = shift; 1511 my $rowList = shift; 1512 my $runList = shift; 1513 my $verbose = shift; 1514 my $results = []; 1515 1516 $component = "" if $component and lc($component) eq 'all'; 1517 1518 # all runs match all rows so they can share a common row_index 1519 # XXX: I'm not sure we ever actually get here with more than one 1520 # row 1521 my $numRows = scalar @$rowList; 1522 my $row_index = []; 1523 for (my $i=0; $i < $numRows; $i++) { 1524 push @$row_index, $i; 1525 } 1526 1527 if (($req_type eq "byid") or ($req_type eq "byexp")) { 1528 my ($last_tess_id, $tess_dir_abs, $astrom_file) = ("", "", ""); 1529 foreach my $run (@$runList) { 1530 # now find the images for this run 1531 #foreach my $c (keys %components) { 1532 my $command; 1533 my $stage_id; 1534 if ($stage eq 'raw') { 1535 $stage_id = $run->{exp_id}; 1536 $command = "$regtool -processedimfile -exp_id $stage_id"; 1537 $command .= " -class_id $component" if $component; 1538 } elsif ($stage eq 'chip') { 1539 $stage_id = $run->{chip_id}; 1540 $command = "$chiptool -processedimfile -chip_id $stage_id"; 1541 $command .= " -class_id $component" if $component; 1542 } elsif ($stage eq 'warp') { 1543 $stage_id = $run->{warp_id}; 1544 $command = "$warptool -warped -warp_id $stage_id"; 1545 $command .= " -skycell_id $component" if $component; 1546 } 1547 $command .= " -dbname $imagedb"; 1548 my $images = runToolAndParse($command, $verbose); 1549 if (!defined $images) { 1550 print "No $component found for $stage ${stage}_id $stage_id\n"; 1551 next; 1552 } 1553 foreach my $image (@$images) { 1554 $image->{row_index} = $row_index; 1555 if (($stage eq "raw") or ($stage eq 'chip')) { 1556 $image->{cam_id} = $run->{cam_id}; 1557 $image->{cam_path_base} = $run->{cam_path_base}; 1558 } 1559 push @$results, $image; 1560 } 1561 } 1562 } else { 1563 &my_die ("selectComponentsByName not supported for REQ_TYPE: $req_type\n", $PS_EXIT_PROG_ERROR); 1564 } 1565 return $results; 1566 } 1567 1283 1568 sub filterRuns { 1284 1569 my $stage = shift; … … 1407 1692 $dvoImagesAtCoords = can_run('dvoImagesAtCoords') or (warn "Can't find dvoImagesAtCoords" 1408 1693 and $missing_tools = 1); 1694 $releasetool = can_run('releasetool') or (warn "Can't find releasetool" 1695 and $missing_tools = 1); 1409 1696 $whichimage = can_run('whichimage') or (warn "Can't find whichimage" and $missing_tools = 1); 1410 1697 $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1); … … 1462 1749 } 1463 1750 1751 sub get_release_info { 1752 my $row = shift; 1753 1754 my $survey; 1755 my $release_name = $row->{IPP_RELEASE}; 1756 if (isnull($release_name)) { 1757 $release_name = ""; 1758 # no release check for survey 1759 $survey = $row->{SURVEY_NAME}; 1760 } else { 1761 $survey = ""; 1762 } 1763 1764 return ($release_name, $survey); 1765 } 1766 1464 1767 sub my_die 1465 1768 { -
branches/eam_branches/ipp-20130307/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm
r34448 r35413 52 52 $PSTAMP_NO_OVERLAP 53 53 $PSTAMP_NOT_AUTHORIZED 54 $PSTAMP_UNKNOWN_PROJECT 54 55 ); 55 56 our %EXPORT_TAGS = (standard => [@EXPORT_OK]); … … 101 102 our $PSTAMP_NO_OVERLAP = 28; 102 103 our $PSTAMP_NOT_AUTHORIZED = 29; 104 our $PSTAMP_UNKNOWN_PROJECT = 22; 103 105 104 106 … … 167 169 my $fields_output; 168 170 { 169 my $command = "echo $request_file_name | $fields -x 0 EXTNAME EXTVER REQ_NAME ACTION USERNAMEEMAIL";171 my $command = "echo $request_file_name | $fields -x 0 EXTNAME EXTVER REQ_NAME ACTION EMAIL"; 170 172 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 171 173 run(command => $command, verbose => $verbose); … … 187 189 if ($extver > 1) { 188 190 $header{ACTION} = $action; 189 $header{USER} = $username;190 191 $header{EMAIL} = $email; 191 192 } else { 192 193 $header{ACTION} = $action = "PROCESS"; 193 $header{USERNAME} = 'null';194 194 $header{EMAIL} = 'null'; 195 195 } 196 196 197 if ($action eq "LIST") { 198 return (\%header, undef); 199 } elsif ($action ne "PROCESS") { 200 die "unexpected request ACTION found: $action in $request_file_name"; 197 if ($action ne "PROCESS" and $action ne 'PREVIEW') { 198 die "\nunexpected request ACTION found: $action in $request_file_name"; 201 199 } 202 200 -
branches/eam_branches/ipp-20130307/dbconfig/cam.md
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/dbconfig/changes.txt
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippMonitor
- Property svn:mergeinfo changed
/trunk/ippMonitor merged: 35391
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/ippMonitor/raw/czartool_getplot.php
r35200 r35413 38 38 else if ($type=="hp_s") 39 39 $filePath = "$path/heathers_plots/skycal.png"; 40 40 else if ($type=="hp_cm") 41 $filePath = "$path/heathers_plots/cam_merged.png"; 42 else if ($type=="hp_sm") 43 $filePath = "$path/heathers_plots/skycal_merged.png"; 41 44 42 45 $file = fopen ($filePath, "r"); -
branches/eam_branches/ipp-20130307/ippMonitor/raw/heathers_plot.php
r35350 r35413 10 10 menu('ipp.czar.dat', 'useful tools for the czar', 'ipp.css', $ID['link'], $ID['proj']); 11 11 12 echo "These images are generated every day at 7:00 HST (17:00 GMT) \n";12 echo "These images are generated every day at 7:00 HST (17:00 GMT) on ipp@ippc11\n"; 13 13 // document body 14 14 echo "<table>\n"; … … 23 23 echo "</tr>\n"; 24 24 25 echo "<tr>\n"; 26 echo "<td>Camera Merged</td>\n"; 27 echo "<td>SkyCal Merged</td>\n"; 28 echo "</tr>\n"; 29 30 echo "<tr>\n"; 31 echo "<td><img src=\"czartool_getplot.php?type=hp_cm\"/></td>\n"; 32 echo "<td><img src=\"czartool_getplot.php?type=hp_sm\"/></td>\n"; 33 echo "</tr>\n"; 34 25 35 echo "</table>\n"; 26 36 -
branches/eam_branches/ipp-20130307/ippTasks
- Property svn:mergeinfo changed
/trunk/ippTasks merged: 35359-35360
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/ippTasks/release.pro
r35350 r35413 129 129 host anyhost 130 130 131 $run = relgroup_exp_list.pl --group_id $GROUP_ID --group_type $GROUP_TYPE --release_name $RELEASE_NAME 131 $run = relgroup_exp_list.pl --group_id $GROUP_ID --group_type $GROUP_TYPE --release_name $RELEASE_NAME --rebuild 132 132 if ("$GROUP_TYPE" == "lap") 133 133 $run = $run --lap_id $LAP_ID -
branches/eam_branches/ipp-20130307/ippTasks/survey.pro
r35350 r35413 19 19 book create SURVEY_SKYCAL 20 20 book create SURVEY_LAPGROUP 21 book create SURVEY_RELEXP 21 22 $haveSurveyBooks = TRUE 22 23 end … … 35 36 $SURVEY_SKYCAL_DB = 0 36 37 $SURVEY_LAPGROUP_DB = 0 38 $SURVEY_RELEXP_DB = 0 37 39 $SURVEY_STATICSKYSINGLE_DB = 0 38 40 $SURVEY_EXEC = 120 … … 83 85 active true 84 86 end 87 task survey.relexp 88 active true 89 end 85 90 end 86 91 … … 126 131 end 127 132 task survey.lapgroup 133 active false 134 end 135 task survey.relexp 128 136 active false 129 137 end … … 533 541 end 534 542 book listbook SURVEY_LAPGROUP 543 end 544 545 macro survey.add.relexp 546 if ($0 != 3) 547 echo "USAGE: survey.add.relexp (label) (releasename)" 548 break 549 end 550 book newpage SURVEY_RELEXP $1 551 book setword SURVEY_RELEXP $1 LABEL $1 552 book setword SURVEY_RELEXP $1 RELEASE_NAME $2 553 book setword SURVEY_RELEXP $1 STATE PENDING 554 end 555 556 macro survey.del.relexp 557 if ($0 != 2) 558 echo "USAGE: survey.del.relexp (label)" 559 break 560 end 561 book delpage SURVEY_RELEXP $1 562 end 563 564 macro survey.show.relexp 565 if ($0 != 1) 566 echo "USAGE: survey.show.relexp" 567 break 568 end 569 book listbook SURVEY_RELEXP 535 570 end 536 571 … … 1626 1661 1627 1662 # Select different database 1628 $SURVEY_LAPGROUP ++1629 if ($SURVEY_LAPGROUP >= $DB:n) set SURVEY_LAPGROUP= 01663 $SURVEY_LAPGROUP_DB ++ 1664 if ($SURVEY_LAPGROUP_DB >= $DB:n) set SURVEY_LAPGROUP_DB = 0 1630 1665 end 1631 1666 … … 1633 1668 book getword SURVEY_LAPGROUP $label SEQ_ID -var SEQ_ID 1634 1669 1635 # For now the list of filters 1670 # For now the list of filters is hardcoded here 1636 1671 $run = laptool -definegroup -seq_id $SEQ_ID -set_label $label -filter g.00000 -filter r.00000 -filter i.00000 -filter z.00000 -filter y.00000 1637 1672 … … 1666 1701 end 1667 1702 end 1703 1704 task survey.relexp 1705 host local 1706 1707 periods -poll $SURVEY_POLL 1708 periods -exec $SURVEY_EXEC 1709 periods -timeout $SURVEY_TIMEOUT 1710 npending 1 1711 1712 stdout $LOGDIR/survey.relexp.log 1713 stderr $LOGDIR/survey.relexp.log 1714 1715 task.exec 1716 book npages SURVEY_RELEXP -var N 1717 if ($N == 0) 1718 # echo "No labels for processing" 1719 break 1720 endif 1721 1722 book getpage SURVEY_RELEXP 0 -var label -key STATE NEW 1723 if ("$label" == "NULL") 1724 # All labels have been done --- reset 1725 # echo "Resetting labels" 1726 for i 0 $N 1727 book getpage SURVEY_RELEXP $i -var label 1728 book setword SURVEY_RELEXP $label STATE NEW 1729 end 1730 book getpage SURVEY_RELEXP 0 -var label -key STATE NEW 1731 1732 # Select different database 1733 $SURVEY_RELEXP_DB ++ 1734 if ($SURVEY_RELEXP_DB >= $DB:n) set SURVEY_RELEXP_DB = 0 1735 end 1736 1737 book setword SURVEY_RELEXP $label STATE DONE 1738 book getword SURVEY_RELEXP $label RELEASE_NAME -var RELEASE_NAME 1739 1740 $run = releasetool -definerelexp -label $label -release_name $RELEASE_NAME -set_state processed 1741 1742 if ($DB:n == 0) 1743 option DEFAULT 1744 else 1745 $run = $run -dbname $DB:$SURVEY_RELEXP_DB 1746 option $DB:$SURVEY_RELEXP_DB 1747 end 1748 1749 # echo $run 1750 command $run 1751 end 1752 1753 # success 1754 task.exit 0 1755 # echo "Success" 1756 end 1757 1758 # locked list 1759 task.exit default 1760 showcommand failure 1761 end 1762 1763 task.exit crash 1764 showcommand crash 1765 end 1766 1767 # operation times out? 1768 task.exit timeout 1769 showcommand timeout 1770 end 1771 end -
branches/eam_branches/ipp-20130307/ippToPsps
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippconfig
- Property svn:mergeinfo changed
/trunk/ippconfig merged: 35368,35394,35399
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/ippconfig/dvo.photcodes
r35209 r35413 165 165 3004 SYNTH.z ref 0.000 0.000 0.000 - - 0.0000 0 4 nan 0.000 2.000 0.600 0x0000 0x0000 0x0000 0x0000 166 166 3005 SYNTH.y ref 0.000 0.000 0.000 - - 0.0000 0 5 nan 0.000 2.000 0.600 0x0000 0x0000 0x0000 0x0000 167 3006 SYNTH.w ref 0.000 0.000 0.000 - - 0.0000 0 9 nan 0.000 2.000 0.600 0x0000 0x0000 0x0000 0x0000 167 168 168 169 100 MEGACAM.u.00 dep 25.280 -0.350 0.000 - - 0.0000 0 - 0.000 0.000 1.000 0.000 0x0000 0x3888 0x0000 0x0000 … … 836 837 10475 GPC1.y.XY75 dep 23.320 -0.073 0.000 - - 0.0000 0 5 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 837 838 10476 GPC1.y.XY76 dep 23.320 -0.073 0.000 - - 0.0000 0 5 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 838 10501 GPC1.w.XY01 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88839 10502 GPC1.w.XY02 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88840 10503 GPC1.w.XY03 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88841 10504 GPC1.w.XY04 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88842 10505 GPC1.w.XY05 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88843 10506 GPC1.w.XY06 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88844 10510 GPC1.w.XY10 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88845 10511 GPC1.w.XY11 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88846 10512 GPC1.w.XY12 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88847 10513 GPC1.w.XY13 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88848 10514 GPC1.w.XY14 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88849 10515 GPC1.w.XY15 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88850 10516 GPC1.w.XY16 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88851 10517 GPC1.w.XY17 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88852 10520 GPC1.w.XY20 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88853 10521 GPC1.w.XY21 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88854 10522 GPC1.w.XY22 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88855 10523 GPC1.w.XY23 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88856 10524 GPC1.w.XY24 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88857 10525 GPC1.w.XY25 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88858 10526 GPC1.w.XY26 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88859 10527 GPC1.w.XY27 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88860 10530 GPC1.w.XY30 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88861 10531 GPC1.w.XY31 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88862 10532 GPC1.w.XY32 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88863 10533 GPC1.w.XY33 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88864 10534 GPC1.w.XY34 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88865 10535 GPC1.w.XY35 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88866 10536 GPC1.w.XY36 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88867 10537 GPC1.w.XY37 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88868 10540 GPC1.w.XY40 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88869 10541 GPC1.w.XY41 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88870 10542 GPC1.w.XY42 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88871 10543 GPC1.w.XY43 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88872 10544 GPC1.w.XY44 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88873 10545 GPC1.w.XY45 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88874 10546 GPC1.w.XY46 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88875 10547 GPC1.w.XY47 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88876 10550 GPC1.w.XY50 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88877 10551 GPC1.w.XY51 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88878 10552 GPC1.w.XY52 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88879 10553 GPC1.w.XY53 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88880 10554 GPC1.w.XY54 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88881 10555 GPC1.w.XY55 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88882 10556 GPC1.w.XY56 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88883 10557 GPC1.w.XY57 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88884 10560 GPC1.w.XY60 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88885 10561 GPC1.w.XY61 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88886 10562 GPC1.w.XY62 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88887 10563 GPC1.w.XY63 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88888 10564 GPC1.w.XY64 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88889 10565 GPC1.w.XY65 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88890 10566 GPC1.w.XY66 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88891 10567 GPC1.w.XY67 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88892 10571 GPC1.w.XY71 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88893 10572 GPC1.w.XY72 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88894 10573 GPC1.w.XY73 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88895 10574 GPC1.w.XY74 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88896 10575 GPC1.w.XY75 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88897 10576 GPC1.w.XY76 dep 2 5.000 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88839 10501 GPC1.w.XY01 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 840 10502 GPC1.w.XY02 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 841 10503 GPC1.w.XY03 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 842 10504 GPC1.w.XY04 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 843 10505 GPC1.w.XY05 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 844 10506 GPC1.w.XY06 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 845 10510 GPC1.w.XY10 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 846 10511 GPC1.w.XY11 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 847 10512 GPC1.w.XY12 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 848 10513 GPC1.w.XY13 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 849 10514 GPC1.w.XY14 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 850 10515 GPC1.w.XY15 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 851 10516 GPC1.w.XY16 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 852 10517 GPC1.w.XY17 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 853 10520 GPC1.w.XY20 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 854 10521 GPC1.w.XY21 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 855 10522 GPC1.w.XY22 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 856 10523 GPC1.w.XY23 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 857 10524 GPC1.w.XY24 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 858 10525 GPC1.w.XY25 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 859 10526 GPC1.w.XY26 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 860 10527 GPC1.w.XY27 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 861 10530 GPC1.w.XY30 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 862 10531 GPC1.w.XY31 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 863 10532 GPC1.w.XY32 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 864 10533 GPC1.w.XY33 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 865 10534 GPC1.w.XY34 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 866 10535 GPC1.w.XY35 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 867 10536 GPC1.w.XY36 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 868 10537 GPC1.w.XY37 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 869 10540 GPC1.w.XY40 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 870 10541 GPC1.w.XY41 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 871 10542 GPC1.w.XY42 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 872 10543 GPC1.w.XY43 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 873 10544 GPC1.w.XY44 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 874 10545 GPC1.w.XY45 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 875 10546 GPC1.w.XY46 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 876 10547 GPC1.w.XY47 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 877 10550 GPC1.w.XY50 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 878 10551 GPC1.w.XY51 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 879 10552 GPC1.w.XY52 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 880 10553 GPC1.w.XY53 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 881 10554 GPC1.w.XY54 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 882 10555 GPC1.w.XY55 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 883 10556 GPC1.w.XY56 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 884 10557 GPC1.w.XY57 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 885 10560 GPC1.w.XY60 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 886 10561 GPC1.w.XY61 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 887 10562 GPC1.w.XY62 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 888 10563 GPC1.w.XY63 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 889 10564 GPC1.w.XY64 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 890 10565 GPC1.w.XY65 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 891 10566 GPC1.w.XY66 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 892 10567 GPC1.w.XY67 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 893 10571 GPC1.w.XY71 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 894 10572 GPC1.w.XY72 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 895 10573 GPC1.w.XY73 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 896 10574 GPC1.w.XY74 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 897 10575 GPC1.w.XY75 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 898 10576 GPC1.w.XY76 dep 26.060 0.000 0.000 - - 0.0000 0 9 0.015 0.000 1.000 0.000 0x0000 0x0000 0xe0440130 0x1003bc88 898 899 11000 GPC1.g.SkyChip dep 25.000 0.000 0.000 - - 0.0000 0 1 0.000 0.000 0.000 0.000 0x0000 0x0000 0x0000 0x0000 899 900 11100 GPC1.r.SkyChip dep 25.000 0.000 0.000 - - 0.0000 0 2 0.000 0.000 0.000 0.000 0x0000 0x0000 0x0000 0x0000 -
branches/eam_branches/ipp-20130307/ippconfig/gpc1/ppStack.config
r35350 r35413 1 1 PSF.MODEL STR PS_MODEL_PS1_V1 # Model for PSF generation 2 BACKGROUND.MODEL BOOL F 2 3 3 4 ZP.AIRMASS METADATA # Airmass terms by filter … … 24 25 PSF.INPUT.MAX F32 6.0 # never really want >6 pixels in refstack 25 26 PSF.INPUT.CLIP.NSIGMA F32 1.0 # sample typically on rising side of distribution (set even smaller?) 27 PSF.INPUT.THRESH F32 0.0 28 PSF.INPUT.ASYMMETRY F32 0.0 26 29 END 27 30 … … 30 33 OUTPUT.LOGFLUX BOOL FALSE 31 34 OUTPUT.REPLICATE BOOL TRUE 32 PSF.INPUT.MAX F32 7.535 PSF.INPUT.MAX F32 10.0 33 36 PSF.INPUT.CLIP.NSIGMA F32 1.5 37 PSF.INPUT.THRESH F32 5.0 38 PSF.INPUT.ASYMMETRY F32 0.2 34 39 END 35 40 … … 40 45 OUTPUT.NOCOMP BOOL TRUE 41 46 OUTPUT.LOGFLUX BOOL FALSE 42 PSF.INPUT.MAX F32 7.5# since not convolved limit, relax/tune?47 PSF.INPUT.MAX F32 10.0 # since not convolved limit, relax/tune? 43 48 PSF.INPUT.CLIP.NSIGMA F32 1.5 49 PSF.INPUT.THRESH F32 5.0 50 PSF.INPUT.ASYMMETRY F32 0.2 44 51 END 45 52 … … 52 59 OUTPUT.NOCOMP BOOL FALSE 53 60 OUTPUT.LOGFLUX BOOL TRUE 54 PSF.INPUT.MAX F32 7.5 # input cut more restrictive now 12->7.5pix, limit target PSF in convolved stacks61 PSF.INPUT.MAX F32 10.0 # input cut more restrictive now 12->10 pix, limit target PSF in convolved stacks 55 62 PSF.INPUT.CLIP.NSIGMA F32 1.5 # additional cut if majority of inputs much smaller than INPUT.MAX 63 PSF.INPUT.THRESH F32 5.0 64 PSF.INPUT.ASYMMETRY F32 0.2 56 65 END 57 66 -
branches/eam_branches/ipp-20130307/ippconfig/gpc1/psphot.config
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippconfig/isp/dvo.config
r29403 r35413 1 1 2 2 # location of DVO database tables 3 CATDIR /data/alala/eugene/isp/catdir 3 #CATDIR /data/alala/eugene/isp/catdir 4 MOSAICNAME ISP-APOGEE 4 5 5 6 # keywords used by DVO to interpret the headers -
branches/eam_branches/ipp-20130307/ippconfig/isp/ppImage.config
r31620 r35413 623 623 END 624 624 END 625 626 PPIMAGE_BKGCONT METADATA 627 OVERSCAN BOOL FALSE # Overscan subtraction 628 NONLIN BOOL FALSE # Non-linearity correction; not implemented 629 BIAS BOOL FALSE # Bias subtraction 630 DARK BOOL FALSE # Dark subtraction 631 SHUTTER BOOL FALSE # Shutter correction 632 FLAT BOOL FALSE # Flat-field normalisation 633 MASK BOOL FALSE # Mask bad pixels 634 MASK.BUILD BOOL FALSE # Build internal mask? 635 FRINGE BOOL FALSE # Fringe subtraction 636 PHOTOM BOOL FALSE # Source identification and photometry 637 ASTROM.CHIP BOOL FALSE # Astrometry per chip? 638 ASTROM.MOSAIC BOOL FALSE # Astrometry for mosaic? 639 BASE.FITS BOOL FALSE # Save base image? 640 BASE.MASK.FITS BOOL FALSE # Save base detrended image? 641 BASE.VARIANCE.FITS BOOL FALSE # Save base detrended image? 642 CHIP.FITS BOOL FALSE # Save chip-mosaic-ed image? 643 CHIP.MASK.FITS BOOL FALSE # Save chip-mosaic-ed image? 644 CHIP.VARIANCE.FITS BOOL FALSE # Save chip-mosaic-ed image? 645 BIN1.FITS BOOL FALSE # Save 1st binned chip image? 646 BIN2.FITS BOOL FALSE # Save 2nd binned chip image? 647 BIN1.JPEG BOOL FALSE # Save 1st binned jpeg? 648 BIN2.JPEG BOOL FALSE # Save 2nd binned jpeg? 649 BIN1.XBIN S32 1 # Image is already binned 650 BIN1.YBIN S32 1 # Image is already binned 651 BIN2.XBIN S32 1 # Image is already binned 652 BIN2.YBIN S32 1 # Image is already binned 653 MASK.SATURATED BOOL FALSE # DO NOT Mask the saturated pixels 654 MASK.LOW BOOL FALSE # DO NOT Mask the saturated pixels 655 BACKGROUND.CONTINUITY BOOL FALSE 656 PATTERN.CONTINUITY.WIDTH S32 2 657 END 658 -
branches/eam_branches/ipp-20130307/ippconfig/recipes/filerules-mef.mdc
r35081 r35413 118 118 PSWARP.VARIANCE INPUT @FILES CHIP VARIANCE 119 119 PSWARP.MASK INPUT @FILES CHIP MASK 120 PSWARP.SKYCELL INPUT @FILES CHIP IMAGE121 PSWARP.ASTROM INPUT @FILES CHIP CMF122 PSWARP.BKGMODEL INPUT @FILES CHIPIMAGE120 PSWARP.SKYCELL INPUT @FILES CHIP WCS 121 PSWARP.ASTROM INPUT @FILES CHIP WCS 122 PSWARP.BKGMODEL INPUT @FILES CHIP IMAGE 123 123 124 124 ## files used by ppsub -
branches/eam_branches/ipp-20130307/ippconfig/recipes/filerules-simple.mdc
r35081 r35413 88 88 PSWARP.VARIANCE INPUT @FILES FPA VARIANCE 89 89 PSWARP.MASK INPUT @FILES FPA MASK 90 PSWARP.SKYCELL INPUT @FILES FPA IMAGE91 PSWARP.ASTROM INPUT @FILES FPA CMF90 PSWARP.SKYCELL INPUT @FILES FPA WCS 91 PSWARP.ASTROM INPUT @FILES FPA WCS 92 92 PSWARP.BKGMODEL INPUT @FILES CHIP IMAGE 93 93 -
branches/eam_branches/ipp-20130307/ippconfig/recipes/filerules-split.mdc
r35116 r35413 106 106 PSWARP.VARIANCE INPUT @FILES CHIP VARIANCE 107 107 PSWARP.MASK INPUT @FILES CHIP MASK 108 PSWARP.SKYCELL INPUT @FILES FPA IMAGE 109 PSWARP.ASTROM INPUT @FILES CHIP CMF 108 PSWARP.SKYCELL INPUT @FILES CHIP WCS 109 PSWARP.ASTROM INPUT @FILES CHIP WCS 110 #PSWARP.SKYCELL INPUT @FILES CHIP CMF 111 #PSWARP.ASTROM INPUT @FILES CHIP CMF 110 112 PSWARP.BKGMODEL INPUT @FILES CHIP IMAGE 111 113 -
branches/eam_branches/ipp-20130307/ippconfig/recipes/ppStack.config
r35350 r35413 92 92 PSF.INPUT.MAX F32 NAN 93 93 PSF.INPUT.CLIP.NSIGMA F32 NAN 94 PSF.INPUT.THRESH F32 NAN 95 PSF.INPUT.ASYMMETRY F32 NAN 94 96 95 97 TEMP.IMAGE STR conv.im.fits # Suffix for temporary convolved images -
branches/eam_branches/ipp-20130307/ippconfig/recipes/ppSub.config
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippconfig/recipes/psphot.config
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippconfig/recipes/reductionClasses.mdc
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ppImage/src
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ppImage/src/ppImageParseCamera.c
r35081 r35413 22 22 ppImageOptions *options = ppImageOptionsParse(config); 23 23 24 // parse the header to extract out whether this OTA has video cells.25 // CZW: 2012-05-01 I'm somewhat ashamed of what needs to be done to get to the header. There has to be a simpler way, right?26 /* pmFPAview *view = pmFPAviewAlloc(0);// View for level of interest */27 /* pmChip *chip; // Chip from FPA */28 /* while ((chip = pmFPAviewNextChip(view, input->fpa, 1)) != NULL) { */29 /* if (!chip->process || !chip->file_exists) { */30 /* continue; */31 /* } */32 /* /\* if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { *\/ */33 /* /\* continue; *\/ */34 /* /\* } *\/ */35 /* psWarning("VIDEO: %d %d %d\n",(int) options->hasVideo,(int) options->useVideoDark, (int) options->useVideoMask); */36 /* if (psMetadataLookupStr(NULL,chip->hdu->header,"CELLMODE")) { */37 /* psWarning("VIDEO: %d %d %d\n",(int) options->hasVideo,(int) options->useVideoDark, (int) options->useVideoMask); */38 /* char *Vptr = strchr(psMetadataLookupStr(NULL,chip->hdu->header,"CELLMODE"),'V'); */39 /* if (Vptr) { */40 /* options->hasVideo = true; */41 /* psWarning("VIDEO: %d %d %d\n",(int) options->hasVideo,(int) options->useVideoDark, (int) options->useVideoMask); */42 /* } */43 /* } */44 /* } */45 /* pmFPAviewReset(view); */46 /* psFree(view); */47 48 24 // the following are defined from the argument list, if given, 49 25 // otherwise they revert to the config information -
branches/eam_branches/ipp-20130307/ppStack/src/ppStackMatch.c
r34089 r35413 8 8 // #define TESTING // Enable debugging output 9 9 // #define TESTING_REUSE_CONV // Enable debugging for re-using convolved outputs from previous run 10 11 // #define TESTING_CZW 10 12 11 13 #ifdef TESTING_REUSE_CONV … … 264 266 // Add the background into the target image 265 267 psImage *bgImage = stackBackgroundModel(readout, config); // Image of background 266 psBinaryOp(fake->image, fake->image, "+", bgImage);268 psBinaryOp(fake->image, fake->image, "+", bgImage); 267 269 psFree(bgImage); 268 270 #endif 269 271 270 #ifdef TESTING 272 #ifdef TESTING_CZW 271 273 { 272 274 pmHDU *hdu = pmHDUFromCell(readout->parent); 273 275 psString name = NULL; 274 psStringAppend(&name, " fake_%03d.fits", index);276 psStringAppend(&name, "/local/tmp/fake_%03d.fits", index); 275 277 pmStackVisualPlotTestImage(fake->image, name); 276 278 psFits *fits = psFitsOpen(name, "w"); … … 282 284 pmHDU *hdu = pmHDUFromCell(readout->parent); 283 285 psString name = NULL; 284 psStringAppend(&name, " real_%03d.fits", index);286 psStringAppend(&name, "/local/tmp/real_%03d.fits", index); 285 287 pmStackVisualPlotTestImage(readout->image, name); 286 288 psFits *fits = psFitsOpen(name, "w"); 287 289 psFree(name); 288 290 psFitsWriteImage(fits, hdu->header, readout->image, 0, NULL); 291 psFitsClose(fits); 292 } 293 { 294 pmHDU *hdu = pmHDUFromCell(readout->parent); 295 psString name = NULL; 296 psStringAppend(&name, "/local/tmp/real_var_%03d.fits", index); 297 pmStackVisualPlotTestImage(readout->variance, name); 298 psFits *fits = psFitsOpen(name, "w"); 299 psFree(name); 300 psFitsWriteImage(fits, hdu->header, readout->variance, 0, NULL); 289 301 psFitsClose(fits); 290 302 } … … 355 367 356 368 357 #ifdef TESTING 369 #ifdef TESTING_CZW 358 370 { 359 371 pmHDU *hdu = pmHDUFromCell(readout->parent); 360 372 psString name = NULL; 361 psStringAppend(&name, " conv_%03d.fits", index);373 psStringAppend(&name, "/local/tmp/conv_%03d.fits", index); 362 374 pmStackVisualPlotTestImage(conv->image, name); 363 375 psFits *fits = psFitsOpen(name, "w"); … … 369 381 pmHDU *hdu = pmHDUFromCell(readout->parent); 370 382 psString name = NULL; 371 psStringAppend(&name, "diff_%03d.fits", index); 383 psStringAppend(&name, "/local/tmp/conv_var_%03d.fits", index); 384 pmStackVisualPlotTestImage(conv->variance, name); 385 psFits *fits = psFitsOpen(name, "w"); 386 psFree(name); 387 psFitsWriteImage(fits, hdu->header, conv->variance, 0, NULL); 388 psFitsClose(fits); 389 } 390 { 391 pmHDU *hdu = pmHDUFromCell(readout->parent); 392 psString name = NULL; 393 psStringAppend(&name, "/local/tmp/diff_%03d.fits", index); 372 394 pmStackVisualPlotTestImage(fake->image, name); 373 395 psFits *fits = psFitsOpen(name, "w"); … … 510 532 } 511 533 512 if (!stackRenormaliseReadout(config, readout)) { 513 psFree(rng); 514 psFree(bg); 515 return false; 516 } 517 534 #ifdef TESTING_CZW 535 // CZW begin check of weight before renormalize step 518 536 // Measure the variance level for the weighting 519 537 if (psMetadataLookupBool(NULL, recipe, "WEIGHTS")) { … … 529 547 options->weightings->data.F32[index] = 1.0; 530 548 } 531 psLogMsg("ppStack", PS_LOG_INFO, "Weighting for image %d is %f\n", 532 index, options->weightings->data.F32[index]); 549 psLogMsg("ppStack", PS_LOG_INFO, "Prenorm Weighting for image %d is %g covar %g median %g\n", 550 index, options->weightings->data.F32[index],psImageCovarianceFactor(readout->covariance), 551 psStatsGetValue(bg, PS_STAT_ROBUST_MEDIAN)); 552 // CZW end 553 #endif 554 if (!stackRenormaliseReadout(config, readout)) { 555 psFree(rng); 556 psFree(bg); 557 return false; 558 } 559 560 // Measure the variance level for the weighting 561 if (psMetadataLookupBool(NULL, recipe, "WEIGHTS")) { 562 if (!psImageBackground(bg, NULL, readout->variance, readout->mask, maskVal | maskBad, rng)) { 563 psError(PPSTACK_ERR_DATA, false, "Can't measure mean variance for image."); 564 psFree(rng); 565 psFree(bg); 566 return false; 567 } 568 options->weightings->data.F32[index] = 1.0 / (psStatsGetValue(bg, PS_STAT_ROBUST_MEDIAN) * 569 psImageCovarianceFactor(readout->covariance)); 570 } else { 571 options->weightings->data.F32[index] = 1.0; 572 } 573 psLogMsg("ppStack", PS_LOG_INFO, "Weighting for image %d is %g covar %g median %g\n", 574 index, options->weightings->data.F32[index],psImageCovarianceFactor(readout->covariance), 575 psStatsGetValue(bg, PS_STAT_ROBUST_MEDIAN)); 533 576 534 577 psFree(rng); -
branches/eam_branches/ipp-20130307/ppStack/src/ppStackPrepare.c
r34800 r35413 1 1 # include "ppStack.h" 2 3 4 // Option to use the old FWHM rejection code. 5 # define NEW_REJECTION 6 // #define OLD_REJECTION 7 2 8 3 9 # define RE_PHOTOMETER 0 … … 253 259 float maxFWHM = psMetadataLookupF32(&mdok, recipe, "PSF.INPUT.MAX"); // max allowed input fwhm 254 260 float clipFWHMnSig = psMetadataLookupF32(&mdok, recipe, "PSF.INPUT.CLIP.NSIGMA"); // sigma clipping of inputs 255 261 float threshFWHM = psMetadataLookupF32(&mdok, recipe, "PSF.INPUT.THRESH"); // FWHM size that we refuse to clip below 262 float asymmetryFWHM = psMetadataLookupF32(&mdok, recipe, "PSF.INPUT.ASYMMETRY"); // max bimodal asymmetry 256 263 psString log = psStringCopy("Input seeing FWHMs:\n"); // Log message 257 264 bool havePSFs = false; // Do we have any PSFs? … … 286 293 options->inputSeeing->data.F32[i] = sumFWHM / (float)numFWHM; 287 294 } 288 295 #ifdef OLD_REJECTION 289 296 // reject any input images which exceed the specified max FWHM 290 297 if (isfinite(maxFWHM) && (options->inputSeeing->data.F32[i] > maxFWHM)) { … … 292 299 psLogMsg("ppStack", PS_LOG_INFO, "PSF FWHM for image %d is too large (%f vs %f maxFWHM) --- rejected.", i, options->inputSeeing->data.F32[i], maxFWHM); 293 300 } 294 301 // End old rejection fixed limit. 302 #endif 295 303 psStringAppend(&log, "Input %d: %f\n", i, options->inputSeeing->data.F32[i]); 296 304 } … … 300 308 psFree(log); 301 309 310 #ifdef NEW_REJECTION 311 // Do GMM test with two modes to decide where to put the break. 312 double Punimodal; 313 int m = 2; 314 psVector *modes = psVectorAlloc(num,PS_TYPE_F32); 315 psVector *means = psVectorAlloc(m,PS_TYPE_F32); 316 psVector *S = psVectorAlloc(m,PS_TYPE_F32); 317 psVector *pi = psVectorAlloc(m,PS_TYPE_F32); 318 psImage *P = psImageAlloc(m,num,PS_TYPE_F32); 319 float limit; 320 if (!psMM1DClass(options->inputSeeing, 321 options->inputSeeing->n, 322 modes,means, 323 S,pi,P, 324 2, 325 &Punimodal)) { 326 // Handle error here 327 psFree(modes); 328 psFree(means); 329 psFree(S); 330 psFree(pi); 331 psFree(P); 332 return(false); 333 } 334 // fprintf(stderr,"means: %g %g\n",means->data.F32[0],means->data.F32[1]); 335 // fprintf(stderr,"sigma: %g %g \n",S->data.F32[0],S->data.F32[1]); 336 337 // fprintf(stderr,"pi: %g %g\n",pi->data.F32[0],pi->data.F32[1]); 338 339 // unwrittenGMMfunction(options->inputSeeing, options->inputMask, 0xff, 340 // &Punimodal, 341 // &m1,&s1,&pi1, 342 // &m2,&s2,&pi2); 343 344 // Use Gaussian mixture model analysis of the FWHM distribution to decide an optional FWHM limit 345 if ((Punimodal > 0.5)|| // This distribution is best represented by a single mode 346 (num <= 4)) { // Or we have a small number of inputs, making this statistic poor. 347 limit = maxFWHM; 348 } 349 else { // This is a bimodal distribution 350 if ((fabs(pi->data.F32[0] - pi->data.F32[1]) < asymmetryFWHM)|| // However, both modes are equally populated 351 (pi->data.F32[1] > pi->data.F32[0])) { // Or the larger FWHM mode is more populated 352 limit = means->data.F32[1] + clipFWHMnSig * S->data.F32[1]; 353 } 354 else { // The smaller FWHM mode is more populated 355 limit = means->data.F32[0] + clipFWHMnSig * S->data.F32[0]; 356 } 357 } 358 if (limit > maxFWHM) { limit = maxFWHM; } // We should not be larger than our max 359 if (limit < threshFWHM) { limit = threshFWHM; } // Nor smaller than our min 360 361 for (int i = 0; i < num; i++) { 362 if (options->inputSeeing->data.F32[i] > limit) { 363 options->inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PPSTACK_MASK_PSF; 364 psLogMsg("ppStack", PS_LOG_INFO, 365 "PSF FWHM for image %d is too large (%f vs %f fwhmlimit) --- rejected", 366 i, options->inputSeeing->data.F32[i],limit); 367 } 368 } 369 psFree(means); 370 psFree(modes); 371 psFree(S); 372 psFree(pi); 373 psFree(P); 374 // End new rejection code 375 #endif 376 377 #ifdef OLD_REJECTION 302 378 // We should have the ability to filter the input list based on the seeing: 303 379 // * reject above some max value and/or min value … … 323 399 } 324 400 } 325 401 // End old rejection sigma clip 402 #endif 326 403 // Generate target PSF 327 404 if (options->convolve) { -
branches/eam_branches/ipp-20130307/ppStack/src/ppStackSources.c
r34174 r35413 11 11 #endif 12 12 13 #ifdef TESTING 13 // #define TESTING_CZW 14 15 #ifdef TESTING_CZW 14 16 // Dump matches to a file 15 17 static void dumpMatches(const char *filename, // File to which to dump … … 28 30 psVectorInit(magErr, NAN); 29 31 for (int j = 0; j < match->num; j++) { 32 if (match->mask) { 30 33 if (match->mask->data.PS_TYPE_VECTOR_MASK_DATA[j]) { 31 continue; 32 } 34 continue; 35 } 36 } 33 37 int index = match->image->data.U32[j]; // Image index 34 38 mag->data.F32[index] = match->mag->data.F32[j] - zp->data.F32[index]; … … 39 43 } 40 44 for (int j = 0; j < num; j++) { 41 fprintf(outMatches, "%f (%f) ", mag->data.F32[j], magErr->data.F32[j]); 45 fprintf(outMatches, "%f %f %f %f %f %f\t", 46 match->mag->data.F32[j], 47 zp->data.F32[j], 48 trans ? trans->data.F32[j] : NAN, 49 magErr->data.F32[j], 50 match->x->data.F32[j], 51 match->y->data.F32[j]); 42 52 } 43 53 fprintf(outMatches, "\n"); … … 271 281 return false; 272 282 } 273 274 #ifdef TESTING 283 options->sources = psMemIncrRefCounter(matches); 284 psArray *matchedSources = psArrayAlloc(0); 285 286 #ifdef TESTING_CZW 275 287 dumpMatches("source_match.dat", num, matches, zp, NULL); 276 288 #endif 277 289 278 290 if (options->matchZPs) { 279 psVector *trans = pmSourceMatchRelphot(matches, zp, tol, iter1, starRej1, starSys1, 291 292 psVector *trans = pmSourceMatchRelphot(matches, matchedSources, zp, tol, iter1, starRej1, starSys1, 280 293 iter2, starRej2, starSys2, starLimit, 281 294 transIter, transRej, transThresh); // Transparencies per image … … 324 337 325 338 // m_inst_o - m_inst_i = zp[i] - zpTarget - c1 * airmassTarget - 2.5log(sumExpTime) - trans_i 326 339 #ifdef TESTING_CZW 340 dumpMatches("source_match2.dat", num, matches, zp, trans); 341 #endif 327 342 if (options->matchZPs) { 328 343 options->norm = psVectorAlloc(num, PS_TYPE_F32); 329 344 for (int i = 0; i < num; i++) { 330 if (inputMask->data.U8[i] ||!isfinite(trans->data.F32[i])) {331 continue;332 }345 if (!isfinite(trans->data.F32[i])) { 346 continue; 347 } 333 348 psArray *sources = sourceLists->data[i]; // Sources of interest 334 349 float magCorr = zp->data.F32[i] - trans->data.F32[i] - 2.5*log10(options->sumExposure) - airmassTerm * airmassTarget; … … 341 356 options->norm->data.F32[i] = magCorr; 342 357 psLogMsg("ppStack", PS_LOG_INFO, 343 "Applying scale correction to image %d: %f mag (%f) \n",344 i, magCorr, trans->data.F32[i] );358 "Applying scale correction to image %d: %f mag (%f) (with inputMask value %d)\n", 359 i, magCorr, trans->data.F32[i],inputMask->data.U8[i]); 345 360 346 361 for (int j = 0; j < sources->n; j++) { 347 362 pmSource *source = sources->data[j]; // Source of interest 363 source->psfMag += magCorr; 364 source->apMag += magCorr; 365 348 366 if (!source) { 349 367 continue; 350 368 } 351 369 // XXX need to apply to apMag as well 352 source->psfMag += magCorr; 353 source->apMag += magCorr; 370 psTrace("ppStack",5,"Source corrections: %d %d %f %f %f %f %f %f %f %f\n",i,j, 371 source->peak->xf,source->peak->yf, 372 source->psfMag,source->psfMagErr, 373 airmassTerm,airmassTarget,2.5 * log10(options->sumExposure), 374 source->psfMag + magCorr); 354 375 } 355 376 } 356 377 } 378 matches = pmSourceMatchSources(sourceLists, radius, true); // List of matches 357 379 358 380 if (zpExpNum == numGoodImages) { … … 366 388 367 389 368 #ifdef TESTING369 dumpMatches("source_mags.dat", num, matches, zp, trans);370 #endif371 390 psFree(trans); 372 391 373 #ifdef TESTING 392 #ifdef TESTING_CZW 374 393 // Double check: all transparencies should be zero 375 394 { 376 395 psArray *matches = pmSourceMatchSources(sourceLists, radius, true); // List of matches 396 psArray *matchedSources = psArrayAlloc(matches->n); 377 397 if (!matches) { 378 398 psError(PPSTACK_ERR_DATA, false, "Unable to match sources"); … … 380 400 return false; 381 401 } 382 psVector *trans = pmSourceMatchRelphot(matches, zp, tol, iter1, starRej1, starSys1,402 psVector *trans = pmSourceMatchRelphot(matches, matchedSources, zp, tol, iter1, starRej1, starSys1, 383 403 iter2, starRej2, starSys2, starLimit, 384 404 transIter, transRej, transThresh); // Transparencies … … 386 406 fprintf(stderr, "Transparency of image %d: %f\n", i, trans->data.F32[i]); 387 407 } 408 388 409 psFree(trans); 389 410 psFree(matches); 390 } 391 #endif 392 } 393 394 psFree(zp); 411 psFree(matchedSources); 412 } 413 #endif 414 } 415 416 395 417 psFree(zpExp); 396 418 397 419 #ifdef ASTROMETRY 420 // CZW: This is off by default. 398 421 // Position offsets 399 422 { … … 436 459 437 460 #if (defined TESTING && defined ASTROMETRY) 461 // CZW: This is off by default. 438 462 // Double check: all offsets should be zero 439 463 { … … 458 482 if (options->photometry) { 459 483 // Save best matches for future photometry 460 psArray *sourcesBest = options->sources = psArrayAllocEmpty(matches->n); 461 484 psArray *sourcesBest = options->sources = psArrayAllocEmpty(matches->n); 462 485 // XXX something of a hack: require at least 2 detections or the nominated fraction of the max possible 463 486 //int minMatches = PS_MAX(2, fracMatch * num);// Minimum number of matches required 464 487 //MEH - if many poor images, will hit oddity with num fraction. use numGoodImages instead 465 int minMatches = PS_MAX(2, fracMatch * numGoodImages);// Minimum number of matches required 466 467 int good0 = 0; 468 for (int i = 0; i < num; i++) { 469 if (inputMask->data.U8[i]) { 470 continue; 471 } 472 good0 = i; 473 break; 488 int minMatches = PS_MAX(2, fracMatch * numGoodImages);// Minimum number of matches required 489 490 int good0 = 0; 491 for (int i = 0; i < num; i++) { 492 if (inputMask->data.U8[i]) { 493 continue; 474 494 } 475 476 for (int i = 0; i < matches->n; i++) { 477 pmSourceMatch *match = matches->data[i]; // Match of interest 478 if (match->num < minMatches) { 479 continue; 480 } 481 482 // We need to grab a single instance of this source: just take the first available 483 // MEH - if first available is a rejected image, then problem. so take first non-rejected instance above 484 //int image = match->image->data.S32[0]; // Index of image 485 //int index = match->index->data.S32[0]; // Index of source within image 486 int image = match->image->data.S32[good0]; // Index of image 487 int index = match->index->data.S32[good0]; // Index of source within image 488 psArray *sources = sourceLists->data[image]; // Sources for image 489 pmSource *source = sources->data[index]; // Source of interest 490 491 psArrayAdd(sourcesBest, sourcesBest->n, source); 492 } 493 psLogMsg("ppStack", PS_LOG_INFO, "Selected %ld sources for photometry analysis", sourcesBest->n); 494 } 495 495 good0 = i; 496 break; 497 } 498 499 for (int i = 0; i < matches->n; i++) { 500 pmSourceMatch *match = matches->data[i]; // Match of interest 501 if (match->num < minMatches) { 502 continue; 503 } 504 505 // We need to grab a single instance of this source: just take the first available 506 // MEH - if first available is a rejected image, then problem. so take first non-rejected instance above 507 // int image = match->image->data.S32[0]; // Index of image 508 // int index = match->index->data.S32[0]; // Index of source within image 509 int image = match->image->data.S32[good0]; // Index of image 510 int index = match->index->data.S32[good0]; // Index of source within image 511 psArray *sources = sourceLists->data[image]; // Sources for image 512 pmSource *source = sources->data[index]; // Source of interest 513 514 // CZW: Accept the first source for all properties, except for the magnitudes. 515 // We have average magnitudes from relphot, so we should use those 516 pmSource *photsource = matchedSources->data[i]; 517 if ((photsource)&&(isfinite(photsource->psfMag))) { 518 // CZW: photsource is the average relphot mag, which is equal to <m_i + zpIN_j> 519 // (primed are averaged values for this discussion) 520 // Therefore, the correct magnitude for psfMag' is: 521 // psfMag' = (photsource - zpIN_j + magCorr) 522 // apMag - psfMag should be retained, so: 523 // apMag - psfMag = apMag' - psfMag' 524 // apMag' = apMag + psfMag' - psfMag 525 source->apMag = source->apMag + (photsource->psfMag + options->norm->data.F32[image] - zp->data.F32[image] - source->psfMag); 526 source->psfMag = photsource->psfMag + options->norm->data.F32[image] - zp->data.F32[image]; 527 528 psTrace("ppStack", 5, "Best Source %d/%ld @ %f %f %f %f %f %d",i,sourcesBest->n,source->peak->xf,source->peak->yf, 529 source->psfMag, 530 photsource->psfMag + options->norm->data.F32[image] - zp->data.F32[image] , 531 source->psfMagErr,-1); 532 psArrayAdd(sourcesBest, sourcesBest->n, source); 533 } 534 } 535 psLogMsg("ppStack", PS_LOG_INFO, "Selected %ld sources for photometry analysis", sourcesBest->n); 536 537 } 538 psFree(zp); 496 539 psFree(matches); 497 540 -
branches/eam_branches/ipp-20130307/ppStack/src/ppStackTarget.c
r34089 r35413 60 60 } 61 61 float xSource, ySource; // Coordinates of source 62 coordsFromSource(&xSource, &ySource, NULL, source); 62 float Smag; // magnitude of source 63 coordsFromSource(&xSource, &ySource, &Smag, source); 63 64 64 65 coords->data.F64[0] = xSource; … … 66 67 67 68 psVector *indices = psTreeAllWithin(tree, coords, exclusion); // Number within exclusion zone 68 psTrace("ppStack", 9, "Source at %.0lf,%.0lf has %ld sources in exclusion zone",69 coords->data.F64[0], coords->data.F64[1], indices->n);69 psTrace("ppStack", 5, "Filtering: Source at %.0lf %.0lf with mag %f has %ld sources in exclusion zone", 70 coords->data.F64[0], coords->data.F64[1], Smag, indices->n); 70 71 if (indices->n == 1) { 71 72 // Only itself inside the exclusion zone -
branches/eam_branches/ipp-20130307/psModules
- Property svn:mergeinfo changed
/trunk/psModules merged: 35383
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/psModules/src/objects/pmSourceIO.c
r34720 r35413 980 980 return false; 981 981 } 982 982 983 // if this is not TRUE, the output files only contain the psf measurements. 983 984 bool XSRC_OUTPUT = psMetadataLookupBool(&status, recipe, "EXTENDED_SOURCE_ANALYSIS"); … … 1005 1006 hdu->header = psFitsReadHeader (NULL, file->fits); 1006 1007 } 1008 1009 // "WCS" is CMF without detected objects 1010 if (file->type == PM_FPA_FILE_WCS) { 1011 psTrace("psModules.objects", 6, "read CMF table from %s : %s : %s", file->filename, headname, dataname); 1012 psFree (headname); 1013 psFree (dataname); 1014 psFree (deteffname); 1015 break; 1016 } 1017 1018 // EXTDATA is the PSF data associated with this image header 1007 1019 1008 1020 // we need to find the corresponding table EXTNAME. -
branches/eam_branches/ipp-20130307/psModules/src/objects/pmSourceMatch.c
r35240 r35413 630 630 631 631 psVector *pmSourceMatchRelphot(const psArray *matches, // Array of matches 632 psArray *matchedSources, // Array of averaged sources 632 633 const psVector *zp, // Zero points for each image (including airmass term) 633 634 float tol, // Relative tolerance for convergence … … 648 649 PS_ASSERT_VECTOR_TYPE(zp, PS_TYPE_F32, NULL); 649 650 PS_ASSERT_FLOAT_LARGER_THAN(transClip, 0.0, NULL); 650 651 PS_ASSERT_ARRAY_NON_NULL(matchedSources, NULL); 652 651 653 sys1 *= sys1; 652 654 sys2 *= sys2; … … 742 744 } 743 745 746 for (int i = 0; i < matches->n; i++) { 747 pmSource *source = pmSourceAlloc(); 748 source->psfMag = stars->data.F32[i]; 749 psArrayAdd(matchedSources,matchedSources->n,source); 750 } 751 744 752 psFree(photo); 745 753 psFree(badImage); -
branches/eam_branches/ipp-20130307/psModules/src/objects/pmSourceMatch.h
r35240 r35413 74 74 /// Perform relative photometry to calibrate images 75 75 psVector *pmSourceMatchRelphot(const psArray *matches, // Array of matches 76 psArray *matchedSources, // Array of average sources 76 77 const psVector *zp, // Zero points for each image (including airmass term) 77 78 float tol, // Relative tolerance for convergence -
branches/eam_branches/ipp-20130307/psconfig
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/psphot
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/psphot/src
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/psphot/src/psphotStackImageLoop.c
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/psvideophot
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/pswarp/doc/notes.20130406.txt
r35374 r35413 31 31 * sets file->fileLevel based on format, but slightly out of sync wrt pmFPAfileDefineFromArgs 32 32 (NOTE: does not expect / examine any other file) 33 34 33 34 35 in pswarpLoop (major blocks): 36 37 * find the needed recipe / filerules / etc 38 * pswarpIOChecksBefore() : generate the outputs? (isn't this done in pswarpDefine?) 39 * read input astrometry headers (also loads sources or not?) 40 * apply astrometry headers to input->fpa 41 * pswarpTransformReadout : transform pixels, etc 42 * pswarpPixelsLit : measure filling & masks stats 43 * modify the covariance 44 * modify the ZP & trimsec (seems like these should be encapsulated) 45 * update headers 46 * measure the PSF 47 * measure pixel stats on output 48 * add MD5 to header 49 50 51 52 ---- 53 54 pswarp issues: 55 56 1) operations need to loop over the output astrometry / targets for fpa/chip/cell levels 57 a) I replaced pswarpDefineSkycell with an update to pmFPAfileDefineXX which does the looping 58 b) is it identical in behavior to pswarpDefineSkycell? 59 * YES : I can drop pswarpDefineSkycell 60 61 2) how do we load the SOURCES? 62 63 * I need to load the headers for the astrometry, and I do this by 64 setting the type of the input astrometry to be WCS. is this the 65 same as CMF, but the latter reads the sources?? 66 67 * by changing the filerules entry CMF <-> WCS pswarpDefine.c either does or does not read the sources 68 69 (for testing, I want to use a skycell image or template to define the astrometry; this would not have sources to be read) 70 71 3) does the I/O loop in pswarpLoop (pswarpIOChecksBefore) do anything useful? 72 ** I don't think so... this operation is done in pswarpDefine. 73 74 4) how do I determine the overlaps correctly? (I'd like to do this before I load sources or pixels) 75 76 ** pswarpMapSetLocalModel does not seem to depend on astrometry model style (GOOD!) 77 -
branches/eam_branches/ipp-20130307/pswarp/src/Makefile.am
r35382 r35413 35 35 pswarpDefine.c \ 36 36 pswarpDefineBackground.c \ 37 pswarpDefineSkycell.c \ 37 38 pswarpErrorCodes.c \ 38 39 pswarpMapGrid.c \ -
branches/eam_branches/ipp-20130307/pswarp/src/pswarp.c
r35373 r35413 39 39 } 40 40 41 // load the skycell layout information 41 // load the skycell layout information: 42 // read the output astrometry description 43 // generate the output pixels 44 // convert header astrometry to pmFPA astrometry structures 42 45 if (!pswarpDefine(config)) { 43 46 pswarpCleanup(config, statsFile); -
branches/eam_branches/ipp-20130307/pswarp/src/pswarpDefine.c
r35373 r35413 38 38 } 39 39 40 // open the full skycell file; no need to defer different depths. only load the header data 41 pmFPAview *view = pmFPAviewAlloc (0); 42 pmFPAfileOpen (skycell, view, config); 40 // Read the output astrometry 41 // XXX this section loops over the input skycell to load the header info 42 { 43 pmFPAview *view = pmFPAviewAlloc(0); 43 44 44 // Read header and create target 45 { 46 if (!pmFPAReadHeaderSet(skycell->fpa, skycell->fits, config)) { 47 psError(psErrorCodeLast(), false, "Unable to read headers for skycell."); 48 psFree(view); 49 return false; 50 } 51 view->chip = 0; 52 view->cell = 0; 53 view->readout = 0; 54 pmCell *source = pmFPAfileThisCell(config->files, view, "PSWARP.SKYCELL"); ///< Source cell 55 pmHDU *hdu = pmHDUFromCell(source); ///< HDU for source 56 if (!hdu || !hdu->header) { 57 psError(PM_ERR_PROG, false, "Unable to find header for sky cell."); 58 psFree(view); 59 return false; 60 } 61 int numCols = psMetadataLookupS32(NULL, hdu->header, "NAXIS1"); ///< Number of columns 62 int numRows = psMetadataLookupS32(NULL, hdu->header, "NAXIS2"); ///< Number of rows 63 if ((numCols == 0) || (numRows == 0)) { 64 psError(PSWARP_ERR_DATA, false, "skycell has invalid dimensions %d x %d", numCols, numRows); 65 psFree(view); 66 return false; 67 } 45 pmChip *chip; 46 if (!pmFPAfileRead (skycell, view, config)) { 47 psError(PS_ERR_IO, false, "failed READ at FPA %s", skycell->name); 48 psFree(view); 49 return false; 50 } 51 while ((chip = pmFPAviewNextChip (view, skycell->fpa, 1)) != NULL) { 52 psTrace ("pswarp", 4, "Chip %d: %x %x\n", view->chip, chip->file_exists, chip->process); 53 if (!chip->process || !chip->file_exists) { continue; } 54 if (!pmFPAfileRead (skycell, view, config)) { 55 psError(psErrorCodeLast(), false, "failed READ at CHIP %s", skycell->name); 56 psFree(view); 57 return false; 58 } 59 pmCell *cell; 60 while ((cell = pmFPAviewNextCell (view, skycell->fpa, 1)) != NULL) { 61 psTrace ("pswarp", 4, "Cell %d: %x %x\n", view->cell, cell->file_exists, cell->process); 62 if (!cell->process || !cell->file_exists) { continue; } 63 if (!pmFPAfileRead (skycell, view, config)) { 64 psError(psErrorCodeLast(), false, "failed READ at CELL %s", skycell->name); 65 psFree(view); 66 return false; 67 } 68 if (!pmFPAfileClose(skycell, view)) { 69 psError(psErrorCodeLast(), false, "failed CLOSE at CELL %s", skycell->name); 70 psFree (view); 71 return false; 72 } 68 73 69 pmCell *target = pmFPAviewThisCell(view, output->fpa); ///< Target cell 70 pmReadout *readout = pmReadoutAlloc(target); ///< Target readout 71 readout->image = psImageAlloc(numCols, numRows, PS_TYPE_F32); 72 psImageInit(readout->image, NAN); 73 psFree(readout); // Drop reference 74 75 bool status = false; 76 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.XBIN"); 77 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.YBIN"); 78 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.XSIZE"); 79 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.YSIZE"); 80 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.XPARITY"); 81 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.YPARITY"); 82 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.X0"); 83 psMetadataItemSupplement(&status, target->concepts, source->concepts, "CELL.Y0"); 74 // we've got the output astrom header 75 pmHDU *hdu = pmHDUFromCell(cell); ///< HDU for source 76 if (!hdu || !hdu->header) { 77 psError(PM_ERR_PROG, false, "Unable to find header for sky cell."); 78 psFree(view); 79 return false; 80 } 81 int numCols = psMetadataLookupS32(NULL, hdu->header, "NAXIS1"); ///< Number of columns 82 int numRows = psMetadataLookupS32(NULL, hdu->header, "NAXIS2"); ///< Number of rows 83 if ((numCols == 0) || (numRows == 0)) { 84 psError(PSWARP_ERR_DATA, false, "skycell has invalid dimensions %d x %d", numCols, numRows); 85 psFree(view); 86 return false; 87 } 88 89 // XXX generate the output pixels 90 pmCell *target = pmFPAviewThisCell(view, output->fpa); ///< Target cell 91 pmReadout *readout = pmReadoutAlloc(target); ///< Target readout 92 readout->image = psImageAlloc(numCols, numRows, PS_TYPE_F32); 93 psImageInit(readout->image, NAN); 94 psFree(readout); // Drop reference 95 96 bool status = false; 97 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.XBIN"); 98 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.YBIN"); 99 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.XSIZE"); 100 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.YSIZE"); 101 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.XPARITY"); 102 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.YPARITY"); 103 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.X0"); 104 psMetadataItemSupplement(&status, target->concepts, cell->concepts, "CELL.Y0"); 105 } 106 if (!pmFPAfileClose(skycell, view)) { 107 psError(psErrorCodeLast(), false, "failed CLOSE at CHIP %s", skycell->name); 108 psFree (view); 109 return false; 110 } 111 } 112 if (!pmFPAfileClose(skycell, view)) { 113 psError(psErrorCodeLast(), false, "failed CLOSE at FPA %s", skycell->name); 114 psFree (view); 115 return false; 116 } 117 psFree(view); 84 118 } 85 119 86 // XXX this is not a sufficient test 120 // the section below converts the header astrometry info (in skycell) to the pmFPA 121 // astrometry structures, saving them on the output fpa structure. 122 123 // XXX this block should be modified to loop over all chips 124 125 pmFPAview *view = pmFPAviewAlloc (0); 87 126 view->chip = 0; 88 127 view->cell = 0; -
branches/eam_branches/ipp-20130307/pswarp/src/pswarpDefineSkycell.c
r27096 r35413 73 73 psFitsClose(fits); 74 74 75 // We need to force the format for the skycell to be equivalent to SIMPLE. Determine 76 // the current format from the header; Determine camera if not specified already 77 // XXX EAM : this operation should be defined as a pmConfig function (pmConfigCopy?) 78 skyConfig = pmConfigAlloc(); 79 skyConfig->user = psMemIncrRefCounter(config->user); 80 skyConfig->system = psMemIncrRefCounter(config->system); 75 { // this bit is unique to pswarpDefineSkycell: 81 76 82 psFree (skyConfig->files); 83 skyConfig->files = psMemIncrRefCounter(config->files); 84 psFree (skyConfig->arguments); 85 skyConfig->arguments = psMemIncrRefCounter(config->arguments); 77 // We need to force the format for the skycell to be equivalent to SIMPLE. Determine 78 // the current format from the header; Determine camera if not specified already 79 // XXX EAM : this operation should be defined as a pmConfig function (pmConfigCopy?) 80 skyConfig = pmConfigAlloc(); 81 skyConfig->user = psMemIncrRefCounter(config->user); 82 skyConfig->system = psMemIncrRefCounter(config->system); 83 84 psFree (skyConfig->files); 85 skyConfig->files = psMemIncrRefCounter(config->files); 86 psFree (skyConfig->arguments); 87 skyConfig->arguments = psMemIncrRefCounter(config->arguments); 88 } 86 89 87 90 format = pmConfigCameraFormatFromHeader (NULL, NULL, NULL, skyConfig, phu, false); … … 94 97 95 98 // Record the camera name of the skycell, so we can save its configuration 96 psMetadataAddStr(config->arguments, PS_LIST_TAIL, "SKYCELL.CAMERA", 0, "Name of camera for skycell",97 skyConfig->cameraName);99 // XXX this can be put outside of the f 100 psMetadataAddStr(config->arguments, PS_LIST_TAIL, "SKYCELL.CAMERA", 0, "Name of camera for skycell", skyConfig->cameraName); 98 101 99 102 // build the template fpa, set up the basic view -
branches/eam_branches/ipp-20130307/pswarp/src/pswarpLoop.c
r35373 r35413 77 77 // Turn all skycell files on to generate them, and then turn them off for the loop over the input images 78 78 // the input, which is in a different format. 79 { 80 pswarpFileActivation(config, detectorFiles, false); 81 pswarpFileActivation(config, photFiles, false); 82 pswarpFileActivation(config, independentFiles, false); 83 pswarpFileActivation(config, skycellFiles, true); 84 if (!pswarpIOChecksBefore(config)) { 85 psError(psErrorCodeLast(), false, "Unable to read files."); 86 goto DONE; 87 } 88 pswarpFileActivation(config, skycellFiles, false); 89 } 79 // XXX why is this being done here, doesn't it duplicate the work in pswarpDefine.c?? 80 pswarpFileActivation(config, detectorFiles, false); 81 pswarpFileActivation(config, photFiles, false); 82 pswarpFileActivation(config, independentFiles, false); 83 pswarpFileActivation(config, skycellFiles, false); 84 85 // pswarpFileActivation(config, skycellFiles, true); 86 // if (0) { 87 // if (!pswarpIOChecksBefore(config)) { 88 // psError(psErrorCodeLast(), false, "Unable to read files."); 89 // goto DONE; 90 // } 91 // } 92 90 93 91 94 // Read the input astrometry … … 164 167 } 165 168 169 // *** main transformation block 166 170 pmChip *chip; 167 171 while ((chip = pmFPAviewNextChip (view, input->fpa, 1)) != NULL) { -
branches/eam_branches/ipp-20130307/pswarp/src/pswarpParseCamera.c
r35382 r35413 55 55 } 56 56 57 58 59 60 57 bool pswarpParseCamera(pmConfig *config) 61 58 { … … 70 67 } 71 68 72 pmFPAfile *astrom = defineInputFile(config, NULL, "PSWARP.ASTROM", "ASTROM", PM_FPA_FILE_CMF); 69 // XXX I should allow the astrometry input to be either WCS or CMF 70 // Define the input astrometry file(s) 71 bool status = false; 72 pmFPAfile *astrom = pmFPAfileDefineFromArgs(&status, config, "PSWARP.ASTROM", "ASTROM"); 73 if (!astrom) { 74 // look for the file on the RUN metadata 75 astrom = pmFPAfileDefineFromRun(&status, NULL, config, "PSWARP.ASTROM"); // File to return 76 if (!status) { 77 psLogMsg("pswarp", PS_LOG_INFO, "Failed to load file definition for %s", "PSWARP.ASTROM"); 78 } 79 } 80 if ((astrom->type != PM_FPA_FILE_CMF) && (astrom->type != PM_FPA_FILE_WCS)) { 81 psLogMsg("pswarp", PS_LOG_INFO, "%s is neither CMF nor WCS", "PSWARP.ASTROM"); 82 } 73 83 psLogMsg("pswarp", PS_LOG_INFO, "Astrometry source: %s", astrom ? "supplied" : "header"); 74 84 85 // Define the input mask file(s) 75 86 pmFPAfile *inMask = defineInputFile(config, input, "PSWARP.MASK", "MASK", PM_FPA_FILE_MASK); 76 87 if (!inMask) { … … 78 89 } 79 90 91 // Define the input variance file(s) 80 92 pmFPAfile *inVariance = defineInputFile(config, input, "PSWARP.VARIANCE", "VARIANCE", 81 93 PM_FPA_FILE_VARIANCE); … … 91 103 92 104 // The input skycell is a required argument: it defines the output image 93 bool status = false;94 105 pmConfig *skyConfig = NULL; 95 pmFPAfile *skycell = pmFPAfileDefineNewConfig(&status, &skyConfig, config, "PSWARP.SKYCELL", "SKYCELL"); 106 pmFPAfile *skycell = NULL; 107 108 # define USE_PSWARP_DEFINE_SKYCELL 0 109 # if (USE_PSWARP_DEFINE_SKYCELL) 110 // XXX this function is no longer needed; drop 111 status = pswarpDefineSkycell(&skycell, &skyConfig, config, "PSWARP.SKYCELL", "SKYCELL"); 112 # else 113 skycell = pmFPAfileDefineNewConfig(&status, &skyConfig, config, "PSWARP.SKYCELL", "SKYCELL"); 114 # endif 115 96 116 if (!status || !skycell) { 97 117 psError(psErrorCodeLast(), false, "Failed to build FPA from PSWARP.SKYCELL");
Note:
See TracChangeset
for help on using the changeset viewer.
