Source
predictions at [micron] 9993.1 3747.4 2606.9 1998.6 1499.0 1303.4 1153.0 999.3 ...
# return flux density of thermo-physical models for asteroids
# -- read a tabulated model flux density by Mueller for asteroids and
# flux for a frequency scaled from the nearest value from the table
import os
import numpy as np
class asteroid_TPM:
# objectname: capitalized name
# frequency in GHz
def __init__(self, objectname, frequency, mjd, path='',casalog=None):
if not casalog:
casalog = casac.logsink()
self._casalog = casalog
self.knownsrcdict={'Ceres':{'interval':'1hour'},
'Lutetia':{'interval':'15min'},
'Pallas':{'interval':'15min'},
'Vesta':{'interval':'15min'}}
self.src=objectname
self.setfreq(frequency)
self.setepoch(mjd)
if path =="":
self.setdatapath(os.environ['CASAPATH'].split()[0]+'/data/alma/SolarSystemModels/TPM')
else:
self.setdatapath(path)
self.openedFile=""
self.data=None
def setfreq(self,frequency):
if type(frequency)!=float and type(frequency)!=np.float32 and type(frequency)!=np.float64:
raise IOError("frequency must be float (in GHz)")
self.freq=frequency
def setepoch(self,mjd):
if type(mjd)!=float:
raise IOError("mjd must be float (in MJD)")
self.mjd=mjd
def setdatapath(self,path):
if os.path.exists(path):
if path[-1]!='/':
path+='/'
self.datapath=path
else:
raise IOError("Model data path:"+path+" does not exists")
self._casalog.post("Model data path: "+path)
def getFluxFromMuellerModel(self):
(reffreq, refflux) = self._muellerModelDataReader()
#print "scaling from flux density =",refflux,' Jy @ ',reffreq,'GHz'
return (refflux*(self.freq/reffreq)**2)
def _muellerModelDataReader(self):
"""
read flux density from the asteroid models by
Mueller
"""
from casac import casac
qa = casac.quanta()
reffreq=None