| | 1 | == 2016 Nightly Science Update == |
| | 2 | |
| | 3 | === How to run the script to generate the commands for missing diffs. === |
| | 4 | |
| | 5 | This requires a build of the branches/czw_branch/20160809/ code, and is based on r39816. At minimum, ippScripts and ippconfig are needed. |
| | 6 | |
| | 7 | {{{ |
| | 8 | nightly_science.pl --dbname gpc1 --camera GPC1 --verbose --debug --check_diffs --force_registration --date `date +%Y-%m-%d` |
| | 9 | }}} |
| | 10 | |
| | 11 | In addition to the regular options, the effects of the others are: |
| | 12 | * {{{--debug}}} Ensures all commands have -pretends appended for safety. |
| | 13 | * {{{--check_diffs}}} Does not execute the commands automatically, just prints them out. |
| | 14 | * {{{--force_registration}}} Should not be needed in general, but in case morning darks were not taken, this tells the script to assume it is the end of the night. |
| | 15 | |
| | 16 | This command is very verbose, but the missing diffs will be towards the end, in the section with lines prefaced by "desp_diff_queue". |
| | 17 | |
| | 18 | === Details from my email on the change. === |
| | 19 | |
| | 20 | The goal of this change is to |
| | 21 | ensure that all diffs that are desired by MOPS are automatically |
| | 22 | generated, removing the need for additional manual work. This should |
| | 23 | speed MOPS processing. |
| | 24 | |
| | 25 | I have attached the output of the current nightly_science.pl script in |
| | 26 | the "check_diffs" mode, along with the output from the proposed change |
| | 27 | to nightly_science.pl for yesterday (2016-11-14). The check_diffs |
| | 28 | mode runs the same logic as is used for queuing diffs, but does not |
| | 29 | issue queuing commands, and as such represents a way to demonstrate |
| | 30 | what the effect of this proposed change will be. |
| | 31 | |
| | 32 | The output starts with a summary of the active configuration. A diff |
| | 33 | illustrates that the current IPP production configuration does not |
| | 34 | match the trunk exactly, with default retention times for warps being |
| | 35 | long, and with differences to the target definitions that will likely |
| | 36 | need to be resolved on the IPP side. |
| | 37 | |
| | 38 | Following the configuration is a set of checks of the database to |
| | 39 | attempt to determine if observing has reached the end of night, by |
| | 40 | looking for the standard dark frame observations in the database. |
| | 41 | This is used to know if it is safe to generate stacks, and also to |
| | 42 | queue the new diffs automatically. |
| | 43 | |
| | 44 | Next is a scan over the observing targets and filters. A note is |
| | 45 | generated for each possible diff that should be possible, in this case |
| | 46 | noting that the diffs are complete. The format for this includes the |
| | 47 | date, target, input exp_id, template exp_id, input warp_id, template |
| | 48 | warp_id, the observation object, and the input comment string. The |
| | 49 | proposed change additionally adds the template comment string, which |
| | 50 | was left out of the original version. |
| | 51 | |
| | 52 | This scan appears to me to show that all diffs generated in the |
| | 53 | current code are generated by the proposed code as well. Yesterday |
| | 54 | was a good example to run, as object ps1_32_1505 had a bad camera |
| | 55 | stage quality for the third visit. This is handled in both versions |
| | 56 | of the code, but the proposed change is more explicit about the |
| | 57 | rejection of this exposure (exp_id = 1165338) and the exposure |
| | 58 | rejected to ensure that image/template pairs are fully populated |
| | 59 | (exp_id = 1165358). |
| | 60 | |
| | 61 | Following the standard diff scan, based on the information that the |
| | 62 | end of night has been reached and no new exposures are coming, the |
| | 63 | original code continues to a multi-date diff operation that tries to |
| | 64 | find unpaired exposures that exist on disk and construct differences |
| | 65 | from those. My understanding is that these products are not desired, |
| | 66 | and as such this has been disabled in the proposed change. |
| | 67 | |
| | 68 | Replacing this is an attempt to construct "desperate diffs" (named |
| | 69 | that way simply because I couldn't think of a better word). This runs |
| | 70 | the pairing operation again, but with the exposures sorted in a |
| | 71 | reverse order. Diffs that have already been constructed are |
| | 72 | identified as already queued, but this sorting order allows for the |
| | 73 | rejection rules to generate the next-best diffs for cases where an |
| | 74 | exposure has been lost. For the case of ps1_32_1505, visit three is |
| | 75 | again rejected for camera quality issues, but this time visit one is |
| | 76 | rejected, allowing for the visit 2 - visit 4 diff to be constructed |
| | 77 | (exp_ids 1165320, 1165358). A technical note for IPP, these diffs |
| | 78 | have the -rerun option applied, which will allow one exposure to be in |
| | 79 | two diffs with the same labels. |
| | 80 | |
| | 81 | Finally, after all this, an IPP metadata block is written out that is |
| | 82 | used by the pantasks processing to set state information, such that |
| | 83 | all possible diffs have been constructed, and that no further checks |
| | 84 | need to be run. |
| | 85 | |
| | 86 | |