0

我正在按照文档中photutils示例来检测图像中的来源:

from astropy.stats import sigma_clipped_stats
from photutils.datasets import load_star_image
import numpy as np
import matplotlib.pyplot as plt
from astropy.visualization import SqrtStretch
from astropy.visualization.mpl_normalize import ImageNormalize
from photutils.detection import DAOStarFinder
from photutils.aperture import CircularAperture
    
# Load image
hdu = load_star_image() # load a star image from the dataset
data = hdu.data[0:101, 0:101]

mean, median, std = sigma_clipped_stats(data, sigma = 3.0) # estimate noise

# Find stars in the image that have FWHMs of 3 pixels and peaks ~ 5 sigma > bg
daofind = DAOStarFinder(fwhm = 3.0, threshold = 5.*std)
sources = daofind(data - median)

# Print position and photometric data for each star in the image
for col in sources.colnames:
    sources[col].info.format = '%.8g' # for consistent table output

positions = np.transpose((sources['xcentroid'], sources['ycentroid']))
apertures = CircularAperture(positions, r = 4.)

norm = ImageNormalize(stretch = SqrtStretch())
plt.imshow(data, cmap = 'Greys', origin = 'lower', norm = norm,
           interpolation = 'nearest')

for i in range(len(sources)):
    if sources[i][-1] < -2:
        print(sources[i][-1])
        apertures.plot(color = 'r', lw = 1.5, alpha = 0.5

哪个生产

在此处输入图像描述

我添加了最后四行,目的是只在最亮的星星周围绘制光圈。但是,for循环不会改变图像。我明白为什么(它会多次绘制所有光圈,对于 mag < -2 的 4 颗恒星中的每颗都绘制一次),但是我如何更改它以仅为这些恒星绘制它们?

4

0 回答 0