That opened a few avenues. After reading this, I went on a merry search with Google. I hit upon one interesting book, Handbook of CCD astronomy (Steve B. Howell), that discusses PSFs. A Amazon Look Inside suggests this is mostly about h/w. I tried to figure out how to reach the scipy mail list, but, as once a year ago, couldn't figure out the newsgroup GMANE connection. This search recalled to mind my Handbook of Astro Image  Processing by Berry and Burnell. It has a few pages on the PSF. In the ref section for that material(PSFs) there's another ref to Steve Howell that may be of use: Astro CCD Observing and Reduction Techniques, ASP, Pacific Conf. Series, vol. 23, 1992. There are further Berry and Burnell refs that may be applicable.

I probed IRAF, SciPy, and Python, but it looks like a steep learning curve. The SciPy tutorial page looks like overkill. They have what looks like very large tutorials. Perhaps daunting. I did a quick shot at pyraf, a tutorial page, but note it has a prereq of IRAF. Another daunting path.

Well, maybe a DIY approach will do the trick for me.

On 5/28/2010 5:41 PM, Anne Archibald wrote:
On 28 May 2010 21:09, Charles R Harris <> wrote:

On Fri, May 28, 2010 at 5:45 PM, Wayne Watson <>
Suppose I have a 640x480 pixel video chip and would like to find star
images on it, possible planets and the moon. A possibility of noise
exits, or bright pixels. Is there a known method for finding the
centroids of these astro objects?

You can threshold the image and then cluster the pixels in objects. I've
done this on occasion using my own software, but I think there might be
something in scipy/ndimage that does the same. Someone here will know.
There are sort of two passes here - the first is to find all the
stars, and the second is to fine down their positions, ideally to less
than a pixel. For the former, thresholding and clumping is probably
the way to go.

For the latter I think a standard approach is PSF fitting - that is,
you fit (say) a two-dimensional Gaussian to the pixels near your star.
You'll fit for at least central (subpixel) position, probably radius,
and maybe eccentricity and orientation. You might even fit for a more
sophisticated PSF (doughnuts are natural for Schmidt-Cassegrain
telescopes, or the diffraction pattern of your spider). Any spot whose
best-fit PSF is just one pixel wide is noise or a cosmic ray hit or a
hotpixel; any spot whose best-fit PSF is huge is a detector splodge or
a planet or galaxy.

All this assumes that your CCD has more resolution than your optics;
if this is not the case you're more or less stuck, since a star is
then just a bright pixel. In this case your problem is one of
combining multiple offset images, dark skies, and dome flats to try to
distinguish detector crud and cosmic ray hits from actual stars. It
can be done, but it will be a colossal pain if your pointing accuracy
is not subpixel (which it probably won't be).

In any case, my optical friends tell me that the Right Way to do all
this is to use all the code built into IRAF (or its python wrapper,
pyraf) that does all this difficult work for you.

P.S. if your images have been fed through JPEG or some other lossy
compression the process will become an utter nightmare. -A


NumPy-Discussion mailing list

NumPy-Discussion mailing list


           Wayne Watson (Watson Adventures, Prop., Nevada City, CA)

             (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
              Obz Site:  39° 15' 7" N, 121° 2' 32" W, 2700 feet 

               There are no statues or memorials dedicated to  
               Thomas Paine for his substantial part in the
               American Revolution. 

                -- An observation in The Science of Liberty 
                      by Timothy Ferris
                    Web Page: <>