Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 import shutil
00069 import casac
00070 from tasks import *
00071 from taskinit import *
00072 from __main__ import *
00073 import unittest
00074
00075 class ia_adddegaxes_test(unittest.TestCase):
00076
00077 def setUp(self):
00078 self._myia = iatool()
00079
00080 def tearDown(self):
00081 self._myia.done()
00082
00083 def test_general(self):
00084 """general tests"""
00085 myia = self._myia
00086
00087 imname = 'ia.fromshape.image'
00088 imshape = [10,10]
00089 myim = myia.newimagefromshape(imname, imshape)
00090 self.assertTrue(myim)
00091 self.assertRaises(Exception, myim.adddegaxes, direction=T)
00092 myim2 = myim.adddegaxes(spectral=T)
00093 self.assertTrue(myim2)
00094 s = myim2.shape()
00095 s2 = [imshape[0],imshape[1],1]
00096 self.assertTrue((s == s2).all())
00097 mycs = myim2.coordsys()
00098 types = mycs.axiscoordinatetypes()
00099 self.assertTrue(types[2] == 'Spectral')
00100 self.assertTrue(mycs.done())
00101 self.assertTrue(myim2.done())
00102 myim2 = myim.adddegaxes(stokes='i')
00103 self.assertTrue(myim2)
00104 s = myim2.shape()
00105 s2 = [imshape[0],imshape[1],1]
00106 self.assertTrue((s == s2).all())
00107 mycs = myim2.coordsys()
00108 types = mycs.axiscoordinatetypes()
00109 self.assertTrue(types[2] == 'Stokes')
00110 self.assertTrue(mycs.done())
00111 self.assertTrue(myim2.done())
00112
00113 myim2 = myim.adddegaxes(linear=T)
00114 self.assertTrue(myim2)
00115 s = myim2.shape()
00116 s2 = [imshape[0],imshape[1],1]
00117 self.assertTrue((s == s2).all())
00118 mycs = myim2.coordsys()
00119 types = mycs.axiscoordinatetypes()
00120 self.assertTrue(types[2] == 'Linear')
00121 self.assertTrue(mycs.done())
00122 self.assertTrue(myim2.done())
00123
00124 myim2 = myim.adddegaxes(tabular=T)
00125 self.assertTrue(myim2)
00126 s = myim2.shape()
00127 s2 = [imshape[0],imshape[1],1]
00128 self.assertTrue((s == s2).all())
00129 mycs = myim2.coordsys()
00130 types = mycs.axiscoordinatetypes()
00131 self.assertTrue(types[2] == 'Tabular')
00132 self.assertTrue(mycs.done())
00133 self.assertTrue(myim2.done())
00134 self.assertTrue(myim.done())
00135
00136
00137
00138 mycs = cs.newcoordsys(spectral=T)
00139 self.assertTrue(mycs)
00140 imname = 'ia.fromshape2.image'
00141 imshape = [10]
00142 myim = myia.newimagefromshape(imname, imshape, csys=mycs.torecord())
00143 self.assertTrue(myim)
00144 myim2 = myim.adddegaxes(direction=T)
00145 self.assertTrue(myim2)
00146 s = myim2.shape()
00147 s2 = [imshape[0],1,1]
00148 self.assertTrue((s == s2).all())
00149 mycs2 = myim2.coordsys()
00150 types = mycs2.axiscoordinatetypes()
00151 self.assertTrue(types[1] == 'Direction' and types[2] == 'Direction')
00152 self.assertTrue(mycs2.done())
00153 self.assertTrue(myim2.done())
00154 self.assertTrue(mycs.done())
00155 self.assertTrue(myim.done())
00156
00157 def test_beams(self):
00158 """test hyperbeams get accounted for correctly"""
00159 myia = self._myia
00160 myia.fromshape(shape=[10, 10, 10])
00161 major = "4arcsec"
00162 minor = "3arcsec"
00163 pa = "4deg"
00164 nminor = "2arcsec"
00165 myia.setrestoringbeam(major=major, minor=minor, pa=pa, channel=1)
00166 myia.setrestoringbeam(major=major, minor=nminor, pa=pa, channel=3)
00167 deg = myia.adddegaxes(stokes="I")
00168 self.assertTrue((deg.shape() == [10, 10, 10, 1]).all())
00169 beam = deg.restoringbeam(channel=1)
00170 self.assertTrue(beam["major"] == qa.quantity(major))
00171 self.assertTrue(beam["minor"] == qa.quantity(minor))
00172 self.assertTrue(beam["positionangle"] == qa.quantity(pa))
00173 beam = deg.restoringbeam(channel=3)
00174 self.assertTrue(beam["major"] == qa.quantity(major))
00175 self.assertTrue(beam["minor"] == qa.quantity(nminor))
00176 self.assertTrue(beam["positionangle"] == qa.quantity(pa))
00177
00178
00179 deg.done()
00180
00181
00182 def suite():
00183 return [ia_adddegaxes_test]