Рассчитайте глубину и продолжительность прохождения экзопланеты с помощью Python, astropy или lightkurve

Я создаю программу для анализа экзопланет на Python с использованием библиотек Astropy и Lightkurve . У меня есть кривая блеска указанной звезды, и я хотел бы рассчитать глубину и продолжительность прохождения планеты. Ниже приведен пример для Kepler 10 со следующими шагами:

  • Загрузите изображение целевого пикселя для Kepler 10,
  • Преобразуйте его в сглаженный временной ряд,
  • Рассчитать период с помощью периодограммы,
  • Создайте сложенную кривую блеска.
import lightkurve as lk

target_pixel = lk.search_targetpixelfile("Kepler-10", quarter=1).download()
lightcurve = target_pixel.to_lightcurve(aperture_mask=target_pixel.pipeline_mask).flatten()
periodogram = lightcurve.to_periodogram(method="bls", period=np.arange(0.5, 10, 0.001))
period = periodogram.period_at_max_power

folded.scatter()
print(period)

Вывод (я отметил глубину и продолжительность красным):

введите описание изображения здесь

Теперь, как я могу рассчитать продолжительность транзита (примерно от -0,15 до 0 по оси абсцисс)? Интервал от -0,5 до 0,5 должен быть целым периодом (0,837 сут), поэтому продолжительность транзита должна быть +/- 0,13 сут.

А как же глубина транзита? Я думал о:

min = np.min(folded.flux)
median = np.median(folded.flux)
median / min - 1 # 0.00038

Однако точка минимума не находится в середине прохождения из-за шума, поэтому глубина прохождения может быть неточной.

Ответы (1)

Расчет как глубины, так и продолжительности обычно выполняется не на необработанных данных, а на основе подбора данных.

В ваших последних трех строках кода вы также вычисляете среднее / среднее по всем данным, в то время как вы должны вычислять незатменное среднее или медианный поток только для времени без прохождения (с использованием медианы это, возможно, имеет лишь небольшое влияние, но это может быть) .

В качестве первого и грубого шага я бы удалил шум из данных, применив фильтр с плавающим средним значением к данным; вам нужно будет протестировать его ширину и посмотреть, что дает вам наилучшие результаты: вы не хотите усреднять функции, но вы хотите усреднять шум.

Лучший подход состоит в том, чтобы не сглаживать, а фактически подогнать физическую модель к данным, которая учитывает типичное поведение кривой блеска транзита. Для реализации я могу указать вам на pytransit ( справочный документ ). (Вы уверены, что не изобретаете велосипед?). См. также эту статью Макстеда и Гилла для сравнения нескольких алгоритмов.