🛰️航天仿真算法库 SpaceAST
0.3.1
载入中...
搜索中...
未找到
SatelliteDatabase.hpp
浏览该文件的文档.
1
21
22
23
#pragma once
24
25
#include "
Database.hpp
"
26
#include "AstUtil/StringView.hpp"
27
#include "AstCore/TimePoint.hpp"
28
#include <string>
29
#include <vector>
30
31
AST_NAMESPACE_BEGIN
32
38
class
SatelliteDatabaseEntry;
39
class
SatelliteDatabaseQuery;
40
class
TimePoint;
41
47
class
AST_CORE_API
SatelliteDatabase
:
public
Database
48
{
49
public
:
50
using
Entry
=
SatelliteDatabaseEntry
;
51
using
EntryList = std::vector<SatelliteDatabaseEntry>;
52
53
SatelliteDatabase
();
54
explicit
SatelliteDatabase
(
StringView
filePath);
55
~SatelliteDatabase
()
override
;
56
57
// -- 加载 --
58
errc_t load(
StringView
filePath);
59
errc_t reload();
60
bool
isLoaded()
const
{
return
loaded_; }
61
62
const
TimePoint
& lastUpdateTime()
const
{
return
lastUpdateTime_; }
63
64
// -- 底层查询 --
65
const
std::vector<std::string>& getMissions()
const
;
66
EntryList getEntries(
const
SatelliteDatabaseQuery
& query)
const
;
67
const
EntryList& getEntries()
const
;
68
size_t
size()
const
{
return
entries_.size(); }
69
70
const
std::string& filePath()
const
{
return
filePath_; }
71
72
private
:
73
void
refreshMissions();
74
76
errc_t loadSatcatFile(
StringView
filePath);
77
78
private
:
79
std::string filePath_{};
80
TimePoint
lastUpdateTime_{};
81
std::vector<SatelliteDatabaseEntry> entries_{};
82
std::vector<std::string> missions_{};
83
bool
loaded_{
false
};
84
};
85
86
/*
87
celestrak SATCAT Legacy Text Data Format
88
参考:https://celestrak.org/satcat/satcat-format.php
89
90
Legacy Text Data Format:
91
92
------------------------------------------------------------------------------------------------------------------------------------
93
Column
94
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111
95
000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111112222222222333
96
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
97
------------------------------------------------------------------------------------------------------------------------------------
98
yyyy-nnnaaa nnnnn M*O aaaaaaaaaaaaaaaaaaaaaaaa aaaaa yyyy-mm-dd aaaaa yyyy-mm-dd nnnnn.n nnn.n nnnnnn nnnnnn nnn.nnnn aaa
99
------------------------------------------------------------------------------------------------------------------------------------
100
Columns Description
101
001-011 International Designator
102
- Launch Year (001-004)
103
- Launch of the Year (006-008)
104
- Piece of the Launch (009-011)
105
014-018 NORAD Catalog Number
106
020-020 Multiple Name Flag ("M" if multiple names exist; alternate names found in satcat-annex.csv)
107
021-021 Payload Flag ("*" if payload; blank otherwise)
108
022-022 Operational Status Code
109
024-047 Satellite Name(s)
110
- R/B(1) = Rocket body, first stage
111
- R/B(2) = Rocket body, second stage
112
- DEB = Debris
113
- PLAT = Platform
114
- Items in parentheses are alternate names
115
- Items in brackets indicate type of object
116
(e.g., BREEZE-M DEB [TANK] = tank)
117
- An ampersand (&) indicates two or more objects are attached
118
050-054 Source or Ownership
119
057-066 Launch Date [year-month-day]
120
069-073 Launch Site
121
076-085 Decay Date, if applicable [year-month-day]
122
088-094 Orbital period [minutes]; truncated at 99999.9
123
097-101 Inclination [degrees]
124
104-109 Apogee Altitude [kilometers]; truncated at 999999
125
112-117 Perigee Altitude [kilometers]; truncated at 999999
126
120-127 Radar Cross Section [meters2]; N/A if no data available
127
130-132 Orbital Status Code
128
- NCE = No Current Elements
129
- NIE = No Initial Elements
130
- NEA = No Elements Available
131
- DOC = Permanently Docked
132
- ISS = Docked to International Space Station
133
- XXN = Central Body (XX) and Orbit Type (N)
134
- AS = Asteroid
135
- EA = Earth (default if blank)
136
- EL = Earth Lagrange
137
- EM = Earth-Moon Barycenter
138
- JU = Jupiter
139
- MA = Mars
140
- ME = Mercury
141
- MO = Moon (Earth)
142
- NE = Neptune
143
- PL = Pluto
144
- SA = Saturn
145
- SS = Solar System Escape
146
- SU = Sun
147
- UR = Uranus
148
- VE = Venus
149
- 0 = Orbit
150
- 1 = Landing
151
- 2 = Impact
152
- 3 = Roundtrip
153
(e.g., SU0 = Heliocentric Orbit, MO2 = Lunar Impact)
154
155
*/
156
159
AST_NAMESPACE_END
Database.hpp
数据库抽象基类
ast::Database
数据库抽象基类
定义
Database.hpp:36
ast::SatelliteDatabaseEntry
卫星数据库条目
定义
SatelliteDatabaseEntry.hpp:42
ast::SatelliteDatabaseQuery
卫星数据库查询条件
定义
SatelliteDatabaseQuery.hpp:40
ast::SatelliteDatabase
卫星数据库
定义
SatelliteDatabase.hpp:48
ast::StringViewBasic< char >
ast::TimePoint
绝对时间点
定义
TimePoint.hpp:108
src
AstCore
Database
SatelliteDatabase.hpp
制作者
1.12.0