Package invocations :: Package cu2 :: Module montageMosaics
[hide private]

Source Code for Module invocations.cu2.montageMosaics

 1  #! /usr/bin/env python 
 2  #------------------------------------------------------------------------------ 
 3  #$Id: montageMosaics.py 7245 2010-07-20 12:52:03Z RossCollins $ 
 4  """ Script to combine 4 jpegs into one big jpeg. 
 5  """ 
 6  #------------------------------------------------------------------------------ 
 7  from   operator import itemgetter 
 8  import os 
 9  import os.path as op 
10  import sys 
11   
12  import wsatools.FitsUtils           as fits 
13  from   wsatools.SystemConstants import SystemConstants 
14  #------------------------------------------------------------------------------ 
15   
16 -def getSize(filename):
17 """Get the size of the fits file.""" 18 exthdr = fits.open(filename)[1].header 19 sizex = exthdr["ZNAXIS1"] 20 sizey = exthdr["ZNAXIS2"] 21 # norm to a ~3kx3k image 22 modul = sizex/3000 23 return (sizex/modul,sizey/modul)
24 25 #------------------------------------------------------------------------------ 26
27 -def montage(filelist,outfile):
28 """Build the big jpeg from 4 parts.""" 29 size = getSize(filelist[0]) 30 # Use linux command: 31 # montage +shadow +label -tile 2x2 -geometry 3112x3327+0+0 \ 32 # small_3.jpg small_4.jpg small_1.jpg small_2.jpg big_3112x3327.jpg 33 cmd = "montage +shadow +label -tile 2x2 -geometry " 34 cmd += str(size[0]) + "x" + str(size[1]) +"+0+0 " 35 cmd += filelist[3] + " " + filelist[4] + " " 36 cmd += filelist[1] + " " + filelist[2] + " " 37 cmd += outfile 38 print cmd 39 os.system(cmd)
40 41 #------------------------------------------------------------------------------ 42
43 -def usage():
44 print "usage: montageMosaics.py jpglistfile" 45 print "jpglistfile contains the full path of the jpgs and the" 46 print "associated fits file(s)."
47 48 #------------------------------------------------------------------------------ 49
50 -def main(argv):
51 52 if len(argv) != 2: 53 print argv 54 usage() 55 raise SystemExit 56 57 jpglistfile = argv[1] 58 jpegs = sorted([l.replace('\n',''),len(l)] for l in file(jpglistfile)) 59 jpegs.sort(key=itemgetter(1)) 60 jpgcopy = jpegs[:] 61 fitslist = [] 62 for ent in jpgcopy: 63 if ent[0].endswith(SystemConstants.mefType): 64 fitslist.append(jpegs.pop(jpegs.index(ent))) 65 66 montlist = [] 67 for ent in fitslist: 68 fitsbase = op.basename(ent[0])[:op.basename(ent[0]).find("_dp_")] 69 fitssuff = op.basename(ent[0])[op.basename(ent[0]).find("_dp_"): 70 op.basename(ent[0]).rfind(".")] 71 72 sublist = [ent[0]] 73 for jpgs in jpegs: 74 if op.basename(jpgs[0]).find(fitsbase) >= 0 \ 75 and op.basename(jpgs[0]).find(fitssuff) >= 0 \ 76 and len(jpgs[0])-2 == len(ent[0]): 77 sublist.append(jpgs[0]) 78 montlist.append(sublist) 79 80 print ">",montlist 81 for flist in montlist: 82 print ">>",flist 83 outfilename = op.join(op.dirname(flist[1]), 84 op.basename(flist[0])[:op.basename(flist[0]).rfind(".")]) 85 86 montage(flist,outfilename+"_1.jpg")
87 88 #------------------------------------------------------------------------------ 89 90 if __name__ == '__main__': 91 main(sys.argv) 92 93 #------------------------------------------------------------------------------ 94 # Change log: 95 # 96 # 25-Jul-2006, ETWS: First version 97 # 22-Nov-2007, ETWS: Excluding catalogues from a general fits file list. 98