コード例 #1
0
ファイル: double_psf.py プロジェクト: esheldon/gmix_meds
def _do_measure_em2(pex, pos, ngauss, maxtry):
    from gmix_image import GMixEMBoot
    im=pex.get_rec(pos[0], pos[1])

    cen_guess=pex.get_center(pos[0], pos[1])
    sigma_guess=pex.get_sigma()

    gm=GMixEMBoot(im, ngauss, cen_guess,
                  sigma_guess=sigma_guess,
                  maxtry=maxtry)

    res=gm.get_result()
    flags=res['flags']

    offset_arcsec=-9999.
    if flags != 0:
        print >>stderr,'    failed to fit:',flags
    else:

        gmix=gm.get_gmix()
        dlist=gmix.get_dlist()

        offset=sqrt( (dlist[0]['row']-dlist[1]['row'])**2 + 
                     (dlist[0]['col']-dlist[1]['col'])**2 )
        offset_arcsec=offset*PIXEL_SCALE

    return im,gm,flags,offset_arcsec
コード例 #2
0
ファイル: mag_dep_psf.py プロジェクト: esheldon/gmix_meds
    def _process_star(self, iobj, icutout):
        from gmix_image import GMixEMBoot
        import admom

        defres=({'whyflag':ZERO_WEIGHT_PIXELS},
                {'flags':ZERO_WEIGHT_PIXELS},
                {'flags':ZERO_WEIGHT_PIXELS},
                numpy.zeros(len(WIDTHS)) - 9999,
                -9999.0)

        im,ivar,cen_guess=self._get_star_data(iobj,icutout)

        if im is None:
            return defres
        
        max_pixel = im.max()

        widths = measure_image_width(im, WIDTHS)

        cen1_guess=cen_guess
        sig1_guess=sqrt(2)

        ares = admom.admom(im,
                           cen_guess[0],
                           cen_guess[1],
                           guess=sig1_guess)



        gm1=GMixEMBoot(im, 1, cen1_guess, sigma_guess=sig1_guess)
        res1=gm1.get_result()
        
        if res1['flags'] == 0:
            #print cen_guess
            #print res1['pars']
            sig2_guess=sqrt( (res1['pars'][3] + res1['pars'][5])/2. )
            cen2_guess=[res1['pars'][1], res1['pars'][2] ]
        else:
            sig2_guess=sig1_guess
            cen2_guess=cen1_guess

        gm2=GMixEMBoot(im, 2, cen2_guess, sigma_guess=sig2_guess)

        res2=gm2.get_result()

        if False and res2['flags'] != 0:
            import images
            images.multiview(im)
            resp=raw_input('hit enter (q to quit): ')
            if resp.lower() == 'q':
                stop


        return ares,res1,res2,widths,max_pixel