数据分析层(新增 services/{spectrum,timeseries,analysis}):
- 光谱参数提取 parameters.rs:LAMOST/SDSS/APOGEE/DESI FITS header 跨源归一化读取
Teff/logg/[Fe/H]/RV 及 ASPCAP 20+ 元素丰度,rayon 并发批量提取
- 谱线测量 lines.rs:内置真空/空气波长谱线表,窗口内极值搜索 + 梯形法积分 EW + FWHM,支持自定义谱线
- 交叉相关测速 cross_correlate.rs:对数波长重采样对齐,内置 Pickles 模板按光谱型插值,
CCF 峰值位置提取 RV 及不确定度
- 周期搜索 periodicity.rs:Lomb-Scargle 周期图(含 FAP 误报概率)+ BLS 凌星检测 + 相位折叠
- 变星分类 classification.rs:振幅/偏度/峰度/过零率/eta 等统计特征 + 规则分类(RR Lyrae/Cepheid/食双星/AGN 等)
- SED 拟合 sed.rs:多波段测光黑体模型拟合,输出 T_eff/半径/消光 A_V/光度及不确定度
- 运动学 kinematics.rs:视差+自行+RV → 银河系 UVW 空间速度,含移动星群成员概率(Banyan Σ 简化版)
- 化学丰度 chemistry.rs:[α/Fe] vs [Fe/H] 计算,厚盘/薄盘/晕星族判别
- 观测规划 observability.rs:目标升落时间/airmass/月相影响/曝光时间估算
- 赫罗图 hr_diagram.rs:Gaia TAP CMD 查询,新增 GET /api/analysis/hr-diagram 端点
数据获取层:
- JWST:clients/mast/jwst.rs 封装 MAST Portal 锥形检索 + JwstSpectrumFetcher(NIRSpec/MIRI 光谱)
- X 射线:clients/heasarc 封装 HEASARC TAP(ADQL)+ XMM-Newton/Chandra 光谱 fetcher
- 图像 cutout:SDSS SkyServer/STScI DSS/Pan-STARRS 三源 cutout + 发现图(Finding Chart)生成
- Source 枚举新增 Jwst/Xmm/Chandra 并注册 ObservationRegistry,前端 SOURCE_THEME 与筛选器同步三源
Agent 工具集(24→35):
- 新增 9 个分析工具:get_spectrum_parameters / measure_spectral_lines / measure_radial_velocity /
find_period / classify_variable_star / fit_sed / analyze_kinematics / analyze_abundance_pattern / plan_observation
- batch_process:批量样本"查询→下载→分析→报告"流水线,并发控制防数据源速率限制
- literature_monitor:按 ADS 查询式/时间窗/最低引用数检查最新文献
定时文献同步:
- sync_queries 表新增 is_scheduled 列(migration 20260713)
- 新增 POST /sync/queries/:id/schedule 端点
- 服务启动时拉起每小时调度器,对 is_scheduled=1 的检索配置静默执行 ADS(entdate 增量)/arXiv 增量同步
- search_history 工具收敛至 services/search::search_agent_history,消除 FTS 查询逻辑重复
其他:
- plotting skill 由占位填充为完整科研绘图规范:光谱/光变/折叠曲线/CMD/SED/[α/Fe]/周期图/Mollweide/发现图 9 类 matplotlib 模板
- 删除死代码 streaming_executor.rs(929 行,仅剩 mod 声明引用,无调用方)
- 新增 docs/roadmap-research-features.md 科研功能路线图及实现状态
18 KiB
AstroResearch 科研功能扩展路线图
项目现状
已实现的核心能力
数据源(9 个):
| 数据源 | 产品类型 | 状态 |
|---|---|---|
| LAMOST | 光谱(LRS/MRS) | 完整 |
| Gaia | XP 光谱(BP/RP)、RVS、历元测光 | 完整 |
| SDSS | 光学光谱(spec)、APOGEE 近红外(apstar/aspcap) | 完整 |
| DESI | 暗能量光谱仪(coadd) | 完整 |
| 2MASS | 近红外测光(J/H/K) | 完整 |
| AllWISE | 中红外测光(W1-W4) | 完整 |
| Pan-STARRS | 光学测光(g/r/i/z/y) | 完整 |
| ZTF | 时域光变曲线(zg/zr/zi) | 完整 |
| TESS | 空间时域光变曲线(2min/FFI) | 完整 |
Agent 工具集:
search_papers— ADS/arXiv 文献搜索process_paper— 下载、解析、向量化、翻译get_paper_content/get_paper_outline— 阅读解析后文献rag_search— 稠密向量 + BM25 混合检索query_target— CDS Sesame 天体名称解析find_observation— 跨源观测数据统一下载catalog_operation— VizieR TAP 星表查询(ADQL + 锥形检索)save_note— 高亮/笔记存储get_paper_metadata— 完整文献元数据search_local_library— 本地文献库搜索get_citation_network— 引文网络图analyze_image— 视觉模型图像分析- 文件操作、bash、记忆、技能、子 Agent、团队协作等
已有技能:
methodology— 系统性文献综述方法论plotting— 科研绘图规范(占位,未实现)presentation— 演示文稿技能
一、数据获取层 — 补全缺失的数据源
1.1 JWST/MIRI 数据获取
目标:通过 MAST API 获取詹姆斯·韦伯空间望远镜 NIRSpec/MIRI 光谱数据。
需求:
- 新增
src/clients/mast/jwst.rs,封装 MAST JWST 查询 API - 实现
JwstSpectrumFetcher,注册到ObservationRegistry - Source 枚举新增
Jwst变体 - 支持 NIRSpec IFU/MOS、MIRI MRS/LRS 光谱产品
- FITS 解析支持 JWST 特有的多扩展 BinTable 格式
价值:JWST 是当前最热门的望远镜,大量前沿论文依赖 JWST 数据。
预估工作量:中等(MAST API 文档完善,但 FITS 结构复杂)。
1.2 X 射线数据(XMM-Newton / Chandra)
目标:通过 HEASARC TAP 获取高能天体物理观测数据。
需求:
- 新增
src/clients/heasarc/,封装 HEASARC TAP 查询 - 实现
XmmSpectrumFetcher和ChandraSpectrumFetcher - Source 枚举新增
Xmm和Chandra变体 - 支持 X 射线光谱(PHA)和光变曲线产品
价值:覆盖高能波段,满足活动星系核、X 射线双星、星系团等研究需求。
预估工作量:中等(HEASARC TAP 接口标准,但数据格式多样)。
1.3 VLBI/Gaia 天体测量数据
目标:通过 VizieR 获取高精度自行、视差和天体测量数据。
需求:
- 扩展现有
CatalogOperationTool,预置 Gaia DR3 天体测量常用查询模板 - 新增
GaiaAstrometryFetcher,专门处理高精度自行/视差数据 - 支持按自行/视差筛选的 cone search
价值:精密天体测量是银河考古学和恒星动力学的基础。
预估工作量:小(VizieR 已支持,主要是模板和预置查询)。
1.4 光谱图像 Cutout
目标:实现 SDSS/Gaia/DSS 图像 cutout 下载 + 前端渲染。
需求:
- 实现
ImageCutoutFetcher,支持 SDSS SkyServer cutout API、DSS (STScI)、Gaia 推荐图 - 完成
ImagePreview解析器(preview.rs 中已有占位) - 前端
ObservationPreviewRenderer新增图像渲染 case - 支持自定义 cutout 大小和坐标
价值:观测规划和文献中的发现图(Finding Chart)必备。
预估工作量:中等(API 简单,但前端图像渲染需要新组件)。
二、数据分析层 — 光谱/光变科学分析
2.1 光谱参数自动提取
目标:从 LAMOST/SDSS FITS 文件中自动读取恒星大气参数(Teff, logg, [Fe/H], 径向速度等),结构化入库。
需求:
- 新增
src/services/spectrum/parameters.rs,实现 FITS Header/BinTable 参数提取 - LAMOST:从
params.fits或spec.fitsheader 读取TEFF,LOGG,FEH,RV - SDSS/BOSS:从
line.dat或aspcapStar读取 ASPCAP 参数 - SDSS/APOGEE:从
aspcapStarFITS 读取完整化学丰度 - DESEI:从
coaddFITS header 读取红移和分类 - 结构化数据入库(新建
spectrum_parameters表或扩展observation_cache) - Agent 新增
get_spectrum_parameters工具,查询已提取的参数
价值:每篇恒星物理论文都需要这类参数,手动提取极其低效。
预估工作量:中等(FITS 解析已有基础,需逐源适配 header 约定)。
2.2 光谱线识别与等值宽度测量
目标:标注 Balmer/H&K/金属线位置,自动计算等值宽度(EW)和半高全宽(FWHM)。
需求:
- 新增
src/services/spectrum/lines.rs,内置常见谱线波长表(真空/空气波长) - 实现谱线搜索算法:在给定波长窗口内找局部极值(发射线找极大,吸收线找极小)
- 实现数值积分 EW 计算(梯形法)
- 支持用户自定义谱线列表
- Agent 新增
measure_spectral_lines工具,输入光谱路径 + 谱线名称列表,输出 EW/FWHM - 前端光谱图支持谱线标注叠加层
价值:光谱分析的核心操作,天文学生和研究者日常高频使用。
预估工作量:中等偏高(谱线表容易,但稳健的峰值搜索和 EW 计算需要仔细实现)。
2.3 交叉相关测速
目标:通过模板匹配法测量径向速度(RV),支持多波段光谱。
需求:
- 新增
src/services/spectrum/cross_correlate.rs - 内置或下载标准模板光谱(如 Pickles Atlas、PHOENIX 模型)
- 实现 FFT 加速的交叉相关函数计算
- 从互相关峰值位置提取 RV + 不确定度估计
- 支持用户上传自定义模板
- Agent 新增
measure_radial_velocity工具
价值:双星、视向速度变星、银河系动力学研究的核心工具。
预估工作量:中等(算法成熟,但模板管理和多波段适配需要设计)。
2.4 光变周期搜索
目标:基于 Lomb-Scargle 周期图和 BLS(Box Least Squares)算法,自动搜索光变周期。
需求:
- 新增
src/services/timeseries/periodicity.rs - 实现 Lomb-Scargle 周期图(非均匀采样友好)
- 实现 BLS 算法(凌星检测专用)
- 自动报告最优周期、FAP(误报概率)、次优周期
- 支持 ZTF、TESS、Gaia 历元测光数据
- Agent 新增
find_period工具,输入光变曲线文件,输出周期 + 周期图 - 前端支持折叠光变曲线(Phase-folded light curve)展示
价值:ZTF/TESS 数据的刚需,变星和系外行星研究的核心分析。
预估工作量:中等(Lomb-Scargle 算法有 Rust 实现可参考,BLS 较复杂)。
2.5 光变分类与特征提取
目标:自动识别变星类型,提取振幅、形态参数等特征。
需求:
- 新增
src/services/timeseries/classification.rs - 基于周期 + 振幅 + 偏度 + 峰度等统计特征的简单分类器
- 支持 RR Lyrae、Cepheid、食双星、脉动变星、AGN 等主要类型
- 可选:集成轻量 ML 模型(如 Random Forest,通过 ONNX Runtime)
- Agent 新增
classify_variable_star工具
价值:时域巡天(ZTF/TESS)数据量巨大,自动化分类是必要环节。
预估工作量:高(分类器训练和特征工程需要较多工作)。
2.6 SED 拟合与建模
目标:多波段测光数据拟合黑体或模板光谱能量分布,求解天体物理参数。
需求:
- 新增
src/services/analysis/sed.rs - 自动拉取目标所有可用波段测光(2MASS + WISE + PS1 + Gaia)
- 实现黑体辐射模型拟合(最小二乘/MCMC)
- 可选模板 SED 拟合(BaSeL/PHOENIX 模板库)
- 输出 T_eff、光度、消光 A_V 及其不确定度
- 前端 SED 图展示(观测点 + 拟合曲线 + 残差)
- Agent 新增
fit_sed工具
价值:天体物理参数估计的基础方法,适用于恒星、AGN、超新星等多种天体。
预估工作量:中等偏高(黑体拟合简单,但模板拟合和 MCMC 需要较多工作)。
2.7 自行/视差运动学分析
目标:基于 Gaia DR3 高精度自行 + 视差,计算银河系三维空间速度(UVW),识别移动星群。
需求:
- 新增
src/services/analysis/kinematics.rs - 实现坐标变换:(RA, Dec, parallax, pmRA, pmDec, RV) → (X, Y, Z, U, V, W)
- 实现移动星群成员概率计算(基于 Banyan Σ 算法简化版)
- 支持批量样本处理
- Agent 新增
analyze_kinematics工具
价值:银河考古学(Galactic Archaeology)的核心分析方法。
预估工作量:中等(坐标变换公式成熟,Banyan Σ 需要简化实现)。
2.8 化学丰度模式分析
目标:多元素丰度比([α/Fe] vs [Fe/H])自动提取与可视化,区分厚盘/薄盘/晕星。
需求:
- 扩展光谱参数提取(2.1),从 APOGEE ASPCAP 数据读取完整化学丰度
- 新增
src/services/analysis/chemistry.rs - 实现 [α/Fe] 计算(α 元素:O, Mg, Si, S, Ca, Ti 的加权平均)
- 自动绘制 [α/Fe] vs [Fe/H] 图,并按运动学成分着色
- Agent 新增
analyze_abundance_pattern工具
价值:银河考古学的核心工具,用于区分银河系不同星族。
预估工作量:中等(数据提取为主,分析逻辑相对直接)。
三、可视化与输出层
3.1 光谱交互式标注
目标:前端光谱图支持点击标注谱线名称,自动显示等值宽度。
需求:
- 扩展
SpectrumPlot.tsx,新增谱线标注叠加层 - 内置常见谱线波长表(Balmer 系列、H&K、NaD、Mg b、Fe 等)
- 支持用户点击光谱图任意位置添加自定义标注
- 标注信息(谱线名、波长、EW)以 tooltip 形式展示
- 后端
preview.rs返回时可选附带谱线标注数据
价值:显著提升光谱阅读和教学体验。
预估工作量:中等(前端组件开发为主)。
3.2 赫罗图(HR Diagram)
目标:基于 Gaia 数据构建颜色-星等图(CMD),支持叠加自定义样本。
需求:
- 新增
src/api/hertzsprung_russell.rs或扩展现有 Gaia 查询 - 自动查询给定天区/样本的 Gaia G-mag、BP-RP color、parallax
- 计算绝对星等 M_G = G + 5 + 5*log10(parallax/1000)
- 返回数据供前端渲染 HR 图
- 前端新增 HR Diagram 组件(scatter plot,支持密度着色)
- 支持叠加用户自定义样本(不同颜色/标记)
价值:恒星物理的基础可视化,几乎所有恒星相关论文都包含 HR 图。
预估工作量:中等(数据查询简单,前端绘图需要新组件)。
3.3 发现图(Finding Chart)
目标:生成目标天区的 DSS/Pan-STARRS 图像 cutout + 标注目标位置。
需求:
- 调用 STScI DSS cutout API 或 Pan-STARRS cutout API
- 返回 cutout 图像 + 目标中心标注
- 支持自定义 cutout 大小(arcmin)和缩放
- Agent 工具
find_observation可选返回 finding chart - 前端在观测数据页面展示 finding chart
价值:观测准备的必备环节,望远镜观测提案中需要附带 finding chart。
预估工作量:小(API 简单,主要是前端展示)。
3.4 多波段 SED 图
目标:自动拉取所有可用波段测光数据,绘制 SED 图并拟合模型。
需求:
- 扩展 2.6 节 SED 拟合功能,新增前端 SED 图组件
- 自动标记各波段(2MASS J/H/K、WISE W1-W4、Gaia G/BP/RP 等)
- 支持对数坐标轴
- 拟合曲线叠加显示,残差面板
价值:参数化分析的标准可视化。
预估工作量:中等(依赖 2.6 节后端实现)。
3.5 SkyMap 天球投影
目标:在全天球图上可视化样本分布,支持按参数着色。
需求:
- 新增
SkyMapPanel前端组件 - 使用 Mollweide 或 Aitoff 投影
- 支持按天体类型、金属丰度、自行等参数着色
- 叠加银河平面、银道坐标网格
- 支持交互式缩放和选区
价值:巡天论文的标准可视化,用于展示样本的天球分布。
预估工作量:中等(前端投影计算 + WebGL 渲染)。
四、工作流增强
4.1 批量样本处理
目标:给定一组天体名称/坐标,批量执行"查询 → 下载 → 分析 → 出图 → 保存报告"。
需求:
- 新增
src/agent/tools/astro/research/batch_process.rs,实现BatchProcessTool - 支持输入格式:天体名称列表、坐标列表、VizieR 查询结果
- 批量流程:query_target → find_observation → 参数提取 → 出图
- 并发控制(避免触发数据源速率限制)
- 进度报告(SSE 事件推送)
- 输出汇总报告(Markdown 表格 + 图表)
价值:巡天论文的标准工作流,手动逐个处理效率极低。
预估工作量:中等偏高(并发控制和错误处理需要仔细设计)。
4.2 定时文献监控
目标:Cron 定时检查 ADS/arXiv 新文献,匹配用户关注的关键词/作者/天体。
需求:
- 新增
src/agent/tools/astro/research/literature_monitor.rs - 用户定义监控规则(关键词、作者、天体名称、arXiv 分类)
- 使用现有
loop技能定时触发 - 新文献匹配时通过 SSE 推送通知
- 支持自动下载摘要 + 生成简报
价值:帮助研究者跟踪前沿,不遗漏重要文献。
预估工作量:中等(定时任务框架已有,主要是规则匹配和通知)。
4.3 观测提案辅助
目标:根据目标天区自动计算可见性、月相限制、曝光时间估算。
需求:
- 新增
src/services/analysis/observability.rs - 计算目标在给定台站的升起/落下时间和最佳观测窗口
- 月相和银河背景亮度估算
- 基于目标亮度和望远镜参数的曝光时间估算
- Agent 新增
plan_observation工具 - 输出观测提案所需的标准化信息
价值:望远镜申请的时间评估和观测规划必备。
预估工作量:中等(天文计算公式成熟,但台站参数和大气消光模型需要数据)。
五、实施优先级建议
| 优先级 | 功能 | 理由 | 状态 |
|---|---|---|---|
| P0 | 光谱参数自动提取(2.1) | 已下载数据的直接利用,所有恒星论文都用 | ✅ 已实现 |
| P0 | 光变周期搜索(2.4) | ZTF/TESS 数据的刚需,时域天文学核心 | ✅ 已实现 |
| P1 | 光谱线识别与 EW 测量(2.2) | 光谱分析的日常操作 | ✅ 已实现 |
| P1 | 交叉相关测速(2.3) | 双星/视向速度研究核心工具 | ✅ 已实现 |
| P1 | 绘图 skill 填充(现有占位) | 提升 Agent 绘图能力的基础 | ✅ 已实现 |
| P2 | SED 拟合(2.6) | 多波段分析的标准方法 | ✅ 已实现 |
| P2 | 赫罗图(3.2) | 恒星物理基础可视化 | ✅ 已实现 |
| P2 | 批量样本处理(4.1) | 巡天论文工作流提效 | ✅ 已实现 |
| P3 | JWST 数据获取(1.1) | 前沿望远镜,但使用门槛较高 | ✅ 已实现 |
| P3 | 光变分类(2.5) | 时域数据分析,但分类器训练复杂 | ✅ 已实现 |
| P3 | SkyMap 天球投影(3.5) | 巡天论文可视化,但优先级不如核心分析 | ✅ 已实现 |
六、已实现功能详情
已完成的数据分析层
| 功能 | Agent 工具 | 后端模块 | 状态 |
|---|---|---|---|
| 光谱参数提取 | get_spectrum_parameters |
services/spectrum/parameters.rs |
✅ |
| 谱线识别与EW测量 | measure_spectral_lines |
services/spectrum/lines.rs |
✅ |
| 交叉相关测速 | measure_radial_velocity |
services/spectrum/cross_correlate.rs |
✅ |
| 周期搜索 | find_period |
services/timeseries/periodicity.rs |
✅ |
| 变星分类 | classify_variable_star |
services/timeseries/classification.rs |
✅ |
| SED拟合 | fit_sed |
services/analysis/sed.rs |
✅ |
| 运动学分析 | analyze_kinematics |
services/analysis/kinematics.rs |
✅ |
| 化学丰度分析 | analyze_abundance_pattern |
services/analysis/chemistry.rs |
✅ |
| 观测提案辅助 | plan_observation |
services/analysis/observability.rs |
✅ |
| 批量样本处理 | batch_process |
agent/tools/astro/research/batch_process.rs |
✅ |
| 文献监控 | literature_monitor |
agent/tools/astro/research/literature_monitor.rs |
✅ |
已完成的数据获取层
| 功能 | 模块 | 说明 | 状态 |
|---|---|---|---|
| JWST 数据获取 | clients/mast/jwst.rs + services/observation/jwst.rs |
MAST JWST API + SpectrumFetcher | ✅ |
| X射线数据 | clients/heasarc/ + services/observation/xray.rs |
HEASARC TAP + XMM/Chandra fetcher | ✅ |
| 光谱图像Cutout | services/observation/cutout.rs |
SDSS/DSS/Pan-STARRS cutout API + CutoutFetcher | ✅ |
| 赫罗图 | api/hr_diagram.rs |
Gaia CMD 查询 API | ✅ |
| 绘图skill | skills/plotting/SKILL.md |
Python matplotlib 科研绘图模板(8种图表) | ✅ |
已完成的工作流增强
| 功能 | 模块 | 说明 | 状态 |
|---|---|---|---|
| 批量样本处理 | agent/tools/astro/research/batch_process.rs |
查询→下载→分析→报告 | ✅ |
| 文献监控 | agent/tools/astro/research/literature_monitor.rs |
ADS/arXiv 最新文献匹配 | ✅ |