I&#39;m not sure about the peak-finding part, but for fitting the continuum by ignoring peaks I often do an iterative fit such as below. It ignores more and more points from the peaks. I use this kind of an algorithm for fitting the continuum on absorption spectra pretty often.<br>

<div><br></div><div>done = False</div><div>while not done:</div><div>  done = True</div><div>  fit = numpy.poly1d(numpy.polyfit(x,y,order))</div><div>  residuals = y - fit(x)</div><div>  std = numpy.std(residuals)</div><div>

  badindices = numpy.where(residuals &gt; 5*std)[0]</div><div>  if badindices.size &gt; 0:</div><div>    done = False</div><div>    x = numpy.delete(x, badindices)</div><div>    y = numpy.delete(y, badindices)</div><div>
<br>
</div><div>That solution may not be the best for you if you have a very large array though, because deleting indices from a numpy array is inefficient. </div><div><br></div><div>Cheers,</div><div><br></div><div>Kevin Gullikson</div>

<div><br></div><div><br><br><div class="gmail_quote">On Fri, Sep 28, 2012 at 1:45 PM, Joe Philip Ninan <span dir="ltr">&lt;<a href="mailto:indiajoe@gmail.com" target="_blank">indiajoe@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi,<br>I have a spectra with multiple gaussian emission lines over a noisy continuum.<br>My primary objective is to find areas under all the gaussian peaks.<br>For that, the following is the algorithm i have in mind.<br>
1) fit the continuum and subtract it.<br>


2) find the peaks<br>3) do least square fit of gaussian at the peaks to find the area under each gaussian peaks.<br>I am basically stuck at the first step itself. Simple 2nd or 3rd order polynomial fit is not working because the contribution from peaks are significant. Any tool exist to fit continuum ignoring the peaks?<br>



For finding peaks, i tried find_peaks_cwt in signal module of scipy. But it seems to be quite sensitive of the width of peak and was picking up non-existing peaks also.<br>The wavelet used was default mexican hat. Is there any better wavelet i should try?<br clear="all">



<br>Or is there any other module in python/scipy which i should give a try?<br>Thanking you.<br>-cheers<span class="HOEnZb"><font color="#888888"><br>joe<br>-- <br>/---------------------------------------------------------------<br>

&quot;GNU/Linux: because a PC is a terrible thing to waste&quot; -  GNU Generation<br>

<br><br>
</font></span><br>_______________________________________________<br>
SciPy-User mailing list<br>
<a href="mailto:SciPy-User@scipy.org">SciPy-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-user" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-user</a><br>
<br></blockquote></div><br></div>