Files
astro/phenomena/star_coordinate.go
T
b612 72460fa228 feat: 完善星表查询与跨版本回归验证
- 将星表名称数据收敛为 TSV/GZIP 单一数据源,补充中文名、别名、英文常用名及宿/垣区域字段
- 增加星表名称表加载校验、旧详情字段一致性校验和 GZIP 漂移检查
- 新增 StarDataByName、StarDataByNameAll、StarDataByNameIn ,统一中英文查询与重名消歧
- 优化日月食半影带、升落曲线和可见性回归测试,补充极区、拓扑及低精度场景覆盖
- 增加 Go 1.16/386 兼容门禁和测试案例,处理旧工具链的分配、拓扑、SVG字节及 ULP 差异
- 补充星表、坐标、日月食和低精度回归用例,完善测试文件与缓存忽略规则
2026-10-18 16:13:14 +08:00

36 lines
1.4 KiB
Go

package phenomena
import "b612.me/astro/basic"
// StarData 内嵌 9100 星表中的一条记录 / one entry from the embedded 9100-star catalog.
type StarData = basic.StarData
// ErrStarNotFound 未找到匹配的恒星 / no matching star.
var ErrStarNotFound = basic.ErrStarNotFound
// ErrStarNameAmbiguous 星名对应多颗恒星 / the star name matches more than one star.
var ErrStarNameAmbiguous = basic.ErrStarNameAmbiguous
// StarCoordinateFromStarData 将星表记录转换为恒星坐标 / converts a catalog entry to a star coordinate.
func StarCoordinateFromStarData(star StarData) (StarCoordinate, error) {
return basic.StarCoordinateFromStarData(star)
}
// StarCoordinateByHR 按 HR 编号从内嵌星表得到恒星坐标 / returns a star coordinate by HR number.
func StarCoordinateByHR(hr int) (StarCoordinate, error) {
star, err := basic.StarDataByHR(hr)
if err != nil {
return StarCoordinate{}, err
}
return StarCoordinateFromStarData(star)
}
// StarCoordinateByName 按内嵌星表中文名、别名或英文常用名得到唯一恒星坐标;同名多星返回 ErrStarNameAmbiguous / returns the unique star coordinate by Chinese name, alias or English common name, or ErrStarNameAmbiguous for duplicate names.
func StarCoordinateByName(name string) (StarCoordinate, error) {
star, err := basic.StarDataByName(name)
if err != nil {
return StarCoordinate{}, err
}
return StarCoordinateFromStarData(star)
}