Pixel Coordinate Conventions#
Photutils uses 0-indexed pixel coordinates, consistent with standard
Python and NumPy indexing. In this convention, integer pixel coordinates
represent the centers of the pixels. For example, the center of the
first pixel is at coordinate 0, meaning that pixel spans the range
from -0.5 to 0.5.
For a two-dimensional image, the pixel center at (x, y) = (0, 0)
corresponds to the bottom-left array element. Consequently, this first
pixel spans from -0.5 to 0.5 in both the x and y
directions.
Because image data are standard NumPy arrays, they are accessed as
image[yi, xi], where yi is the row index (the first, or slow,
array axis) and xi is the column index (the second, or fast, array
axis). It is important to note that this array indexing order ([y,
x]) is the reverse of the spatial coordinate order ((x, y)).
This 0-indexed convention differs from the FITS WCS standard, which
uses 1-based pixel coordinates. In the FITS convention, the center of
the bottom-left pixel is (x, y) = (1, 1). Software such as ds9,
SourceExtractor, and IRAF follow the FITS convention. Therefore, to
match coordinates from these tools with Photutils, you must subtract 1
from their x and y coordinates.