def process_nlsolver(self): wlog("Using jarvis solver") c=self['filternum'] self.set_admom() ntrials = len(self['psf']['trials']) chi2arr=zeros(ntrials) + 1.e9 gmlist=[] for i,trial in enumerate(self['psf']['trials']): ngauss=trial['ngauss'] if ngauss==3: prior,width = self.get_prior_turb(trial) elif ngauss==2: prior,width = self.get_prior_2generic(trial) else: raise ValueError("only have ngauss in [2,3] now") #prior,width = self.get_prior_2psfield(trial) #prior,width = self.get_prior_test(trial) #prior,width = self.get_prior_2generic(trial) if self['verbose']: print_pars(prior,front="guess: ") # kludge using skysig=1 for now maxiter=2000 psf=None gm=gmix_image.gmix_nlsolve.GMixCoellipSolver(self.psf, prior, 1., maxiter, psf, False) success=gm.get_success() if not success: raise ValueError("error") chi2per=gm.get_chi2per() # kludge chi2per /= self['skysig']**2 chi2arr[i] = chi2per if self['verbose']: popt = gm.get_pars() cov=gm.get_pcov() perr=sqrt(diag(cov)) print_pars(popt,front="pars: ") # kludge perr *= self['skysig'] print_pars(perr,front="perr: ") wlog("chi2/pdeg:",chi2arr[i]) gmlist.append(gm) w=chi2arr.argmin() self.gm = gmlist[w] wlog('w:',w) if self['verbose']: print_pars(chi2arr,front='chi2/deg: ') wlog("\n") print_pars(gm.get_pars(),front='popt: ') cov=gm.get_pcov() perr=sqrt(diag(cov)) # kludge perr *= self['skysig'] print_pars(perr,front='perr: ')
def process(self): c=self['filternum'] self.set_admom() ntrials = len(self['psf']['trials']) chi2arr=zeros(ntrials) + 1.e9 gmlist=[] for i,trial in enumerate(self['psf']['trials']): ngauss=trial['ngauss'] if ngauss==3: prior,width = self.get_prior_turb(trial) elif ngauss==2: prior,width = self.get_prior_2generic(trial) else: raise ValueError("only have ngauss in [2,3] now") #prior,width = self.get_prior_2psfield(trial) #prior,width = self.get_prior_test(trial) if self['verbose']: print_pars(prior,front="guess: ") gm = gmix_image.GMixFitCoellip(self.psf, self['skysig'], prior,width, verbose=False) #gm = gmix_image.gmix_fit.GMixFitCoellipNoPrior(self.psf, self['skysig'], # prior, verbose=False) if gm.flags != 0: gmix_image.printflags("flags:",gm.flags) raise ValueError("error") chi2arr[i] = gm.get_chi2per(gm.popt) if self['verbose']: print_pars(gm.popt,front="pars: ") print_pars(gm.perr,front="perr: ") wlog("chi2/pdeg:",chi2arr[i]) gmlist.append(gm) w=chi2arr.argmin() self.gm = gmlist[w] wlog('w:',w) if self['verbose']: print_pars(chi2arr,front='chi2/deg: ') wlog("\n") print_pars(gm.popt,front='popt: ') print_pars(gm.perr,front='perr: ') #wlog("s2n:",s2n) wlog("numiter gmix:",gm.numiter) ngauss=(len(gm.popt)-4)/2