AstroResearch/migrations/20260703130000_add_spectrum_cache.sql
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

17 lines
913 B
SQL
Raw Permalink 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.

-- 光谱下载缓存表LAMOST/SDSS/Gaia 共用,按 source+source_id 去重)
-- 光谱文件不可变,故无 expires_at与 vizier_query_cache 的 TTL 缓存不同)
-- file_path 存储「相对 library_dir」的路径经 /api/files 前缀对外暴露
CREATE TABLE IF NOT EXISTS spectrum_cache (
id INTEGER PRIMARY KEY AUTOINCREMENT,
source TEXT NOT NULL, -- 'lamost' | 'sdss' | 'gaia'
source_id TEXT NOT NULL, -- obsid / plate-mjd-fiber / source_id
ra REAL,
dec REAL,
file_path TEXT NOT NULL, -- 相对 library_dir 的路径,如 Spectra/lamost/438809089.fits
file_format TEXT NOT NULL, -- 'fits'
meta_json TEXT, -- z/class/designation 等元信息
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE(source, source_id)
);
CREATE INDEX IF NOT EXISTS idx_spectrum_cache_source ON spectrum_cache(source, source_id);