예제 #1
0
 def test_save_header_good(self):
     cube = eclipse.cube('IM01.fits')
     hdr = eclipse.header()
     hdr.default()
     hdr['AKEY'] = 1
     cube.save_cube('IM06.fits', hdr)
     self.failUnless(os.path.exists('IM06.fits'))
     os.remove('IM06.fits')
예제 #2
0
 def test_save_header_bad_filename(self):
     cube = eclipse.cube('IM01.fits')
     hdr = eclipse.header()
     hdr.default()
     hdr['AKEY'] = 1
     self.failUnlessRaises(eclipse.EclipseError,
                           cube.save_cube,
                           'dddd/IM06.fits', hdr)
예제 #3
0
 def test_save_bad_filename(self):
     cube = eclipse.cube('IM01.fits')
     self.failUnlessRaises(eclipse.EclipseError,
                           cube.save_cube,
                           'dddd/IM06.fits')
예제 #4
0
 def test_save_bad_no_image(self):
     cube = eclipse.cube()
     self.failUnlessRaises(eclipse.EclipseError,
                           cube.save_cube,
                           'IM06.fits')
예제 #5
0
 def test_save_good(self):
     cube = eclipse.cube('IM01.fits')
     cube.save_cube('IM06.fits')
     self.failUnless(os.path.exists('IM06.fits'))
     os.remove('IM06.fits')
예제 #6
0
 def test_load_bad_filename_file(self):
     cube = eclipse.cube('FILELIST.DAT')
     self.failUnlessRaises(eclipse.EclipseError, cube.load_cube)
예제 #7
0
 def test_load_bad_filename_list(self):
     cube = eclipse.cube(filenames+['IM.fits'])
     self.failUnlessRaises(eclipse.EclipseError, cube.load_cube)
예제 #8
0
 def test_fastcopy_not_reloadable(self):
     cube = eclipse.cube('IM01.fits').fast_copy()
     newcube = cube.fast_copy()
     self.failUnless(cube.p_cube)
     self.failUnless(newcube.p_cube)
예제 #9
0
 def test_load_good_filename_file(self):
     cube = eclipse.cube('filelist.dat')
     cube.load_cube()
     self.failIfEqual(cube.p_cube, None)
예제 #10
0
 def test_load_good_filename_list(self):
     cube = eclipse.cube(filenames)
     cube.load_cube()
     self.failIfEqual(cube.p_cube, None)
예제 #11
0
 def test_load_good_filename(self):
     cube = eclipse.cube('IM01.fits')
     cube.load_cube()
     self.failIfEqual(cube.p_cube, None)
예제 #12
0
 def setUp(self):
     self.hdr = eclipse.header()
     self.hdr.default()
     self.cube = eclipse.cube('IM01.fits')
예제 #13
0
 def setUp(self):
     self.cube = eclipse.cube(filenames)
예제 #14
0
 def setUp(self):
     self.c1 = eclipse.cube('IM01.fits')
     self.c2 = eclipse.cube('IM02.fits')
     self.bad = eclipse.cube('IM01.large.fits')
예제 #15
0
 def setUp(self):
     self.c = eclipse.cube('IM01.fits')
예제 #16
0
 def test_load_bad_filename(self):
     cube = eclipse.cube('IM.fits')
     self.failUnlessRaises(eclipse.EclipseError, cube.load_cube)
예제 #17
0
def test_cube():
    print "Running tests on cube()..."

    print "Testing image generation and saving..."
    print "Generating 5 random 256x256 images and writing filelist.dat..."
    stat_list = []
    name_list = []
    filelist = open('filelist.dat', 'w')

    cg = eclipse.CubeGenerator(128, 128)
    for i in range(1, 6):
        name = 'IM%2.2i.fits' % i
        print "Generating random image %s with mean=%5.2f and stdev=%5.2f" % (
            name, 1.0 * i, 0.5 * i)
        new_cube = cg.generate_random_gauss(0.5 * i, 1.0 * i)
        new_cube.save_cube(name)
        st = new_cube.stat()
        print 'Measured statistics (mean, stdev):', st.avg_pix, st.stdev

        stat_list.append(st)
        name_list.append(name)
        filelist.write(name + '\n')

    filelist.close()
    print

    print "Testing loading..."
    print "Loading", name_list, "into one cube"
    acube = eclipse.cube(name_list)
    print "Number of planes in cube :", len(acube)
    print

    print "Loading filelist.dat into one cube"
    acube = eclipse.cube('filelist.dat')
    print "Number of planes in cube :", len(acube)
    print

    print "Testing indexing and slicing..."
    print "Extracting each plane and computing statistics"
    for i in range(len(acube)):
        st = acube[i].stat()
        print "plane: %i, mean: %5.2f, stdev: %7.4f" % (i, st.avg_pix,
                                                        st.stdev)
    print

    print 'Testing statistics'
    print acube.stat_plane().__dict__

    print "Extracting slice [1:4] and computing statistics"
    subcube = acube[1:4]
    stat = subcube.stat()
    for i in range(len(subcube)):
        print "plane %i, mean: %5.2f, stdev: %7.4f" % (i, stat[i].avg_pix,
                                                       stat[i].stdev)
    print

    print "Testing averaging of slice[1:4]..."
    avcube = subcube.average()
    st = avcube.stat()
    print "Statistics of average: mean: %5.2f, stdev: %7.4f" % (st.avg_pix,
                                                                st.stdev)

    print "Testing normalization..."
    acube.norm('mean')
    for i in range(len(acube)):
        st = acube[i].stat()
        print "plane: %i, mean: %5.2f, stdev: %7.4f" % (i, st.avg_pix,
                                                        st.stdev)
    print

    print "Averaging with rejection..."
    av1cube = acube.average()
    av2cube = acube.average_with_rejection(1, 1)
    st1 = av1cube.stat()
    st2 = av2cube.stat()
    print "Statistics of average without rejection: mean: %5.2f, stdev: %7.4f" % (
        st.avg_pix, st.stdev)
    print "Statistics of average with rejetion    : mean: %5.2f, stdev: %7.4f" % (
        st.avg_pix, st.stdev)

    print "Testing image arithmetic..."

    print "a, b, c = cube('IM01.fits'), cube('IM02.fits'), cube('IM03.fits')"
    print "d = a+b+c"
    print "e = d+b+c"
    print "a += b (a=a+b)"
    a, b, c = eclipse.cube('IM01.fits'), eclipse.cube(
        'IM02.fits'), eclipse.cube('IM03.fits')

    d = a + b + c
    e = d + b + c
    a += b
    st_d = d.stat()
    st_e = e.stat()
    st_a = a.stat()
    print "mean d =", st_d.avg_pix, " e =", st_e.avg_pix, " a =", st_a.avg_pix
예제 #18
0
 def test_copy(self):
     cube = eclipse.cube('IM01.fits')
     newcube = cube.copy()
     self.failUnless(cube.p_cube)
     self.failUnless(newcube.p_cube)