[SciPy-User] Finding islands and centroids

Joe Harrington jh at physics.ucf.edu
Tue Apr 19 09:29:52 EDT 2011


Finding multiple point-like (or at least peaked) sources in an image
is a common task in astronomy.  One approach is to threshold the image
and then fit a point-spread function, or even just a simple Gaussian,
to each local high point.  Subtract all the models and do it again
iteratively until you are left with noise.  There are packages that do
this in IRAF (DAOPHOT is one), which can be accessed through PyRAF.
There may be something in astropy as well.

On the accuracy and precision of centering routines, my group has
published a preliminary assessment; see the online Supplementary
Information to

Stevenson, K. B., J. Harrington, S. Nymeyer, N. Madhusudhan,
S. Seager, W. C. Bowman, R. Hardy, D. Deming, E. Rauscher, and N. Lust
2010. Possible thermochemical disequilibrium in the atmosphere of
the exoplanet GJ 436b. Nature 464, 1161–1164.

We have a more detailed article in draft that I can send to you, if
centipixel accuracy is needed.

--jh--

On Tue, Apr 19, 2011 at 8:37 AM, Chris Weisiger <cweisiger at msg.ucsf.edu> wrote:
> (As you may recall from previous threads, my current project involves
> aligning two arrays of pixel data that were taken from slightly different
> perspectives)
>
> In an attempt to quantify the accuracy of the alignment I've obtained, I
> want to do some centroid analysis. The images I'm working with are of
> "beads" (very small fluorescent blobs), thus each 512x512 image is of a
> number of more-or-less circular islands each on the order of 50 pixels or
> so. I figure that I can threshold each image, identify distinct islands, get
> their centroids, map those to centroids in the other wavelength, and thus
> get the distance between centroids, which should be a good absolute measure
> of alignment quality.
>
> I can hack something together to do this easily enough, where I find a pixel
> in one of the islands, flood-fill out to get all connected pixels, calculate
> the centroid, flip the pixels to 0, and repeat until all islands are gone.
> This isn't exactly very speedy though. What's the efficient way to do this?
> Is there one? Is there a better approach I should be taking? The image
> processing class I dimly remember taking years ago didn't cover this kind of
> thing, so I'm lacking even the basic vocabulary needed to search for
> algorithms.
>
> -Chris
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>



More information about the SciPy-User mailing list