コード例 #1
0
ファイル: training.py プロジェクト: zhuww/ubc_AI
 def getbandpass(M):
     feature = '%s:%s' % ('bandpass', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         self.extracted_feature[feature] = normalize(downsample(profs.sum(0).sum(1),M).ravel())
     return self.extracted_feature[feature]
コード例 #2
0
        def getsubbands(M):
            feature = '%s:%s' % ('subbands', M)
            if M == 0:
                return np.array([])
            if not feature in self.extracted_feature:
                img = greyscale(self.profs.sum(0))
                #U,S,V = svd(img)
                #if M <= len(S):
                #return S[:M]
                #else:
                #while len(S) < M:
                #np.append(S, 0.)
                #return S
                #self.extracted_feature[feature] = normalize(downsample(img, M, align=self.align).ravel())
                self.extracted_feature[feature] = normalize(
                    downsample(img, M, align=self.align)).ravel()
                pfd_data = pfddata(os.path.join(input_dir, fn))

                fig = plt.figure()
                #fig.set_size_inches(5,5)
                #ax = plt.Axes(fig, [0., 0., 1., 1.])
                ax = plt.gca()
                ax.set_axis_off()
                #fig.add_axes(ax)
                plt.imsave("%s_subbands.png" % os.path.join(output_dir, fn),
                           img,
                           origin='lower',
                           cmap=plt.cm.gray_r)
                #plt.imshow(img, origin='lower', aspect='auto', interpolation='bilinear', cmap=plt.cm.gray_r) #aspect='auto'plt.cm.Greys) #interpolation='bilinear'
                #plt.savefig("%s_subbands.png" % os.path.join(output_dir, fn))
            return self.extracted_feature[feature]
コード例 #3
0
ファイル: training.py プロジェクト: prajwalvp/ubc_AI
 def getfreqprofs(M):
     feature = '%s:%s' % ('freqbins', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         self.extracted_feature[feature] = normalize(
             downsample(profs.sum(1).sum(0), M).ravel())
     return self.extracted_feature[feature]
コード例 #4
0
ファイル: training.py プロジェクト: zhuww/ubc_AI
 def getsumprofs(M):
     feature = '%s:%s' % ('phasebins', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         data = profs.sum(0).sum(0)
         self.extracted_feature[feature]  = normalize(downsample(data,M,align=self.align).ravel())
     return self.extracted_feature[feature]
コード例 #5
0
ファイル: training.py プロジェクト: prajwalvp/ubc_AI
 def getsumprofs(M):
     feature = '%s:%s' % ('phasebins', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         data = profs.sum(0).sum(0)
         self.extracted_feature[feature] = normalize(
             downsample(data, M, align=self.align).ravel())
     return self.extracted_feature[feature]
コード例 #6
0
ファイル: training.py プロジェクト: prajwalvp/ubc_AI
        def getDMcurve(
                M):  # return the normalized DM curve downsampled to M points
            feature = '%s:%s' % ('DMbins', M)
            if M == 0:
                return np.array([])
            if not feature in self.extracted_feature:
                ddm = (self.dms.max() - self.dms.min()) / 2.
                loDM, hiDM = (self.bestdm - ddm, self.bestdm + ddm)
                loDM = max((0, loDM))  #make sure cut off at 0 DM
                hiDM = max((ddm, hiDM))  #make sure cut off at 0 DM
                N = 100
                interp = False
                sumprofs = self.profs.sum(0)
                if not interp:
                    profs = sumprofs
                else:
                    profs = np.zeros(np.shape(sumprofs), dtype='d')
                DMs = psr_utils.span(loDM, hiDM, N)
                chis = np.zeros(N, dtype='f')
                subdelays_bins = self.subdelays_bins.copy()
                for ii, DM in enumerate(DMs):
                    subdelays = psr_utils.delay_from_DM(DM, self.barysubfreqs)
                    hifreqdelay = subdelays[-1]
                    subdelays = subdelays - hifreqdelay
                    delaybins = subdelays * self.binspersec - subdelays_bins
                    if interp:
                        interp_factor = 16
                        for jj in range(self.nsub):
                            profs[jj] = psr_utils.interp_rotate(
                                sumprofs[jj],
                                delaybins[jj],
                                zoomfact=interp_factor)
                        # Note: Since the interpolation process slightly changes the values of the
                        # profs, we need to re-calculate the average profile value
                        avgprof = (profs / self.proflen).sum()
                    else:
                        new_subdelays_bins = np.floor(delaybins + 0.5)
                        for jj in range(self.nsub):
                            #profs[jj] = psr_utils.rotate(profs[jj], new_subdelays_bins[jj])
                            delay_bins = int(new_subdelays_bins[jj] %
                                             len(profs[jj]))
                            if not delay_bins == 0:
                                profs[jj] = np.concatenate(
                                    (profs[jj][delay_bins:],
                                     profs[jj][:delay_bins]))

                        subdelays_bins += new_subdelays_bins
                        avgprof = self.avgprof
                    sumprof = profs.sum(0)
                    chis[ii] = self.calc_redchi2(prof=sumprof, avg=avgprof)
                DMcurve = normalize(downsample(chis, M))
                self.extracted_feature[feature] = DMcurve
            return self.extracted_feature[feature]
コード例 #7
0
ファイル: training.py プロジェクト: smearedink/ubc_AI
 def getsubbands(M):
     feature = '%s:%s' % ('subbands', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         img = greyscale(self.profs.sum(0))
         #U,S,V = svd(img)
         #if M <= len(S):
             #return S[:M]
         #else:
             #while len(S) < M:
                 #np.append(S, 0.)
             #return S
         self.extracted_feature[feature] = normalize(downsample(img, M).ravel())
     return self.extracted_feature[feature]
コード例 #8
0
ファイル: training.py プロジェクト: zhuww/ubc_AI
        def getDMcurve(M): # return the normalized DM curve downsampled to M points
            feature = '%s:%s' % ('DMbins', M)
            if M == 0:
                return np.array([])
            if not feature in self.extracted_feature:
                ddm = (self.dms.max() - self.dms.min())/2.
                loDM, hiDM = (self.bestdm - ddm , self.bestdm + ddm)
                loDM = max((0, loDM)) #make sure cut off at 0 DM
                hiDM = max((ddm, hiDM)) #make sure cut off at 0 DM
                N = 100
                interp = False
                sumprofs = self.profs.sum(0)
                if not interp:
                    profs = sumprofs
                else:
                    profs = np.zeros(np.shape(sumprofs), dtype='d')
                DMs = psr_utils.span(loDM, hiDM, N)
                chis = np.zeros(N, dtype='f')
                subdelays_bins = self.subdelays_bins.copy()
                for ii, DM in enumerate(DMs):
                    subdelays = psr_utils.delay_from_DM(DM, self.barysubfreqs)
                    hifreqdelay = subdelays[-1]
                    subdelays = subdelays - hifreqdelay
                    delaybins = subdelays*self.binspersec - subdelays_bins
                    if interp:
                        interp_factor = 16
                        for jj in range(self.nsub):
                            profs[jj] = psr_utils.interp_rotate(sumprofs[jj], delaybins[jj],
                                                                zoomfact=interp_factor)
                        # Note: Since the interpolation process slightly changes the values of the
                        # profs, we need to re-calculate the average profile value
                        avgprof = (profs/self.proflen).sum()
                    else:
                        new_subdelays_bins = np.floor(delaybins+0.5)
                        for jj in range(self.nsub):
                            #profs[jj] = psr_utils.rotate(profs[jj], new_subdelays_bins[jj])
                            delay_bins = int(new_subdelays_bins[jj] % len(profs[jj]))
                            if not delay_bins==0:
                                profs[jj] = np.concatenate((profs[jj][delay_bins:], profs[jj][:delay_bins]))

                        subdelays_bins += new_subdelays_bins
                        avgprof = self.avgprof
                    sumprof = profs.sum(0)
                    chis[ii] = self.calc_redchi2(prof=sumprof, avg=avgprof)
                DMcurve = normalize(downsample(chis, M))
                self.extracted_feature[feature] = DMcurve
            return self.extracted_feature[feature]
コード例 #9
0
ファイル: training.py プロジェクト: prajwalvp/ubc_AI
 def getsubbands(M):
     feature = '%s:%s' % ('subbands', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         img = greyscale(self.profs.sum(0))
         #U,S,V = svd(img)
         #if M <= len(S):
         #return S[:M]
         #else:
         #while len(S) < M:
         #np.append(S, 0.)
         #return S
         #self.extracted_feature[feature] = normalize(downsample(img, M, align=self.align).ravel())
         self.extracted_feature[feature] = normalize(
             downsample(img, M, align=self.align)).ravel()
     return self.extracted_feature[feature]
コード例 #10
0
ファイル: training.py プロジェクト: smearedink/ubc_AI
 def getintervals(M):
     feature = '%s:%s' % ('intervals', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         img = greyscale(self.profs.sum(1)) 
         #U,S,V = svd(img)
         #imshow(img)
         #m,n = img.shape
         #S = resize(S,[m,1]) * eye(m,n)
         #k = 6
         #imshow(np.dot(U[:,1:k], dot(S[1:k,1:k],V[1:k,:])))
         #show()
         #if M <= len(S):
             #return S[:M]
         #else:
             #while len(S) < M:
                 #np.append(S, 0.)
             #return S
         self.extracted_feature[feature] = normalize(downsample(img, M).ravel())
     return self.extracted_feature[feature]
コード例 #11
0
ファイル: training.py プロジェクト: prajwalvp/ubc_AI
 def getintervals(M):
     feature = '%s:%s' % ('intervals', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         img = greyscale(self.profs.sum(1))
         #U,S,V = svd(img)
         #imshow(img)
         #m,n = img.shape
         #S = resize(S,[m,1]) * eye(m,n)
         #k = 6
         #imshow(np.dot(U[:,1:k], dot(S[1:k,1:k],V[1:k,:])))
         #show()
         #if M <= len(S):
         #return S[:M]
         #else:
         #while len(S) < M:
         #np.append(S, 0.)
         #return S
         #self.extracted_feature[feature] = normalize(downsample(img, M, align=self.align).ravel())#wrong!
         self.extracted_feature[feature] = normalize(
             downsample(img, M, align=self.align)).ravel()
     return self.extracted_feature[feature]
コード例 #12
0
 def getintervals(M):
     feature = '%s:%s' % ('intervals', M)
     if M == 0:
         return np.array([])
     if not feature in self.extracted_feature:
         img = greyscale(self.profs.sum(1))
         #U,S,V = svd(img)
         #imshow(img)
         #m,n = img.shape
         #S = resize(S,[m,1]) * eye(m,n)
         #k = 6
         #imshow(np.dot(U[:,1:k], dot(S[1:k,1:k],V[1:k,:])))
         #show()
         #if M <= len(S):
         #return S[:M]
         #else:
         #while len(S) < M:
         #np.append(S, 0.)
         #return S
         #self.extracted_feature[feature] = normalize(downsample(img, M, align=self.align).ravel())#wrong!
         self.extracted_feature[feature] = normalize(
             downsample(img, M, align=self.align)).ravel()
         #self.extracted_feature[feature] = img.ravel()
         fig = plt.figure()
         #fig.set_size_inches(5,5)
         #ax = plt.Axes(fig, [0., 0., 1., 1.])
         ax = plt.gca()
         ax.set_axis_off()
         #fig.add_axes(ax)
         plt.imsave("%s_intervals.png" % os.path.join(output_dir, fn),
                    img,
                    origin='lower',
                    cmap=plt.cm.gray_r)
         #plt.imshow(img, origin='lower', aspect='auto',  interpolation='bilinear', cmap=plt.cm.gray_r) #plt.cm.Greys) #interpolation='bilinear'
         #plt.savefig("%s_intervals.png" % os.path.join(output_dir, fn))
     return self.extracted_feature[feature]