Esempio n. 1
0
 def skysub(self):
     firstdat = self.niimage.get_data()
     seconddat = self.nisky.get_data()
     finaldat = firstdat - seconddat
     final_image = dp.make_image(finaldat,
                                 self.niimage, {},
                                 pfx='subtracted')
     name = dp.get_image_name(final_image)
     self.fv.add_image(name, final_image, chname='Image')
Esempio n. 2
0
 def subimg(self):
     first = self.fv.load_file(self.w.first.get_text(), chname = '1')
     second = self.fv.load_file(self.w.second.get_text(), chname = '2')
     firstdat = first.get_data()
     seconddat = second.get_data()
     finaldat = firstdat - seconddat
     final_image = dp.make_image(finaldat, first, {}, pfx='subtracted')
     name = dp.get_image_name(final_image)
     self.fv.add_image(name, final_image, chname='4')
Esempio n. 3
0
 def set_flat_cb(self, w):
     # Current image is a flat field we should set
     self.flat = self.fitsimage.get_image()
     flatname = dp.get_image_name(self.flat, pfx='flat')
     self.w.flat_image.set_text(flatname)
     self.update_status("Set flat field.")
Esempio n. 4
0
 def set_bias_cb(self, w):
     # Current image is a bias image we should set
     self.bias = self.fitsimage.get_image()
     biasname = dp.get_image_name(self.bias, pfx='bias')
     self.w.bias_image.set_text(biasname)
     self.update_status("Set bias image.")
Esempio n. 5
0
 def show_result(self, image):
     chname = self.fv.get_channelName(self.fitsimage)
     name = dp.get_image_name(image)
     self.imglist.insert(0, image)
     self.update_stack_gui()
     self.fv.add_image(name, image, chname=chname)
Esempio n. 6
0
    def multimos(self, filename):
        hdulist = fits.open(filename)
        files = np.sum([
            1 for hdu in hdulist if
            type(hdu) in [fits.hdu.image.PrimaryHDU, fits.hdu.image.ImageHDU]
            and hdu.data is not None
        ])
        k = 0
        j = 0

        ra_deg = 0.5
        dec_deg = 0.5
        fov_deg = 0.2
        header = hdulist[1].header
        (rot_deg, cdelt1,
         cdelt2) = wcs.get_rotation_and_scale(header, skew_threshold=1)
        px_scale = math.fabs(cdelt1)
        cdbase = [np.sign(cdelt1), np.sign(cdelt2)]

        ###Sorting Images###
        imagesort = [[0 for x in range(4)] for y in range(files)]
        for i in range(1, files + 1):
            imagesort[i - 1][0] = hdulist[i]
            df = hdulist[i].header['DETSEC']
            cpos = df.index(':')
            epos = df.index(',')
            dflow = ''.join(df[1:cpos])
            dflow = int(dflow)
            dfhigh = ''.join(df[cpos + 1:epos])
            dfhigh = int(dfhigh)
            imagesort[i - 1][1] = dflow + dfhigh
            ncpos = df.index(':', cpos + 1)
            nepos = df.index(']')
            yflow = ''.join(df[epos + 1:ncpos])
            yflow = int(yflow)
            yhigh = ''.join(df[ncpos + 1:nepos])
            yhigh = int(yhigh)
            imagesort[i - 1][2] = yflow + yhigh
            ccd = hdulist[i].header['CCDNAME']
            imagesort[i - 1][3] = ccd

        sortedim = sorted(imagesort, key=lambda x: x[1])

        ###Putting images together###

        #2D#

        if sortedim[0][1] == sortedim[1][1]:
            for i in range(1, files + 1):
                dr = sortedim[i - 1][0].header['DATASEC']
                colpos = dr.index(':')
                endpos = dr.index(',')
                drlow = ''.join(dr[1:colpos])
                drlow = int(drlow)
                drhigh = ''.join(dr[colpos + 1:endpos])
                drhigh = int(drhigh)
                imdata = sortedim[i - 1][0].data[:, drlow:drhigh]
                gapxdim = np.size(imdata, 0)
                gapx = np.zeros((gapxdim, 30))
                gapx[:, :] = np.nan
                gapydim = np.size(imdata, 1) + 30
                gapy = np.zeros((20, gapydim))
                gapy[:, :] = np.nan
                fgapy = np.zeros((20, gapydim - 30))
                fgapy[:, :] = np.nan
                #image flips#
                df = sortedim[i - 1][0].header['DETSEC']
                cpos = df.index(':')
                epos = df.index(',')
                dflow = ''.join(df[1:cpos])
                dflow = int(dflow)
                dfhigh = ''.join(df[cpos + 1:epos])
                dfhigh = int(dfhigh)
                ncpos = df.index(':', cpos + 1)
                nepos = df.index(']')
                yflow = ''.join(df[epos + 1:ncpos])
                yflow = int(yflow)
                yhigh = ''.join(df[ncpos + 1:nepos])
                yhigh = int(yhigh)
                if dflow > dfhigh:
                    findatx = np.fliplr(imdata)
                else:
                    findatx = imdata

                if yflow > yhigh:
                    findat = np.flipud(findatx)
                else:
                    findat = findatx
                fm = files - 1
                if i != files:
                    if i != fm:
                        if sortedim[i - 1][3] != sortedim[i][3]:
                            findat = np.column_stack((findat, gapx))

                if i == 1:
                    vert = findat

                elif sortedim[i - 1][1] == sortedim[i - 2][1]:
                    if sortedim[i - 1][2] > sortedim[i - 2][2]:
                        if i == files:
                            vert = np.vstack((vert, fgapy))
                            vert = np.vstack((vert, findat))
                            if i == files:
                                final = np.column_stack((final, vert))
                        else:
                            vert = np.vstack((vert, gapy))
                            vert = np.vstack((vert, findat))
                            if i == files:
                                final = np.column_stack((final, vert))
                    else:
                        findat = np.vstack((findat, gapy))
                        vert = np.vstack((findat, vert))
                        if i == files:
                            final = np.column_stack((final, vert))

                else:
                    k = k + 1
                    if k == 1:
                        final = vert
                        vert = findat
                    else:
                        final = np.column_stack((final, vert))
                        vert = findat

        else:
            #1d#
            for i in range(1, files + 1):
                #data ranges#
                dr = sortedim[i - 1][0].header['DATASEC']
                colpos = dr.index(':')
                endpos = dr.index(',')
                drlow = ''.join(dr[1:colpos])
                drlow = int(drlow)
                drhigh = ''.join(dr[colpos + 1:endpos])
                drhigh = int(drhigh)
                imdata = sortedim[i - 1][0].data[:, drlow:drhigh]
                gapxdim = np.size(imdata, 0)
                gapx = np.zeros((gapxdim, 30))
                gapx[:, :] = np.nan
                #image flips#
                df = sortedim[i - 1][0].header['DETSEC']
                cpos = df.index(':')
                epos = df.index(',')
                dflow = ''.join(df[1:cpos])
                dflow = int(dflow)
                dfhigh = ''.join(df[cpos + 1:epos])
                dfhigh = int(dfhigh)
                ncpos = df.index(':', cpos + 1)
                nepos = df.index(']')
                yflow = ''.join(df[epos + 1:ncpos])
                yflow = int(yflow)
                yhigh = ''.join(df[ncpos + 1:nepos])
                yhigh = int(yhigh)

                if dflow > dfhigh:
                    findatx = np.fliplr(imdata)
                else:
                    findatx = imdata

                if yflow > yhigh:
                    findat = np.flipud(findatx)
                else:
                    findat = findatx
                #final image
                if i == 1:
                    final = findat
                else:
                    final = np.append(final, findat, axis=1)

                if i != files and sortedim[i - 1][3] != sortedim[i][3]:
                    final = np.append(final, gapx, axis=1)

        #finalimage#
        #plt.imshow(final)
        #plt.show()
        #finalimage = fits.ImageHDU()
        #finalimage.data = final
        oldim = dp.create_blank_image(ra_deg,
                                      dec_deg,
                                      fov_deg,
                                      px_scale,
                                      rot_deg,
                                      cdbase=cdbase,
                                      logger=None)
        finalimage = dp.make_image(final, oldim, {}, pfx='mosaic')
        name = dp.get_image_name(finalimage)
        self.fv.add_image(name, finalimage, chname='Mosaic')
Esempio n. 7
0
 def set_flat_cb(self, w):
     # Current image is a flat field we should set
     self.flat = self.fitsimage.get_image()
     flatname = dp.get_image_name(self.flat, pfx='flat')
     self.w.flat_image.set_text(flatname)
     self.update_status("Set flat field.")
Esempio n. 8
0
 def set_bias_cb(self, w):
     # Current image is a bias image we should set
     self.bias = self.fitsimage.get_image()
     biasname = dp.get_image_name(self.bias, pfx='bias')
     self.w.bias_image.set_text(biasname)
     self.update_status("Set bias image.")
Esempio n. 9
0
 def show_result(self, image):
     chname = self.fv.get_channelName(self.fitsimage)
     name = dp.get_image_name(image)
     self.imglist.insert(0, image)
     self.update_stack_gui()
     self.fv.add_image(name, image, chname=chname)