后端(新增 ~4400 行):
- 新增 IRSA/IPAC、MAST 两客户端:ZTF 光变曲线(IRSA REST,CSV,免认证)、
TESS 光变(MAST TIC cone search + LC FITS),均复用 SSRF 安全重定向 + 重试
- Gaia DR3 XP_CONTINUOUS 光谱还原(gaia_xp/):逆向 GaiaXPy calibrate() 算法,
55 个 Hermite 系数 → 采样光谱;design_matrix 启动时 OnceLock 预计算一次。
因 fitsio crate 遇 PD(55) 变长数组列会 panic,改用 fitsio-sys 直连 CFITSIO
原生读取;新增 fitsio/fitsio-sys(vendored,无需系统 cfitsio)
- FITS 预览解析层(preview.rs):跨 LAMOST/SDSS/DESI/Gaia XP 的异构 FITS
(BinTable/Image/Hermite 系数)统一归一化为 ObservationPreview JSON
(Spectrum/LightCurve/Photometry/Image 标签枚举,OCP 可扩展)
- 测光 fetcher(photometry.rs):2MASS/AllWISE/Pan-STARRS/Gaia 四源,
均复用 VizieR/Gaia TAP 查询、零新 HTTP 代码,配置驱动表名/列名差异
- 统一全源检索(unified.rs):在 dispatch 之上叠加多目标 × 多源并发 cone 扇出,
失败隔离,两阶段(检索聚合 → 勾选后复用现有 download 端点批量下载)
- registry 注册 6 个新 fetcher + list_all_keys() 暴露全 (Source,ProductSpec)
组合供前端细粒度勾选;Source 枚举增 5 个变体
- 新增 3 条路由:GET /observation/preview、POST /observation/unified/{search,resolve}
前端(新增 ~1600 行):
- UnifiedSearchPanel:三模式目标输入(坐标/天体名/CSV)+ 源 chip 筛选,
按 (source,product) 分组展示候选源并支持勾选批量下载
- SpectrumPlot:手写内联 SVG 光谱折线图(零第三方绘图库),多段叠加 + hover 取值
- ObservationPreviewRenderer + useObservationPreview:预览渲染接入
- useObservation/ObservationResultCard/App 联动统一检索状态与下载链路
1.8 KiB
1.8 KiB
| 1 | 275.0 | 295.0 | 315.0 | 335.0 | 355.0 | 375.0 | 395.0 | 415.0 | 435.0 | 455.0 | 475.0 | 495.0 | 515.0 | 535.0 | 555.0 | 575.0 | 595.0 | 615.0 | 635.0 | 655.0 | 675.0 | 695.0 | 715.0 | 735.0 | 755.0 | 775.0 | 795.0 | 815.0 | 835.0 | 855.0 | 875.0 | 895.0 | 915.0 | 935.0 | 955.0 | 975.0 | 995.0 | 1015.0 | 1035.0 | 1055.0 | 1075.0 | 1095.0 | 1115.0 | 1135.0 | 1155.0 | 1175.0 | 1195.0 | 1215.0 | 1235.0 | 1255.0 | 1275.0 | 1295.0 | 1315.0 | 1335.0 | 1355.0 | 1375.0 | 1395.0 | 1415.0 | 1435.0 | 1455.0 | 1475.0 | 1495.0 | 1515.0 | 1535.0 | 1555.0 | 1575.0 | 1595.0 | 1615.0 | 1635.0 | 1655.0 | 1675.0 | 1695.0 | 1715.0 | 1735.0 | 1755.0 | 1775.0 | 1795.0 | 1815.0 | 1835.0 | 1855.0 | 1875.0 | 1895.0 | 1915.0 | 1935.0 | 1955.0 | 1975.0 | 1995.0 | 2015.0 | 2035.0 | 2055.0 | 2075.0 | 2095.0 | 2115.0 | 2135.0 | 2155.0 | 2175.0 | 2195.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 75.91810402 | 65.30676598 | 56.74420128 | 49.88450193 | 44.33393499 | 39.77221930 | 35.96200683 | 32.73208906 | 29.95888681 | 27.55193531 | 25.44364233 | 23.58235073 | 21.92770039 | 20.44752113 | 19.11572733 | 17.91086536 | 16.81508899 | 15.81341867 | 14.89319223 | 14.04364755 | 13.25559818 | 12.52117612 | 11.83362455 | 11.18712820 | 10.57667325 | 9.997930284 | 9.447156031 | 8.921110284 | 8.416985388 | 7.932346177 | 7.465078666 | 7.013346117 | 6.575551361 | 6.150304411 | 5.736394608 | 5.332766620 | 4.938499746 | 4.552790051 | 4.174934935 | 3.804319780 | 3.440406405 | 3.082723063 | 2.730855772 | 2.384440799 | 2.043158138 | 1.706725845 | 1.374895121 | 1.047446037 | 0.7241838125 | 0.4049355816 | 0.08954757939 | -0.2221173109 | -0.5301816929 | -0.8347555172 | -1.135937702 | -1.433817548 | -1.728475967 | -2.019986561 | -2.308416552 | -2.593827607 | -2.876276543 | -3.155815952 | -3.432494739 | -3.706358600 | -3.977450424 | -4.245810658 | -4.511477616 | -4.774487750 | -5.034875885 | -5.292675425 | -5.547918531 | -5.800636273 | -6.050858765 | -6.298615283 | -6.543934356 | -6.786843865 | -7.027371104 | -7.265542853 | -7.501385427 | -7.734924728 | -7.966186278 | -8.195195258 | -8.421976533 | -8.646554680 | -8.868954005 | -9.089198559 | -9.307312157 | -9.523318383 | -9.737240605 | -9.949101979 | -10.15892545 | -10.36673378 | -10.57254951 | -10.77639501 | -10.97829244 | -11.17826377 | -11.37633080 |