# 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.fits` header 读取 `TEFF`, `LOGG`, `FEH`, `RV` - SDSS/BOSS:从 `line.dat` 或 `aspcapStar` 读取 ASPCAP 参数 - SDSS/APOGEE:从 `aspcapStar` FITS 读取完整化学丰度 - DESEI:从 `coadd` FITS 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 最新文献匹配 | ✅ |