[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