[AstroPy] Gaussian models fitter non-functional?
Jeff Mangum
jmangum at nrao.edu
Mon Oct 19 14:45:27 EDT 2015
Thanks for the responses. Adam Ginsburg and I iterated a bit on this
problem and found that the issue was the fact that the image I was
fitting contained nans. Once I removed the nans the gaussian fit
routine works. Note that if the fitter in astropy.models is not able to
handle images with nans, then perhaps it should issue a warning.
-- Jeff
On 10/19/15 11:00 AM, Erik Bray wrote:
> On 10/16/2015 09:47 AM, Giuliano Iorio wrote:
>>
>> Hi Jeff,
>> this is the kind of staff that usually happens if the position of the
>> initial guess is too far away the right one. Did you plot the contour
>> of the fitted gaussian on the image?
>> It can be also that the image is too noisy around the target to fit.
>> I usually use only a little subarray around the target, then I search
>> the position of the maximum and I set the initial guess of xo and yo
>> to its position. After I normalize all the subarray to the value of
>> the maximum and cut all the signal below a certain threshold (usually
>> 0.1).
>> In this way I am able to obtain a robust fit also in very noisy map.
>
> I agree pretty much with all of Giuliano's advice. And again it might
> help to exclude data outside a smaller subarray. Without actually
> seeing the data it's hard to provide much other advice.
>
> Have you tried a different optimizer? There are a couple other
> non-linear fitters in the package and some have different
> sensitivities to initial conditions. But it's certainly not
> "non-functional".
>
> Erik
>
>>> Hi Jeff--
>>>
>>> The fitted model will not be in g_init (this remains unchanged), but
>>> in g. If you take a look in g, you should be able to see the
>>> fitted results.
>>>
>>> Cheers
>>> Steve
>>>
>>> ----- Original Message -----
>>> From: "Jeff Mangum" <jmangum at nrao.edu>
>>> To: astropy at scipy.org
>>> Sent: Friday, October 16, 2015 3:11:56 PM
>>> Subject: [AstroPy] Gaussian models fitter non-functional?
>>>
>>> Hello,
>>>
>>> Long-time listener but first-time caller. Have been trying to use the
>>> 2D Gaussian fitting capabilities within astropy.models to fit a 2D
>>> Gaussian to an image (in FITS format). Here is my script:
>>>
>>> import numpy as np
>>> import radio_beam
>>> from astropy.modeling import models, fitting
>>> from astropy import units as u
>>> from astropy.io import fits
>>> import astropy.coordinates as coord
>>> import astropy.wcs as wcs
>>> import matplotlib
>>> import pylab as pl
>>>
>>> # The following is the position of the peak in both J1 and J2, so use
>>> # it as the starting guess
>>> ra0 = '13h15m03.50s'
>>> dec0 = '24d37m08.2s'
>>>
>>> radeg = coord.Angle(ra0, unit=u.hour).degree
>>> decdeg = coord.Angle(dec0, unit=u.degree)
>>>
>>> # Now open the image
>>> hdulist = fits.open('IC860CbandCarrayH2COJ1_moment0.fits')
>>> #hdulist = fits.open('IC860KubandDarrayH2COJ2_moment0.fits')
>>> w = wcs.WCS(hdulist[0].header, hdulist)
>>>
>>> yy,xx = np.indices(hdulist[0].data.shape)
>>>
>>> x0,y0 = w.wcs_world2pix(radeg, decdeg, 1)
>>>
>>> # Now fit 2D gaussian
>>> g_init = models.Gaussian2D(amplitude=1., x_mean=x0, y_mean=y0,
>>> x_stddev=1, y_stddev=1)
>>> fit_g = fitting.LevMarLSQFitter()
>>> g = fit_g(g_init, xx, yy, hdulist[0].data)
>>>
>>>
>>> When I look at g_init (which is where I believe the fit results should
>>> be), I see that the fit has not moved from its initial settings. It
>>> appears that the fitter just did not run. With Adam Ginsburg's help I
>>> have a workaround using gaussfitter, but would certainly like to make
>>> this work with astropy.models. Thanks!
>>>
>>> -- Jeff
>>> _______________________________________________
>>> AstroPy mailing list
>>> AstroPy at scipy.org
>>> https://mail.scipy.org/mailman/listinfo/astropy
>>>
>>> !DSPAM:5620f7a993681466218807!
>>>
>>>
>>> _______________________________________________
>>> AstroPy mailing list
>>> AstroPy at scipy.org
>>> https://mail.scipy.org/mailman/listinfo/astropy
>> _______________________________________________
>> AstroPy mailing list
>> AstroPy at scipy.org
>> https://mail.scipy.org/mailman/listinfo/astropy
>>
>
> _______________________________________________
> AstroPy mailing list
> AstroPy at scipy.org
> https://mail.scipy.org/mailman/listinfo/astropy
More information about the AstroPy
mailing list