NRAO Home  >  Green Bank  |  Wiki Topic:    GB > Software > PlanOfRecordC52007 > ModificationRequest15C507
   Changes | Index | Contents | Search | Statistics | Go

Merge Zpectrometer code branch into main trunk

Modification Request #15 (C5 2007)



1. Introduction

In the fall of 2006, the GBTIDL and sparrow code trees were both branched to produce development code branches in support of the initial tests of the Zpectrometer on the GBT. Those changes need to be merged back into the main trunks so that only only the main trunk needs to be maintained.

The online sdfits daemon needs to fill Zpectrometer data after the code merge has taken place. A re-arrangement of the structure of /home/sdfits and related directories needs to happen at that time to make it easier to manage that area and provide flexibility to Zpectrometer data capture.

2. Background

At the time the two code trees were branched, there was active and rapid development of code necessary to support the Zpectrometer. That work was not closely tied to the regular development cycle of regular software CM&E work in Green Bank. In order to isolate the main code branches from frequent changes to support the Zpectrometer, the two code trees were branched. The development in these trees are described in this GBTIDL MR, and this SDFITS MR. That work has remained relatively stable over recent months and it has also proven to be isolated from almost all of the rest of the code in each affected package. In order that the continuing Zpectrometer work see the regular bug fixes and enhancements in the main branches without having to maintain two separate code trees, it is now time to merge the Zpectrometer-specific parts of the branches back in to the main truck.

The online sdfits daemon only fills DCR, SpectralProcessor, and Spectrometer data. Output fits files are written to /home/sdfits. The accompanying index files are also written to /home/sdfits as are the log files produced by the sdfits daemon. Temporary lock files are written to /home/sdfits-locks and empty world-writable flag files are created in /home/sdfits-flags. A symbolic link to each flag file is placed in /home/sdfits. The GBTIDL "online" procedure looks in /home/sdfits and opens the most recently modified spectral-line fits file in that directory. The flag file is needed so that users can flag on-line data (which exist in a read-only directory to prevent the user from accidentally changing it). At the time that the scheme of the flag file existing in a writable directory (/home/sdfits-flags) and symbolic link existing in /home/sdfits was designed, it was thought that the flag file would need to be created and destroyed periodically. That turns out not to be the case and so there is no reason why the empty flag file could not be created in the same directory with the output fits files. The write permissions of /home/sdfits and /home/sdfits-flags are identical and there is no reason to create the symbolic link from the directory containing the output FITS file to the true flag file in /home/sdfits-flags.

When filling Zpectrometer data in the branched version of sdfits, associated files (as indicated in the raw Zpectrometer FITS file) are copied over to the same directory where the output fits file is written.

There are an increasing number of files that are written, created, or copied when the online sdfits daemon runs (the output FITS files, the index files, the log file, the flag file, associated Zpectrometer files) such that /home/sdfits is very cluttered. The changes described here will put all of the files produced when filling data from the same project into a single directory in /home/sdfits using the project name as the name of that directory (e.g. /home/sdfits/AGBT07A_058_03).

For more general information on the Zpectrometer project, see the NRAO Zpectrometer Wiki.

3. Requirements

4. Design

4.1 Merging Zpectrometer-specific code back into the main branches of GBTIDL and sparrow

4.1.1 Changes local to the zpectrometer branch of GBTIDL

The new code in the following list will all be simply moved to the contrib directory in the main GBTIDL trunk. A new zgbtidl script will be created which will invoke init_zgbtidl. That will be done to auto-compile the zpectrometer routines only for those users that need them. Note that they will still be in the IDL path for regular GBTIDL users, they will simply not be compiled at startup (none of the routines in contrib are compiled at startup during normal GBTIDL use) unless zgbtidl is invoked.

The rows_index_section__define.pro changes will need to be examined carefully as it appears from the comments that things were removed to deal with zpectrometer data. Either a new class (e.g. zrows_index_section__define.pro) will need to be written (presumably just a simply copy from this) or perhaps this class could be made smarter so that it can switch internally between Zpectrometer data and regular GBTIDL data.

The zpectrometer unit tests should be included in the regular nightly GBTIDL unit tests.

4.1.2 Changes local to the zpectrometer branch of sparrow

Most of these are new and can be moved as is over to the main branch. A few will need more careful work in merging to ensure that all functionality remains intact. None of this work should take very much time.

4.2 New organization of /home/sdfits

5. Logistical details during testing and deployment

6. Deployment Checklist

7. Test Plan

Critical!! ChangeControlCommittee will be reviewing these. Please send a link to this MR to RonMaddalena along with a suggestion for two reviewers when it is ready for CCC review.

Don't forget to include/acquire any additional GBT test time needed outside integration/regression testing! Get your requests in early!

Important! If possible, you should conduct as many of your tests as possible in offline modes and/or with a simulator. We should constantly endeavor to minimize our use of telescope time for testing!

7.1 Internal Testing

7.2 Sponsor Testing

The sponsor will run a variety of routines from Andrew Baker's zpectrometer suite to insure that all functionality is still in place. This will be done both on data filled by the online filler and data filled offline.

7.3 Integration/Regression Tests

* We might want to have someone from outside the GBTIDL and Monctrl groups test out the 'online' command in GBTIDL to make sure that there are no permissions issues. * Integration tests should simply insure the old sdfits code is not broken,


Signatures

APPROVED: I acknowledge that my request is fully contained in this MR, and if the SDD delivers exactly what I specified, I will be happy.

ACCEPTED: I acknowledge that I have validated the completed code according to the acceptance tests, and I am happy with the results.

Written DONE - BobGarwood - 27 Aug 2007
Checked DONE - PaulMarganian - 27 Aug 2007
Approved by Sponsor DONE - KarenONeil - 28 Aug 2007; DONE - AndrewBaker - 3 Sep 2007
Approved by CCC DONE - RonMaddalena - 10 Sep 2007
Accepted/Delivered by Sponsor DONE - AndrewBaker - 2 Oct 2007

Symbols:


CCC Discussion Area

-- BobGarwood - 27 Jul 2007

Topic ModificationRequest15C507 . { Edit | Attach | Ref-By | Printable | Diffs | r1.18 | > | r1.17 | > | r1.16 | More }
Revision r1.18 - 02 Oct 2007 - 06:19 GMT - AndrewBaker
Parents: PlanOfRecordC52007
Content copyright © 1999-2007 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.