本项目致力于打造一款开源的国产卫星工具包(类似美国Analytical Graphics公司开发的STK产品),支持航天任务的全过程,包括设计、测试、发射、运行和任务应用。
备注:本项目以提供计算工具以及运控管理框架为主,不提供与卫星实际操作控制相关的任何指令和具体任务。
目前项目需要以下的合作伙伴:
- 熟悉STK操作的设计人员对STK的功能进行细化;
- 熟悉STK算法,或卫星相关算法的人能对算法进行描述,并协助进行算法验证;
- 能够提供该产品迫切的用户需求,如需求被纳入本项目,我们将免费进行开发。
- 实现对卫星两行数据的自动更新
- 实现SGP4轨道计算
- 2D卫星轨道轨迹展示
- 支持星座选择
- 支持卫星过滤
- 支持星座运行回放
- 支持步速播放/回放
- 场景仿真
- 卫星运行仿真(仿STK)
- 根据卫星两行数据输出卫星在特定时段内的坐标位置
- 根据卫星瞬根数据输出卫星在特定时段内的坐标位置
- 根据地面站位置计算星站可访问时间窗
- 星座运行仿真
- 计算星地时间窗
- 卫星运行仿真(仿STK)
- 实现HPOP轨道计算
- 天文计算工具
版本 | 接口说明 | 提供服务名 | 接口类型 |
---|---|---|---|
0.1 | 获取指定卫星在指定未来时间段内的预估位置信息 | 卫星位置信息 | Restful |
0.1 | 获取指定卫星在历史时间段内的位置信息 | 卫星位置信息 | Restful |
0.1 | 获取指定卫星的最新两行数据 | 卫星瞬根更新服务 | Restful |
0.1 | 获取系统内在轨卫星列表 | 卫星瞬根更新服务 | Restful |
0.1 | 获取指定卫星的轨道信息 | 卫星瞬根更新服务 | Restful |
0.1 | 获取指定卫星的上一次更新轨道的轨道信息 | 卫星瞬根更新服务 | Restful |
0.1 | 创建/编辑/删除一个卫星星座 | 星座数据配置服务 | Restful |
0.1 | 将卫星添加到指定的卫星星座中 | 星座数据配置服务 | Restful |
0.1 | 获取星座中的卫星列表 | 星座数据配置服务 | Restful |
0.1 | 从指定的卫星星座中移除指定卫星 | 星座数据配置服务 | Restful |
0.3 | 创建一个地面信关站 | 站网管理系统 | Restful |
0.3 | 添加地面信关站到指定的卫星星座中 | 星座数据配置服务 | Restful |
0.3 | 获取指定卫星与指定信关站的组网时间窗 | 站网管理系统 | Restful |
0.3 | 获取星座星地通信时间日历 | 站网管理系统 | Restful |
0.3 | 重新生成星座星地通信时间日历 | 站网管理系统 | Restful |
0.3 | 系统状态变化消息推送(更新模式/正常模式) | 消息推送服务 | WebSocket |
0.3 | 卫星通信日历已被更新 | 消息推送服务 | WebSocket |
0.3 | 运控任务执行时间已被更新 | 消息推送服务 | WebSocket |
版本 | 接口说明 | 接口提供者 | 接口消费者 |
---|---|---|---|
0.1 | 获取指定卫星的最新瞬根数据 | 卫星瞬根更新服务 | 卫星位置信息 |
0.3 | 发布系统进入更新模式 | 微服务配置中心服务 | 卫星瞬根更新服务 |
0.3 | 订阅系统模式变化 | 微服务配置中心服务 | 消息推送服务 |
发布方 | 订阅方 | Topic | 备注 |
---|---|---|---|
卫星瞬根更新服务 | 卫星位置服务 | 新瞬根 | |
卫星瞬根更新服务 | 消息推送服务 | 新瞬根 | |
卫星位置服务 | 站网管理系统 | 卫星新位置 | |
站网管理系统 | 消息推送服务 | 新星地通信日历 | |
星座任务规划服务 | 消息推送服务 | 任务排期更新 |
版本 | 服务组件名 | 定时器名 | 作用 | 规则 |
---|---|---|---|---|
0.1 | 卫星瞬根更新服务 | 两行数据更新 | 定时获取最新的卫星两行数据 | 每天4小时更新一次 |
数据库名称 | 选型 | 版本 |
---|---|---|
AGI卫星瞬根数据库 | MySQL数据库 | |
星座数据配置数据库 | MySQL数据库 | |
星座运行状态数据库 | MongoDB数据库 | |
星座基线与告警数据库 | MongoDB数据库 | |
星座网络拓扑数据库 | Neo4J数据库 | |
场景仿真数据库 | MySQL数据库 | |
运控黑匣子 | MongoDB数据库 | |
缓存数据库(用于存储卫星预估轨迹) | Redis数据库 | |
浏览器本地缓存数据库 | IndexDB数据库 |
説明:衛星最新軌道信息表主要是用以保存采集到的最新衛星兩行數據,其中北美防空司令部賦予的編號可以與用戶系統中的衛星編號進行匹配。
表名:Orbit_Latest
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
NoradId | Char(5) | 北美防空司令部給衛星分配的編號 | 必须 |
OpenId | Char(32) | 本系統給衛星指定的一個 | 必须 |
Name | Varchar2(36) | 給衛星自定義的名稱 | 可為空 |
TleName | Varchar2(36) | 衛星在兩行數據中的名稱 | 必須 |
Line1 | Char(69) | 衛星的兩行數據第一行 | 必須 |
Line2 | Char(69) | 衛星的兩行數據第二行 | 必須 |
TleEpochTime | DateTime(3) | 當前兩行文件更新時間(UTC時間,精確到豪秒) | 必須 |
TleLastEpochTime | DateTime(3) | 兩行文件上一次更新時間,用來計算僞真實軌跡 | 可為空 |
瞬根數據-星歷時間 | 可為空 | ||
瞬根數據-軌道半長徑 | 可為空 | ||
瞬根數據-偏心率 | 可為空 | ||
瞬根數據-軌道傾角 | 可為空 | ||
瞬根數據-升交點赤經 | 可為空 | ||
瞬根數據-近地點幅角 | 可為空 | ||
瞬根數據-平近點角 | 可為空 | ||
瞬根數據- | 可為空 | ||
瞬根數據- | 可為空 | ||
EpochTime | DateTime(3) | 當前瞬根數據更新時間(UTC時間,精確到豪秒) | 可為空 |
LastEpochTime | DateTime(3) | 瞬根數據上一次更新時間,用來計算僞真實軌跡 | 可為空 |
Propagators | 字符枚舉 | 支持的軌跡計算模型(GDP4/HPOP) | 必須 |
數字 | 飛行數據-每天环绕地球的圈数 | 可為空 | |
數字 | 飛行數據-发射以来飞行的圈数 | 可為空 | |
Status | 字符枚举 | 数据状态(草稿/正常) | 必须 |
説明:衛星歷史軌道信息表主要是用以保證采集的衛星歷次兩行數據信息。
表名:Orbit_History
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 系统分配给行数据的唯一编码 | 必须 |
Open_Id | Char(32) | 本系統給衛星的唯一编码 | 必须 |
TleName | Varchar2(36) | 衛星在兩行數據中的名稱 | 必须 |
Line1 | Char(69) | 衛星的兩行數據第一行 | 必须 |
Line2 | Char(69) | 衛星的兩行數據第二行 | 必须 |
TleEpochTime | DateTime(3) | 當前兩行文件更新時間(UTC時間,精確到豪秒) | 必须 |
瞬根數據-星歷時間 | 可為空 | ||
瞬根數據-軌道半長徑 | 可為空 | ||
瞬根數據-偏心率 | 可為空 | ||
瞬根數據-軌道傾角 | 可為空 | ||
瞬根數據-升交點赤經 | 可為空 | ||
瞬根數據-近地點幅角 | 可為空 | ||
瞬根數據-平近點角 | 可為空 | ||
瞬根數據- | 可為空 | ||
瞬根數據- | 可為空 | ||
EpochTime | DateTime(3) | 當前瞬根數據更新時間(UTC時間,精確到豪秒) | 可為空 |
Propagators | 字符枚舉数组 | 支持的軌跡計算模型(GDP4/HPOP) | 必須 |
數字 | 飛行數據-每天环绕地球的圈数 | 可為空 | |
數字 | 飛行數據-发射以来飞行的圈数 | 可為空 |
说明:该表用于存储运控系统中所有的星座,默认情况下,这些星座并不参与运控,如果需要星座能加入到运控体系,则需要先行启动星座,在卫星运行图中,星座信息可以作为一个过滤参数。
表名:Constellation
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
OpenId | Char(32) | 本系统给星座分配的唯一编号 | 必须 |
Name | Varchar2(36) | 星座的名称 | 必须 |
OwnerShip | Varchar2(36) | 星座的归属国家 | 可为空 |
Desc | Varchar2(256) | 星座的描述 | 可为空 |
说明:在同一个星座中可能存在不同类型的卫星,这些卫星具备特别的一些功能,比如信号中继,可以按星座卫星分组对卫星进行管理。星座分组不支持多级分组。
表名:Satellite_Groups
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 分组行数据的唯一标识 | 必须 |
Constellation_Id | Char(32) | 本系统给星座分配的唯一编号 | 必须 |
Name | Varchar2(36) | 星座分组名称 | 必须 |
Desc | Varchar2(256) | 对星座分组的描述 | 可为空 |
说明:将卫星进行分组。
表名:GroupMember
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 分组行数据的唯一标识 | 必须 |
Constellation_Id | Char(32) | 本系统给星座分配的唯一编号 | 必须 |
Group_Id | Char(32) | 星座分组编号 | 必须 |
Satellite_Id | Char(32) | 本系统给卫星分配的唯一编号 | 必须 |
说明:该表用于存储星座与卫星的关系,卫星的编码信息来自AGI卫星瞬根数据库中的卫星的OpenId,当前约定,一颗卫星只能属于一个星座。
表名:Constellation_Satellite
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 行数据的唯一标识 | 必须 |
Constellation_Id | Char(32) | 本系统给星座分配的唯一编号 | 必须 |
Satellite_Id | Char(32) | 本系统给卫星分配的唯一编号 | 必须 |
IsInNet | Boolean | 该卫星是否入网,默认为false | 必须 |
说明:该表用于存储星座与地面站的关系,地面站的编码信息来自地面站站网系统中的地面站的OpenId,一个地面站可以同时为多个星座服务。信关站包含了固定信关站和移动信关站。
表名:Constellation_Station
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 行数据的唯一标识 | 必须 |
Constellation_Id | Char(32) | 本系统给星座分配的唯一编号 | 必须 |
Station_Id | Char(32) | 本系统给地面站分配的唯一编号 | 必须 |
IsMovable | Boolean | 该地面站是否为可移动地面站 | 必须 |
IsInNet | Boolean | 该地面站是否入网 | 必须 |
说明:该表用于存储卫星以及卫星的相关载荷设备信息。
表名:Satellite_Equipment
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
OpenId | Char(32) | 系统分配给载荷的唯一标识 | 必须 |
Satellite_Id | Char(32) | 本系统给卫星分配的唯一编号 | 必须 |
ParentEquip_Id | Char(32) | 载荷的父级载荷唯一标识 | 可为空 |
EquipEnum | VarChar2(16) | 本系统为载荷设备分配的枚举名 | 必须 |
Status | Varchar2(16) | 载荷状态枚举(关机,故障,正常) | 必须 |
说明:该表用于存储卫星以及卫星的相关载荷设备信息。
表名:Equipment_DefaultProperties
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 行数据的唯一标识 | 必须 |
Satellite_Id | Char(32) | 本系统给卫星分配的唯一编号 | 必须 |
Equip_Id | Char(32) | 卫星载荷唯一标识 | 必须 |
TypeLabel | Varchar2(12) | 属性的分类标签,仅支持一个标签,对应载荷属性枚举 | 必须 |
PropertyKey | VarChar2(32) | 卫星载荷属性Key,对应特定类型的载荷属性枚举硬编码 | 必须 |
PropertyValue | VarChar2(64) | 卫星载荷属性Value | 必须 |
说明:该表用于存储卫星以及卫星载荷设备的最新状态以及最新运参。
表名:Equipment_Properties
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 行数据的唯一标识 | 必须 |
Satellite_Id | Char(32) | 本系统给卫星分配的唯一编号 | 必须 |
Equip_Id | Char(32) | 卫星载荷唯一标识 | 必须 |
TypeLabel | Varchar2(12) | 属性的分类标签,仅支持一个标签,对应载荷属性枚举 | 可为空 |
PropertyKey | VarChar2(32) | 卫星载荷属性Key,对应特定类型的载荷属性枚举硬编码 | 必须 |
PropertyValue | VarChar2(64) | 卫星载荷属性Value | 必须 |
CollectionTime | DateTime(3) | 状态运参数值采集时间 | 必须 |
说明:该表用于存储卫星根据瞬根获得的轨迹。其存储于Redis分布式缓存中。Key为系统编号+星历时间+时间间隔(5位),最大粒度为分钟。
表名:Cache_Satellite_Traces
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Key | DateTime(3) | 系统分配给卫星的系统编号+星历时间(精确到毫秒) | 必须 |
Value.ECI.X | Double | 必须 | |
Value.ECI.Y | Double | 必须 | |
Value.ECI.Z | Double | 必须 | |
Value.ECI.Vx | Double | 必须 | |
Value.ECI.Vy | Double | 必须 | |
Value.ECI.Vz | Double | 必须 | |
Value.ECEF.X | Double | 必须 | |
Value.ECEF.Y | Double | 必须 | |
Value.ECEF.Z | Double | 必须 | |
Value.ECEF.Vx | Double | 必须 | |
Value.ECEF.Vy | Double | 必须 | |
Value.ECEF.Vz | Double | 必须 | |
Value.Geo.X | Double | 必须 | |
Value.Geo.Y | Double | 必须 | |
Value.Geo.Z | Double | 必须 |
说明:该表用于存储卫星根据历史瞬根获得的过去的轨迹。其存储于Redis分布式缓存中。Key为系统编号+星历时间+时间间隔(5位),最大粒度为分钟。
表名:Cache_Satellite_HistoryTraces
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Key | DateTime(3) | 系统分配给卫星的系统编号+星历时间(精确到毫秒) | 必须 |
Value.ECI.X | Double | 必须 | |
Value.ECI.Y | Double | 必须 | |
Value.ECI.Z | Double | 必须 | |
Value.ECI.Vx | Double | 必须 | |
Value.ECI.Vy | Double | 必须 | |
Value.ECI.Vz | Double | 必须 | |
Value.ECEF.X | Double | 必须 | |
Value.ECEF.Y | Double | 必须 | |
Value.ECEF.Z | Double | 必须 | |
Value.ECEF.Vx | Double | 必须 | |
Value.ECEF.Vy | Double | 必须 | |
Value.ECEF.Vz | Double | 必须 | |
Value.Geo.X | Double | 必须 | |
Value.Geo.Y | Double | 必须 | |
Value.Geo.Z | Double | 必须 |
说明:该表用于存储卫星根据历史瞬根获得的过去的轨迹。只能存储整秒或整分钟的轨迹。其步长间隔根据系统配置而定。
表名:Satellite_HistoryTraces
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 记录的唯一编号 | 必须 |
Satel_Id | Char(32) | 系统分配给卫星的唯一标识 | 必须 |
EpochTime | DateTime(3) | 该轨迹的星历时间 | 必须 |
Step | Int | 到下一个轨迹的间隔步长时间 | 必须 |
Value.ECI.X | Double | 必须 | |
Value.ECI.Y | Double | 必须 | |
Value.ECI.Z | Double | 必须 | |
Value.ECI.Vx | Double | 必须 | |
Value.ECI.Vy | Double | 必须 | |
Value.ECI.Vz | Double | 必须 | |
Value.ECEF.X | Double | 必须 | |
Value.ECEF.Y | Double | 必须 | |
Value.ECEF.Z | Double | 必须 | |
Value.ECEF.Vx | Double | 必须 | |
Value.ECEF.Vy | Double | 必须 | |
Value.ECEF.Vz | Double | 必须 | |
Value.Geo.X | Double | 必须 | |
Value.Geo.Y | Double | 必须 | |
Value.Geo.Z | Double | 必须 |
说明:该表用于存储地面站的相关信息。
表名:Station
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
OpenId | Char(32) | 本系统给信关站分配的唯一编号 | 必须 |
Name | Varchar2(36) | 地面信关站的名称 | 必须 |
Latitude | Double | 地面信关站的经度 | 可为空 |
Longitude | Double | 地面信关站的纬度 | 可为空 |
Altitude | Double | 地面信关站的高度 | 可为空 |
isMovable | Boolean | 是否为移动信关站 | 必须 |
Desc | Varchar2(256) | 星座的描述 | 可为空 |
说明:该表用于存储移动信关站位置表。
表名:Station_Location
字段設計:
字段名 | 類型 | 含義 | 説明 |
---|---|---|---|
Id | Char(32) | 记录唯一编号 | 必须 |
MoveTime | DateTime(3) | 位置时间 | 必须 |
Station_Id | Char(32) | 本系统给信关站分配的唯一编号 | 必须 |
Latitude | Double | 地面信关站的经度 | 必须 |
Longitude | Double | 地面信关站的纬度 | 必须 |
Altitude | Double | 地面信关站的高度 | 必须 |
该数据表单对应的是配置微服务
归档与数据备份为独立的定时任务服务,通过绑定数据库,设置归档备份策略自动完成对业务数据的备份与归档,历史数据消除等操作,具体间归档与数据备份服务设计文档。
对本项目而言,对数据库备份涉及:
版本 | 数据库名 | 表名 | 作用 | 规则 | |
---|---|---|---|---|---|
1.0 | AGI卫星瞬根数据库 | 卫星历史轨道信息表 | 减少数据库数据量,提升检索效率 | 每月执行一次 | |