Получение данных с изображения с помощью астропии?

Итак, я импортировал файл FITS и показал изображение, используя astropy и matplotlib. На этом изображении есть несколько ярких пятен, но я не могу понять, как выделить определенные яркие области на изображении и получить среднее значение яркости. может кто-нибудь помочь?


person CodingKid    schedule 29.03.2020    source источник
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