casa
$Rev:20696$
|
00001 # 00002 # This file was generated using xslt from its XML file 00003 # 00004 # Copyright 2008, Associated Universities Inc., Washington DC 00005 # 00006 import sys 00007 import os 00008 from casac import * 00009 import string 00010 import time 00011 import inspect 00012 import gc 00013 import numpy 00014 from odict import odict 00015 from task_asdmsummary import asdmsummary 00016 from task_asdmsummary import casalog 00017 00018 class asdmsummary_pg_: 00019 __name__ = "asdmsummary" 00020 00021 def __init__(self) : 00022 self.__bases__ = (asdmsummary_pg_,) 00023 self.__doc__ = self.__call__.__doc__ 00024 00025 00026 def __call__(self, asdm=None, async=None): 00027 00028 """Summarized description of an ASDM dataset. 00029 00030 The asdmsummary task prints to the CASA log a description of the content of an SDM dataset. 00031 00032 Example: 00033 00034 asdmsummary(sdm='10C-119_sb3070258_1.55628.42186299768') 00035 00036 Prints information about the requested ASDM dataset to the CASA logger. 00037 00038 Keyword argument: 00039 00040 asdm -- Name of input ASDM directory. 00041 example: sdm='10C-119_sb3070258_1.55628.42186299768' 00042 00043 00044 """ 00045 a=inspect.stack() 00046 stacklevel=0 00047 for k in range(len(a)): 00048 if (string.find(a[k][1], 'ipython console') > 0) or (string.find(a[k][1], '<string>') >= 0): 00049 stacklevel=k 00050 break 00051 myf=sys._getframe(stacklevel).f_globals 00052 myf['__last_task'] = 'asdmsummary' 00053 myf['taskname'] = 'asdmsummary' 00054 ### 00055 myf['update_params'](func=myf['taskname'],printtext=False) 00056 ### 00057 ### 00058 #Handle globals or user over-ride of arguments 00059 # 00060 function_signature_defaults=dict(zip(self.__call__.func_code.co_varnames,self.__call__.func_defaults)) 00061 useLocalDefaults = False 00062 00063 for item in function_signature_defaults.iteritems(): 00064 key,val = item 00065 keyVal = eval(key) 00066 if (keyVal == None): 00067 #user hasn't set it - use global/default 00068 pass 00069 else: 00070 #user has set it - use over-ride 00071 if (key != 'self') : 00072 useLocalDefaults = True 00073 #myf[key]=keyVal 00074 00075 myparams = {} 00076 if useLocalDefaults : 00077 for item in function_signature_defaults.iteritems(): 00078 key,val = item 00079 keyVal = eval(key) 00080 exec('myparams[key] = keyVal') 00081 if (keyVal == None): 00082 exec('myparams[key] = '+ key + ' = self.itsdefault(key)') 00083 keyVal = eval(key) 00084 if(type(keyVal) == dict) : 00085 exec('myparams[key] = ' + key + ' = keyVal[len(keyVal)-1][\'value\']') 00086 00087 else : 00088 uselessvariable = None 00089 myparams['asdm'] = asdm = myf['asdm'] 00090 00091 00092 result = None 00093 00094 # 00095 # The following is work around to avoid a bug with current python translation 00096 # 00097 mytmp = {} 00098 00099 mytmp['asdm'] = asdm 00100 pathname='file:///'+os.environ.get('CASAPATH').split()[0]+'/share/xml/' 00101 trec = casac.utils().torecord(pathname+'asdmsummary.xml') 00102 00103 casalog.origin('asdmsummary') 00104 if not trec.has_key('asdmsummary') or not casac.utils().verify(mytmp, trec['asdmsummary']) : 00105 return False 00106 00107 00108 try : 00109 casalog.post('') 00110 casalog.post('##########################################') 00111 casalog.post('##### Begin Task: asdmsummary #####') 00112 casalog.post('') 00113 result = asdmsummary(asdm) 00114 casalog.post('') 00115 casalog.post('##### End Task: asdmsummary #####') 00116 casalog.post('##########################################') 00117 00118 00119 # saveinputs for individule engine has no use 00120 # saveinputs should alos be removed from casa_in_py.py 00121 # 00122 # 00123 # saveinputs = myf['saveinputs'] 00124 # saveinputs('asdmsummary', 'asdmsummary.last', myparams) 00125 # 00126 # 00127 except Exception, instance: 00128 #print '**** Error **** ',instance 00129 pass 00130 00131 gc.collect() 00132 return result 00133 # 00134 # 00135 ## 00136 # def paramgui(self, useGlobals=True): 00137 # """ 00138 # Opens a parameter GUI for this task. If useGlobals is true, then any relevant global parameter settings are used. 00139 # """ 00140 # import paramgui 00141 # 00142 # a=inspect.stack() 00143 # stacklevel=0 00144 # for k in range(len(a)): 00145 # if (string.find(a[k][1], 'ipython console') > 0) or (string.find(a[k][1], '<string>') >= 0): 00146 # stacklevel=k 00147 # break 00148 # myf = sys._getframe(stacklevel).f_globals 00149 # 00150 # if useGlobals: 00151 # paramgui.setGlobals(myf) 00152 # else: 00153 # paramgui.setGlobals({}) 00154 # 00155 # paramgui.runTask('asdmsummary', myf['_ip']) 00156 # paramgui.setGlobals({}) 00157 # 00158 # 00159 # 00160 # 00161 def defaults(self, param=None): 00162 a=inspect.stack() 00163 stacklevel=0 00164 for k in range(len(a)): 00165 if (string.find(a[k][1], 'ipython console') > 0) or (string.find(a[k][1], '<string>') >= 0): 00166 stacklevel=k 00167 break 00168 myf=sys._getframe(stacklevel).f_globals 00169 a = odict() 00170 a['asdm'] = '' 00171 00172 a['async']=False 00173 00174 ### This function sets the default values but also will return the list of 00175 ### parameters or the default value of a given parameter 00176 if(param == None): 00177 myf['__set_default_parameters'](a) 00178 elif(param == 'paramkeys'): 00179 return a.keys() 00180 else: 00181 if(a.has_key(param)): 00182 #if(type(a[param]) == dict) : 00183 # return a[param][len(a[param])-1]['value'] 00184 #else : 00185 return a[param] 00186 00187 00188 # 00189 # 00190 def check_params(self, param=None, value=None): 00191 a=inspect.stack() 00192 stacklevel=0 00193 for k in range(len(a)): 00194 if (string.find(a[k][1], 'ipython console') > 0) or (string.find(a[k][1], '<string>') >= 0): 00195 stacklevel=k 00196 break 00197 myf=sys._getframe(stacklevel).f_globals 00198 00199 # print 'param:', param, 'value:', value 00200 try : 00201 if str(type(value)) != "<type 'instance'>" : 00202 value0 = value 00203 value = myf['cu'].expandparam(param, value) 00204 matchtype = False 00205 if(type(value) == numpy.ndarray): 00206 if(type(value) == type(value0)): 00207 myf[param] = value.tolist() 00208 else: 00209 #print 'value:', value, 'value0:', value0 00210 #print 'type(value):', type(value), 'type(value0):', type(value0) 00211 myf[param] = value0 00212 if type(value0) != list : 00213 matchtype = True 00214 else : 00215 myf[param] = value 00216 value = myf['cu'].verifyparam({param:value}) 00217 if matchtype: 00218 value = False 00219 except Exception, instance: 00220 #ignore the exception and just return it unchecked 00221 myf[param] = value 00222 return value 00223 00224 # 00225 # 00226 def description(self, key='asdmsummary', subkey=None): 00227 desc={'asdmsummary': 'Summarized description of an ASDM dataset.', 00228 'asdm': 'Name of input ASDM directory', 00229 00230 'async': 'If true the taskname must be started using asdmsummary(...)' 00231 } 00232 00233 if(desc.has_key(key)) : 00234 return desc[key] 00235 00236 def itsdefault(self, paramname) : 00237 a = {} 00238 a['asdm'] = '' 00239 00240 if a.has_key(paramname) : 00241 return a[paramname] 00242 asdmsummary_pg = asdmsummary_pg_()