AstroResearch/src/clients/cds/mod.rs
Asfmq a156252bc3 feat: 接入 VizieR 星表检索与 LAMOST/Gaia/SDSS/DESI 跨源光谱下载
新增天文观测数据获取能力,覆盖星表查询与一维光谱下载两大场景:

星表检索(CDS VizieR)
- VizieR TAP 客户端(JSON 优先 + VOTable 降级),共享 IVOA VOTable 解析层
- 业务层支持自由 ADQL、锥形检索、交叉证认、星表发现与 CSV 导出
- ADQL 注入防护(标识符清洗 + 字符串字面量转义),TTL 缓存(7 天)

跨望远镜光谱下载(统一入口)
- 接入 LAMOST(ConeSearch + FITS.gz)、Gaia(TAP + DataLink ZIP)、
  SDSS(Data Lab TAP + SAS)、DESI(HEALPix coadd)四源
- 双模式:坐标模式(cone 检索 → 选源 → 下载)/ 标识符模式(直按 ID 下载)
- 光谱文件永久缓存(不可变),按 source+source_id 去重

Agent 与 API
- +4 工具:query_vizier / cone_search / find_spectrum / catalog_operation(22 → 26)
- +6 路由:/catalog/vizier、/cone、/crossmatch、/spectrum/{download,list}
- 前端新增 VizierResultCard / FindSpectrumCard 可视化卡片

工程重构
- services/target.rs (832 行) 拆分为 services/cds/{target,vizier}.rs + clients/cds/sesame.rs,
  贯彻 client(通信)/ service(缓存+编排)分层
- ADS 返回字段新增 data(关联数据表 URL),与星表功能联动
2026-07-06 00:07:25 +08:00

19 lines
893 B
Rust
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// src/clients/cds/mod.rs
//
// CDS法国斯特拉斯堡天文数据中心数据源客户端 —— 按数据源聚合
// 仅含纯通信层HTTP 请求 + 响应解析 + 领域结构体)。
// 业务层缓存策略、ADQL 拼装、批量编排)在 services/ 下。
//
// CDS 旗下我们用到的两个独立服务,每个一个文件:
// sesame — Sesame 名称解析器客户端query_sesame + TargetInfo
// vizier — VizieR TAP 客户端VizierClient + VizieRQueryResult
//
// VO 通用层ConeSearch / CrossMatch属于业务编排ADQL 拼装 + 缓存委托),
// 位于 services/cds/vizier.rs不在本通信层。
//
// 后续新增其他数据源LAMOST/SDSS/Gaia 光谱光变)时,在 src/clients/ 下新建
// 同级文件夹(如 src/clients/lamost/client 在此,业务在 services/ 下。
pub mod sesame;
pub mod vizier;