00001 #!/usr/local/bin/python 00002 # 00003 # Copyright 2002 00004 # by 00005 # The Board of Trustees of the 00006 # Leland Stanford Junior University. 00007 # All rights reserved. 00008 # 00009 00010 __facility__ = "Online" 00011 __abstract__ = "FITS to Archive converter" 00012 __author__ = "S. Tuvi <stuvi@SLAC.Stanford.edu> SLAC - GLAST LAT I&T/Online" 00013 __date__ = ("$Date: 2004/08/24 23:15:11 $").split(' ')[1] 00014 __version__ = "$Revision: 2.1 $" 00015 __credits__ = "SLAC" 00016 00017 import LATTE.copyright_SLAC 00018 00019 import sys 00020 import getopt 00021 00022 def __usage(): 00023 print "\n%s Usage:" % (sys.argv[0]) 00024 print "\t-h or --help for Help" 00025 print "\t-f or --fits to specify the input FITS file" 00026 print "\t-a or --archive to specify to output archive file" 00027 print "\t-r or --runreport to specify an output run report filename (eg. rcReport.out)" 00028 print "\t-v or --verbose to specify progress messages during the conversion" 00029 00030 00031 if __name__ == '__main__': 00032 archiveFile='' 00033 fitsFile='' 00034 verbose=0 00035 try: 00036 opts, args = getopt.getopt(sys.argv[1:], "ha:f:vr:", 00037 ["help", "archive=", "fits=", "verbose", "runreport="]) 00038 except getopt.GetoptError: 00039 # print help information and exit: 00040 __usage() 00041 sys.exit(2) 00042 for o, a in opts: 00043 if o in ("-h", "--help"): 00044 __usage() 00045 sys.exit() 00046 if o in ("-a", "--archive"): 00047 archiveFile = a 00048 if o in ("-f", "--fits"): 00049 fitsFile = a 00050 if o in ("-v", "--verbose"): 00051 verbose = 1 00052 if o in ("-r", "--runreport"): 00053 runReportFile = a 00054 00055 if archiveFile == '': 00056 print "\nERROR: Missing archive file parameter" 00057 __usage() 00058 sys.exit(2) 00059 00060 if fitsFile == '': 00061 print "\nERROR: Missing FITS file parameter" 00062 __usage() 00063 sys.exit(2) 00064 00065 import rcArchiver 00066 arch = rcArchiver.rcArchiver(fileName=archiveFile, mode=rcArchiver.MODE_CREATE) 00067 00068 import rcReportGen 00069 reportGen = rcReportGen.rcReportGen(fileName=runReportFile) 00070 reportGen.initialize() 00071 00072 import rcFitsWriter 00073 fits = rcFitsWriter.rcFitsWriter(fileName=fitsFile, mode=rcFitsWriter.MODE_READONLY, 00074 format=rcFitsWriter.FORMAT_BYTE, reportGen=reportGen) 00075 00076 cnt=0 00077 while(1): 00078 dat = fits.read() 00079 if dat == None: break 00080 cnt+=1 00081 if verbose and (cnt % 100) == 0: print "Progress line:", cnt 00082 arch.write(dat) 00083 if verbose and (cnt % 100) != 0: print "Progress line:", cnt 00084 00085 arch.close() 00086 fits.close() 00087 00088 reportGen.writeReportXML() 00089 00090 if verbose: print "Conversion completed successfully!"