Звёзды-родственники: зачем и как мы их ищем, данные + код (Python)

Kate

Administrator
Команда форума
С древних времён человек стремится найти ответы на вопросы о своем существовании, обращая взор к небу. Исследование звёзд, как ключа к расшифровке тайн космоса, занимает центральное место в нашем стремлении к пониманию происхождения и эволюции вселенной.

В настоящее время, благодаря передовым обсерваториям, космическим телескопам и миссиям, включающим (но не ограничивающимся) Hubble, Kepler, Gaia, возможности для изучения звезд и их скоплений вышли на новый уровень. Технологии позволяют не только проникнуть в глубины космоса, но и наблюдать реальность с невиданной ранее детализацией. Благодаря им и обнаруживаются "звёзды-родственники" (т.е. образовавшиеся из одного облака). Эти объекты обладают схожими характеристиками, включая химический состав, возраст и скорость движения.

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

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

2) исследовать гравитационные взаимодействия в галактическом масштабе. Звезды, рождённые из одного источника, предоставляют уникальную возможность анализа их взаимосвязей, раскрывая законы взаимодействия и динамику их систем;

3) изучать внутренние процессы и отследить химические элементы, выбрасываемые звездами в космическое пространство. Это становится возможным благодаря, например, спектроскопии – методу изучения взаимодействия материи с излучением различных длин волн, позволяющему анализировать свойства и состав материи, определять ее структуру и композицию;

4) обнаружить планеты, имеющие потенциал стать колыбелью жизни или являющиеся таковыми. Схожие параметры звезд, рожденных из одного материнского облака, как раз способствуют выявлению систем, где возможно существование жизни, открывая новые горизонты в поиске экзопланет и условий возникновения живых организмов.

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

Если у Вас есть желание попробовать себя в роли астрофизика и отправиться в астрономическое путешествие, предлагаю свою программу в качестве транспортного средства. Код включает двухэтапный анализ данных Gaia, реализованный через применения метода кластеризации HDBSCAN и фотометрической валидации по сходству с изохроной, с целью выявления звёзд общего происхождения. Все необходимые для погружения материалы, включая ссылку на реальные данные аппарата Gaia (Европейское космическое агентство), находятся в моём репозитории Astronomy Data Analysis Tool (ADAT_co) на GitHub.

Gaia – спутник, запущенный Европейским космическим агентством в 2013 году с целью составления самой подробной карты нашей галактики. Предоставляет информацию о миллиардах звезд, их распределении, движении, свойствах и т.д. Gaia измеряет позиции звезд и изменения этих позиций с высокой точностью, создавая наиболее полную карту.

Техническая сторона: методы и реализация

Загрузка и подготовка данных

Программа предполагает, что данные будут подгружены в формате FITS (Flexible Image Transport System), который часто используется в астрофизике. Для открытия файла использована библиотека astropy.io.fits, затем данные структурируются в удобную для работы форму с использованием numpy и pandas.

fits_file_path = 'Ваш путь к файлу'
hdulist = fits.open(fits_file_path)
data = hdulist[1].data
hdulist.close()

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

selected_cols = ['ra', 'dec', 'pmra', 'pmdec', 'parallax', 'radial_velocity', 'phot_bp_mean_mag', 'phot_rp_mean_mag', 'phot_g_mean_mag']
X = np.array([data.field(col) for col in selected_cols]).T

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

О координатах:

Right Ascension (ra) и Declination (dec): указывают на положение объекта. Звёзды, рожденные в одном регионе, могут иметь схожие координаты на небесной сфере.
Proper Motion in Right Ascension (pmra) и Proper Motion in Declination (pmdec): собственное движение звезд, представленное этими координатами, может указывать на их общее происхождение, так как звезды, образованные в одном регионе, могут иметь схожие движения.
Parallax (parallax): параллакс - угловое смещение звезды на фоне ближайших звезд из-за движения Земли вокруг Солнца. Он может предоставить информацию о расстоянии до звезды и помочь идентифицировать звезды с общим происхождением.
Radial Velocity (radial_velocity): представляет собой скорость удаления или приближения звезды относительно наблюдателя. Звезды, рожденные из общего облака, могут иметь схожие радиальные скорости.
phot_g_mean_mag: фотометрическая звездная величина в фильтре G, который соответствует зеленому свету. Это означает, что данная величина описывает яркость звезды в определенном цветовом диапазоне, близком к зеленому свету.
phot_bp_mean_mag: фотометрическая звездная величина в фильтре BP, который соответствует синеватому/голубоватому свету. Показывает яркость звезды в синем и фиолетовом диапазоне.
phot_rp_mean_mag: звездная величина в RP, соответствует красному и инфракрасному свету.

Двухэтапный анализ

1. Кластеризация с HDBSCAN

Первый применяемый метод – HDBSCAN (Hierarchical Density-Based Spatial Clustering of Applications with Noise) - алгоритм кластеризации, который отлично подходит для обнаружения кластеров различной формы и размеров в данных. Применяется с помощью одноимённой библиотеки.

clusterer = hdbscan.HDBSCAN(min_cluster_size=10, min_samples=5)
labels = clusterer.fit_predict(X)

min_cluster_size определяет минимальное количество точек, которые должны образовать кластер. Это позволяет фильтровать небольшие скопления данных, не являющиеся значимыми.

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

2. Фотометрическая валидация по сходству с изохроной

Фотометрическая валидация по сходству с изохроной - метод проверки истинности и согласованности полученных фотометрических данных с теоретическими моделями эволюции звезд, известными как изохроны. Данный метод применяется после кластеризации.

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

valid_mask = np.isfinite(data['bp_rp']) & np.isfinite(data['phot_g_mean_mag'])
valid_cluster_mask = np.isin(np.arange(len(data)), np.nonzero(cluster_mask)[0]) & valid_mask

Valid Mask: создается маска для проверки корректности данных в столбцах bp_rp и phot_g_mean_mag. Только те точки, где оба значения корректны, будут включены в маску.

Valid Cluster Mask комбинируется с маской кластера. Таким образом, получается общая маска, фильтрующая только те точки, которые принадлежат выбранному кластеру и прошли фотометрическую валидацию.

Визуализация

Для визуализации результатов традиционно используется matplotlib. Создаются графики для трех координатных пар, в каждой из которых выделяются точки, соответствующие выявленным звёздным скоплениям, где объекты произошли из одного облака.

Ниже представлены функции, которые создают графическое представление результатов анализа данных Gaia. Звёзды на графике в обоих случаях отображаются с использованием scatter (серый цвет выбран для фоновых точек, красный - для относящихся к скоплению). С помощью cluster_mask происходит разделение звёзд на фоновые и принадлежащие скоплению. Первая функция предназначена для визуализации скопления с изохроной, по данному изображению мы и сможем определить степень соответствия нашим реальным данным теоретическим моделям, что позволит судить об общем происхождении. Вторая функция представляет результат кластеризации.

def plot_cluster_with_isochrone(ax, cluster_mask, data, iso_data, coord_pair, cluster_color, label):
ax.scatter(data[coord_pair[0]][~cluster_mask], data[coord_pair[1]][~cluster_mask], color='gray', label='Other Stars', s=5, alpha=0.7)
ax.scatter(data[coord_pair[0]][cluster_mask], data[coord_pair[1]][cluster_mask], color='red', label='Cluster Stars', s=5, alpha=0.7)
ax.plot(iso_data['G_BPmag'], iso_data['Gmag'], color='darkblue', linestyle='dashed', label='Isochrone', linewidth=2)
ax.set_xlabel(coord_pair[0])
ax.set_ylabel(coord_pair[1])
ax.legend()

def plot_cluster_2d(ax, cluster_mask, data, cluster_color, label):
ax.scatter(data['phot_bp_mean_mag'][~cluster_mask], data['phot_rp_mean_mag'][~cluster_mask], color='gray', label='Other Stars', s=5, alpha=0.7)
ax.scatter(data['phot_bp_mean_mag'][cluster_mask], data['phot_rp_mean_mag'][cluster_mask], color='red', label='Cluster Stars', s=5, alpha=0.7)
ax.set_xlabel('G_BPmag')
ax.set_ylabel('G_RPmag')
ax.legend()
ax.set_title(f'Cluster {label}')

Сохранение результатов

Полученные изображения сохраняются в формате TIFF:

output_filename_2d = f'{output_directory}cluster_{cluster_label}_2d.tif' plt.savefig(output_filename_2d, bbox_inches='tight', dpi=300) plt.close(fig_2d)

output_filename_3d = f'{output_directory}cluster_{cluster_label}_isochrone_3d.tif' plt.savefig(output_filename_3d, bbox_inches='tight', dpi=300) plt.close(fig_3d)

Таким образом, весь код организован вокруг метода кластеризации с последующим применением фотометрической валидации по сходству с изохроной для обнаружения и исследования звёзд с общим происхождением.

Полная версия программы -> Astronomy Data Analysis Tool (ADAT_co).

Примеры представления результатов и интерпретация

Ниже в качестве примера представлены два найденных программой скопления.

Красные точки - выявленные молодые звёзды вблизи М45 (Плеяды), сформированные приблизительно в одно и то же время из одной и той же области межзвездного вещества.

2D_claster3

2D_claster3
3D_claster3 with isochrone

3D_claster3 with isochrone
2D_claster5

2D_claster5
3D_claster5 with isochrone

3D_claster5 with isochrone
Такой результат указывает на прямую связь между звездами, которую можно характеризовать происхождением из одного материнского облака. Далее можно понаблюдать данные скопления или отдельно рассмотреть входящие в них звёзды, изменяя параметры визуализации.

Вы можете поэкспериментировать с данными Gaia или обратиться к другим открытым астрономическим данным (например, миссии Kepler, запущенной НАСА в 2009 году). Также в репозитории предоставлен файл с внушительным набором изохрон для работы с данными звёзд вне нашей галактики.

О чём могут сообщить результаты работы программы

В открытом доступе находятся астрономические данные самых разных миссий (включая Gaia, Kepler и т.д.). Они содержат огромное количество параметров и характеристик, которые любопытно визуализировать и рассматривать - не хуже домашнего телескопа!

К примеру, если говорить о движении звёздных скоплений: Вы можете посмотреть на расстояние между звёздами в графиках parallax-radial velocity и pmra-pmrdec, которое говорит о том, как эти объекты двигаются по небесной сфере и как взаимодействуют друг с другом. Если объекты принадлежат одному скоплению, то их скорости и угловые положения будут связаны общим движением скопления, что обычно отражается на взаимном расположении звёзд в этих графиках. При этом, если звёзды образуют сложную структуру, которая может казаться хаотической или случайно распределённой, это говорит о таких процессах, как влияние гравитационных взаимодействий в звездном скоплении.

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

Общие замечания

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

1. Внутри скопления звёзды гравитационно взаимодействуют между собой. Некоторые из них могут быть выброшены из скопления в результате взаимодействий, что приводит к увеличению расстояния между оставшимися звездами.

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

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

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

PS: Обратите внимание: данные Gaia содержат большое количество характеристик звёзд, но для решения поставленной задачи мы используем лишь их малую часть.

Дополнение:

Концепция изохроны является упрощенной моделью эволюции звезд. Изохроны строятся на основе теоретических моделей эволюции звезд, учитывающих физические процессы, такие как ядерные реакции, трансфер энергии и другие базовые физические явления, влияющие на светимость и иные характеристики звезд.

 
Сверху