Is there any code available in a Python library such as Astropy or a library in any other language that can:

  1. Take the .fits image of a star as input

  2. Locate the centroid of the star on the .fits image to a sub-pixel precision. The sub-pixel precision is necessary.

  3. Place the image of the star centroid in a .fits file to within sub-pixel precision.

Again, the sub-pixel precision is what makes this project unique. All software out there that does similar processing (based on what I could find) only works down to the precision of a single pixel.

I have spent weeks reading through astronomy related libraries available in Python and other languages, and I have found code that can obtain star centroids to within a 1 pixel precision. But I have not been able to find any code in any library that can obtain the centroid to within subpixel precsion. Any help offered would be greatly appriciated!

2

There are 2 best solutions below

0
Abhishek Prabhakar On

What do you mean by sub-pixel precision? The fits file will have header containing astrometry information which include resolution and projection. Anyway it seems like you want the center of a star at higher precision. You would have to upscale the image (say the resolution of the image was 6'/pixel -> change it to 2'/pixel or whatever precision you want). Find the centroid (coordinates) from the upscaled image and then make coordinates to pixel transformation at original resolution, this will be a floating value which I believe will give you the sub-pixel(?)

0
russell On

Measuring the position to sub-pixel precision will require you have an estimate of the PSF. Without this, you only have two options (1) fitting a 2d surface to the inner core (ie. a Gaussian), which is better than (2) estimating the center of mass. But getting the precision you want, requires knowledge of the PSF.