Итак, я импортировал файл FITS и показал изображение, используя astropy и matplotlib. На этом изображении есть несколько ярких пятен, но я не могу понять, как выделить определенные яркие области на изображении и получить среднее значение яркости. может кто-нибудь помочь?
Получение данных с изображения с помощью астропии?
comment
Здравствуйте, как заданный, этот вопрос может быть слишком широким для переполнения стека, поскольку он не обязательно задает конкретный вопрос по программированию, и даже начало ответа на ваш вопрос немного зависит от знаний о предметной области (астрономии), а также более подробной информации о ваших данных и о том, как они выглядят. Однако, возможно, вам могут быть полезны такие пакеты, как photutils, а может быть, один из других пакетов, связанных с Astropy, таких как imexam.
- person Iguananaut   schedule 31.03.2020
Ответы (1)
Пример:
from astropy.io import fits
import numpy as np
import matplotlib.pyplot as plt
## Read
hdul = fits.open('yourfile.fits')
image = hdul[0].data
Ny, Nx = image.shape
## Mean (careful if the unit is MJy/sr)
avg = np.nanmean(image)
print('Image mean = ', avg)
## Plot (mark bright spots)
xl = []
yl = []
for x in range(Nx):
for y in range(Ny):
if image[y,x]>avg:
xl.append(x)
yl.append(y)
plt.imshow(image)
plt.scatter(xl, yl, c='r', marker='o')
plt.show()
person
OOPA
schedule
30.04.2020