Source
import shutil
import os
from casatools import componentlist, measures, quanta, ms, table
from casatasks import casalog
from .setjy_helper import testerrs
from . import solar_system_setjy as SSSetjy
_qa = quanta()
def predictSolarObjectCompList(objname, epoch, freqs, prefix):
"""
predictcomp functionality using the new models
set flux density of a solar system object using Bryan Butler's new
python model calculation code.
"""
retval = True
cleanupcomps = False # leave genenerated cl files
nfreqs=-1
myms = ms( )
mytb = table( )
mycl = componentlist( )
myme = measures( )
#freqinc=freqs[0]*1e-6
if len(freqs) == 1:
freqinc=freqs[0]*1e-4
else:
freqinc=abs(freqs[1]-freqs[0])*1e-2
freqlist=[]
for freq in freqs:
minf = freq-freqinc
maxf = freq+freqinc
freqlist.append([minf,maxf])
#mepoch = myme.epoch('UTC', epoch)
if epoch['m0']['value']==0.0:
casalog.post('Invalid epoch, '+str(epoch['m0']['value'])+str(epoch['m0']['unit']),'SEVERE');
raise Exception("Error")
epochv = epoch['m0']['value']
# turn user input epoch to mjd
#casalog.post("sending objname={} epochv={} freqlist={}".format(objname, epochv, freqlist)
observatory='ALMA'
ss_setjy=SSSetjy.solar_system_setjy()
(errcodes, fluxes, fluxerrs, sizes, dirs)=\
ss_setjy.solar_system_fd(source_name=objname, MJDs=[epochv], frequencies=freqlist, observatory=observatory, casalog=casalog)
#casalog.post("fluxes from ss_setjy={}".format(fluxes))
#if errcodes[0][0] > 0:
# raise ValueError("cannot determined flux")
reterr=testerrs(errcodes[0],objname)
if reterr == 2:
#raise Exception, "Error"
casalog.post("Flux densities cannot be determined","SEVERE")
raise Exception
dirstring = [dirs[0]['refer'],_qa.tos(dirs[0]['m0']),_qa.tos(dirs[0]['m1'])]
# setup componentlists
# need to set per dir