You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Gaia DR3数据使用Python+SQL绘制准确赫罗图的技术求助

基于Gaia DR3数据使用Python+SQL绘制准确赫罗图的技术求助

大家好,我正在尝试用Python结合SQL调用Gaia DR3的数据绘制赫罗图(HR Diagram),虽然已经获取了上百万个数据点,但始终没法画出和标准赫罗图相似的效果。我怀疑问题出在光度计算的公式部分,想请教各位大佬我到底哪里弄错了?怎样才能生成最准确的赫罗图呢?

我期望能画出类似标准赫罗图的可视化效果(原提问中提及的参考图此处无法展示)。麻烦各位帮我看看,提前谢谢大家了!

我的操作流程与代码:

首先安装依赖:

conda install -c conda-forge astroquery

然后是Python代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from astroquery.gaia import Gaia
import math
from astroquery.utils.tap.core import TapPlus

# 查看Gaia可用表
tables = Gaia.load_tables(only_names=True)
for table in tables:
    print(table.name)

# 查看目标表结构
meta = Gaia.load_table('gaiadr3.gaia_source_lite')
meta
for column in meta.columns:
    print(column.name)

# 构造SQL查询获取数据
columns = 'parallax,phot_g_mean_mag,phot_bp_mean_mag,phot_rp_mean_mag,pmra,pmdec'
query1_base = """ SELECT top 1000000000
parallax,phot_g_mean_mag,phot_bp_mean_mag,phot_rp_mean_mag,ra,dec,pmra,pmdec
FROM gaiadr3.gaia_source_lite AS db
"""
output_format="votable"
query1 = query1_base.format(columns=columns)
job = Gaia.launch_job_async(query1)
results = job.get_results()

# 计算色指数(BP-RP)
x_ekseni = results["phot_bp_mean_mag"] - results["phot_rp_mean_mag"]

# 尝试计算绝对星等
gorsel_parlaklık = results["phot_g_mean_mag"]
parallax = results["parallax"]

def calculate_apparent_magnitude(gorsel_parlaklık, parallax):
    return gorsel_parlaklık -(5*np.log10(1000/parallax)-5)

mutlak_magnitude = calculate_apparent_magnitude(gorsel_parlaklık, parallax)
print(mutlak_magnitude)

# 绘制赫罗图
plt.scatter(x_ekseni, mutlak_magnitude, alpha=1)
# plt.xlim([-5, 7])
# plt.ylim([10, 20])
plt.gca().invert_yaxis()
plt.ylabel('$Magnitude (g)$')
plt.xlabel('$Color (bp-rp)$')
plt.show()

我的疑问:

我感觉错误大概率出在绝对星等计算的公式部分,也就是calculate_apparent_magnitude函数里。是不是公式的逻辑搞反了?或者还有其他数据预处理的步骤我漏掉了?

备注:内容来源于stack exchange,提问作者Rüya Demirci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:32:59