Степень соответствия в фотометрии PSF с помощью Photutils BasicPSFPhotometry - PullRequest
1 голос
/ 09 июля 2020

Я использую BasicPSFPhotometry из photutils.psf для получения фотометрии источника.

Вот пример моего кода (к сожалению, это не рабочий пример, но он может помочь понять, что я делаю и что Я нуждаюсь). Большая часть этого была скопирована из https://photutils.readthedocs.io/en/stable/psf.html и адаптирована к моим потребностям.

fitter=LevMarLSQFitter()
psf_model = photutils.psf.FittableImageModel(psfdata,normalize=True)
pos = Table(names=['id','x_0', 'y_0','flux_0'], data=[[1],[xycen[0]],[xycen[1]],[flux]])

photometrypsf = BasicPSFPhotometry(group_maker=daogroup,
                                    bkg_estimator=None,
                                    psf_model=psf_model,
                                    fitter=fitter,
                                    fitshape=target.shape,
                                    aperture_radius=fwhm)

psf_photometry = photometrypsf(image=target.copy(),init_guesses=pos)

Мне нужно оценить хи-квадрат для PSF-подгонки моего источника, но я не понимаю как это сделать.

Я следил за этой публикацией ( В Scipy, как и почему curve_fit вычисляет ковариацию оценок параметров ), где они объясняют, как получить уменьшенный хи в квадрате как:

s_sq = (infodict['fvec']**2).sum()/ (N-n)

, на который я смог перевести свой код:

s_sq = (fitter.fit_info['fvec']**2).sum()/(len(fitter.fit_info['fvec'])-n)

Проблема в том, что я не знаю, как оценить «n». В этом примере они говорят, что n (количество свободных параметров) - это длина вывода x из scipy.optimize.leastsq (первый вывод), но LevMarLSQFitter четко указывает, что:

Обратите внимание, что возвращаемое значение x не включено (поскольку это вместо значений параметров возвращаемой модели).

Итак, вопрос в том, используя LevMarLSQFitter в сочетании с BasicPSFPhotometry каков наиболее практичный способ оценить хи-квадрат для соответствия (или любой другой параметр может позволить мне понять степень соответствия)? Более того, как мне получить доступ к параметру подгонки, выполненной из LevMarLSQFitter ?

...