Merge lp:~jlcanales-gasco/stellarium/satellite-plugin into lp:stellarium
- satellite-plugin
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~jlcanales-gasco/stellarium/satellite-plugin |
Merge into: | lp:stellarium |
Diff against target: |
12641 lines (+7295/-4004) 49 files modified
data/gui/nightStyle.css (+32/-61) data/gui/normalStyle.css (+28/-54) doc/builtinScriptFunctions.doxygen (+37/-0) doc/scripting.doxygen (+8/-1) plugins/Satellites/nightStyle.css (+0/-75) plugins/Satellites/normalStyle.css (+0/-75) plugins/Satellites/satellites.json (+1117/-910) plugins/Satellites/src/CMakeLists.txt (+26/-8) plugins/Satellites/src/Satellite.cpp (+224/-37) plugins/Satellites/src/Satellite.hpp (+43/-3) plugins/Satellites/src/Satellites.cpp (+1/-1) plugins/Satellites/src/Satellites.hpp (+1/-1) plugins/Satellites/src/gsatellite/gException.hpp (+44/-0) plugins/Satellites/src/gsatellite/gMatrix.cpp (+290/-0) plugins/Satellites/src/gsatellite/gMatrix.hpp (+86/-0) plugins/Satellites/src/gsatellite/gMatrixTempl.hpp (+117/-0) plugins/Satellites/src/gsatellite/gObserver.cpp (+88/-0) plugins/Satellites/src/gsatellite/gObserver.hpp (+114/-0) plugins/Satellites/src/gsatellite/gSatTEME.cpp (+156/-0) plugins/Satellites/src/gsatellite/gSatTEME.hpp (+128/-0) plugins/Satellites/src/gsatellite/gTime.cpp (+347/-0) plugins/Satellites/src/gsatellite/gTime.hpp (+329/-0) plugins/Satellites/src/gsatellite/gTimeSpan.cpp (+217/-0) plugins/Satellites/src/gsatellite/gVector.cpp (+105/-0) plugins/Satellites/src/gsatellite/gVector.hpp (+78/-0) plugins/Satellites/src/gsatellite/gVectorTempl.hpp (+107/-0) plugins/Satellites/src/gsatellite/mathUtils.cpp (+63/-0) plugins/Satellites/src/gsatellite/mathUtils.hpp (+42/-0) plugins/Satellites/src/gsatellite/sgp4ext.cpp (+724/-0) plugins/Satellites/src/gsatellite/sgp4ext.h (+97/-0) plugins/Satellites/src/gsatellite/sgp4io.cpp (+261/-0) plugins/Satellites/src/gsatellite/sgp4io.h (+46/-0) plugins/Satellites/src/gsatellite/sgp4unit.cpp (+2113/-0) plugins/Satellites/src/gsatellite/sgp4unit.h (+126/-0) plugins/Satellites/src/gsatellite/stdsat.h (+35/-0) plugins/Satellites/src/gui/SatellitesDialog.cpp (+13/-0) plugins/Satellites/src/gui/SatellitesDialog.hpp (+1/-0) plugins/Satellites/src/gui/satellitesDialog.ui (+14/-3) plugins/Satellites/src/sgp4sdp4/1_COPYING (+0/-25) plugins/Satellites/src/sgp4sdp4/2_README (+0/-167) plugins/Satellites/src/sgp4sdp4/README (+0/-7) plugins/Satellites/src/sgp4sdp4/sgp4sdp4.c (+0/-1072) plugins/Satellites/src/sgp4sdp4/sgp4sdp4.h (+0/-237) plugins/Satellites/src/sgp4sdp4/sgp_in.c (+0/-251) plugins/Satellites/src/sgp4sdp4/sgp_math.c (+0/-286) plugins/Satellites/src/sgp4sdp4/sgp_obs.c (+0/-214) plugins/Satellites/src/sgp4sdp4/sgp_time.c (+0/-428) plugins/Satellites/src/sgp4sdp4/solar.c (+0/-69) util/refactor.pl (+37/-19) |
To merge this branch: | bzr merge lp:~jlcanales-gasco/stellarium/satellite-plugin |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Matthew Gates | Pending | ||
J.L. Canales | Pending | ||
Bogdan Marinov | Pending | ||
Review via email: mp+39671@code.launchpad.net |
This proposal supersedes a proposal from 2010-10-09.
This proposal has been superseded by a proposal from 2010-11-04.
Commit message
Description of the change
SGP4/SDP4 core refactored to use the revised Spacetrack report N#3 (including Spacetrack report N#6). There is an inform about all the improvements in the next URL: http://
Main advantages of this code are:
- Better performance. The main computation process and the Kepler Equation resolution has been optimized.
- More precision. Some instabilities in the kepler equation and the integrals problems has been resolved too.
- Easy to use. I have wrapped the new SGP4/SDP4 code with an object oriented interface that aisle the Satellite class methods from the complexity of the SGP4/SDP4 functions.
Satellite sky-path drawing
This is a functionality asked by some friends that take CCD Astronomical photographs and needs to predict if a satellite cross the photographed field. This feature can be activated changing a flag (draworb) in the satellites.json file (similar as the visible flag).
This code has been tested in Ubuntu 10.04 LTS
Bogdan Marinov (daggerstab) wrote : Posted in a previous version of this proposal | # |
J.L. Canales (jlcanales-gasco) wrote : Posted in a previous version of this proposal | # |
Hi Bodgan,
I have fixed the problems with the base version. Now the source code is based in the Rev. No. 4766.
Additionaly, I have updated the satellite TLE data.
Regards,
Matthew Gates (matthew-porpoisehead) wrote : Posted in a previous version of this proposal | # |
I did a local merge of your code. It built and ran fine. Thank you
very much for your work - it looks very interesting.
Some comments:
1. Apart from the effort required, is there is good reason not recode
to use Stellarium's existing matrix classes instead of having another
set of matrix code?
2. The code formatting should be brought into conformity with the rest
of Stellarium's code. This includes indentation, variable names,
header #ifndef flags. The recode.pl script and astyle program make
this pretty quick to do.
3a. I would like to see the orbit lines fading in and out rather than
abruptly ending (progressively drop the alpha for the segments towards
the ends of the orbit lines).
3b. Orbit lines should be taken from the color in the satellites.json
file (I think they are all the same blue color at the moment?)
4. You wouldn't happen to have a method to determine the brightness of
a satellite would you (shadow & apparent magnitude when not is
shadow)? I imagine this would require some sort of size and/or albedo
data to be added to the satellites.json. If you have some code for
predicting Iridium flares that would be really amazing!
Matthew
On 9 October 2010 14:39, J.L. Canales <email address hidden> wrote:
> J.L. Canales has proposed merging lp:~jlcanales-gasco/stellarium/satellite-plugin into lp:stellarium.
>
> Requested reviews:
> Stellarium (stellarium)
>
>
> SGP4/SDP4 core refactored to use the revised Spacetrack report N#3 (including Spacetrack report N#6). There is an inform about all the improvements in the next URL: http://
>
> Main advantages of this code are:
> - Better performance. The main computation process and the Kepler Equation resolution has been optimized.
> - More precision. Some instabilities in the kepler equation and the integrals problems has been resolved too.
> - Easy to use. I have wrapped the new SGP4/SDP4 code with an object oriented interface that aisle the Satellite class methods from the complexity of the SGP4/SDP4 functions.
>
> Satellite sky-path drawing
> This is a functionality asked by some friends that take CCD Astronomical photographs and needs to predict if a satellite cross the photographed field. This feature can be activated changing a flag (draworb) in the satellites.json file (similar as the visible flag).
>
> This code has been tested in Ubuntu 10.04 LTS
> --
> https:/
> Your team Stellarium is requested to review the proposed merge of lp:~jlcanales-gasco/stellarium/satellite-plugin into lp:stellarium.
J.L. Canales (jlcanales-gasco) wrote : Posted in a previous version of this proposal | # |
Hi Matthew,
Thank you for your comments, I will answer your questions.
>
> 1. Apart from the effort required, is there is good reason not recode
> to use Stellarium's existing matrix classes instead of having another
> set of matrix code?
I use this classes because I am reusing code from other of my projects originally based on
stl library. There aren't any technical reason, so it can be refactored using Stellarium's and QT's classes.
>
> 2. The code formatting should be brought into conformity with the rest
> of Stellarium's code. This includes indentation, variable names,
> header #ifndef flags. The recode.pl script and astyle program make
> this pretty quick to do.
OK, I'll do it.
>
> 3a. I would like to see the orbit lines fading in and out rather than
> abruptly ending (progressively drop the alpha for the segments towards
> the ends of the orbit lines).
Nice visual effect, I'll try to get it..
>
> 3b. Orbit lines should be taken from the color in the satellites.json
> file (I think they are all the same blue color at the moment?)
Ok, I'll do it..
>
> 4. You wouldn't happen to have a method to determine the brightness of
> a satellite would you (shadow & apparent magnitude when not is
> shadow)? I imagine this would require some sort of size and/or albedo
> data to be added to the satellites.json. If you have some code for
> predicting Iridium flares that would be really amazing!
I started to study how to model Iridium flares some time ago. It's not easy to find equations to predict it. Nevertheless, I found a java open source code (iridiumflares.
Regards,
Matthew Gates (matthew-porpoisehead) wrote : Posted in a previous version of this proposal | # |
I look forward to seeing your changes.
Matthew Gates (matthew-porpoisehead) wrote : Posted in a previous version of this proposal | # |
I've made a change to the default satellites.json, and to Satellites.cpp. This should fix the missing group values. You'll need to merge this into your branch.
P.S. I changed the draorb key in the json file to draw_orbit, which I feel is easier to understand. You should change your code accordingly. Thanks.
Matthew Gates (matthew-porpoisehead) wrote : Posted in a previous version of this proposal | # |
Actually... I created my own branch which is trunk with your changes merged and a few extras from me. http://
J.L. Canales (jlcanales-gasco) wrote : Posted in a previous version of this proposal | # |
> Actually... I created my own branch which is trunk with your changes merged
> and a few extras from me. http://
> porpoisehead/
Thanks, I'm merging your improvements to be synchronized.
J.L. Canales (jlcanales-gasco) wrote : Posted in a previous version of this proposal | # |
I believe your solution to implement orbit lines fading in and out is better than mine, so I merged it in my branch.
We have developed the 3a and 3b points of your previous comment. Now, I'm dealing with points 2 and 1.
Matthew Gates (matthew-porpoisehead) wrote : Posted in a previous version of this proposal | # |
I made it a bit more efficient by making only a single call to drawFromArray for the center segments of the line which are all the same color.
I also reformatted some of the gSatellite code to match the Stellarium coding standards better.
Please pull the changes from my branch and if you're happy with it make another merge proposal thing for lp:stellarium. I can do it myself from my branch, but I would prefer for you to get the commit credit :-)
J.L. Canales (jlcanales-gasco) wrote : Posted in a previous version of this proposal | # |
Many thanks,
I'll execute my unit tests to validate the changes and I'll propose another merge...
> I made it a bit more efficient by making only a single call to drawFromArray
> for the center segments of the line which are all the same color.
>
> I also reformatted some of the gSatellite code to match the Stellarium coding
> standards better.
>
> Please pull the changes from my branch and if you're happy with it make
> another merge proposal thing for lp:stellarium. I can do it myself from my
> branch, but I would prefer for you to get the commit credit :-)
- 4775. By J.L. Canales
-
FIX: Use Orbit Color seting up in satelites.json. Before this fix, orbit color was always equal to hint color
- 4776. By J.L. Canales
-
merge Matthew stylesheet and satellite dialog changes
- 4777. By J.L. Canales
-
Optimized use of setVertexArray in Satellite:
:drawOrbit method - 4778. By J.L. Canales
-
Rendering of the orbits goes funny with non-stereo projection modes
- 4779. By J.L. Canales
-
[merge] Updated Author list; my e-mail included
- 4780. By J.L. Canales
-
merge Matthew Gates drawo orbit lines optimization and night style available
- 4781. By J.L. Canales
-
merge trunk changes rev. 4797
- 4782. By J.L. Canales
-
merge trunk rev 4806
- 4783. By J.L. Canales
-
Fix: Orbit line little bit off satellite icon
- 4784. By J.L. Canales
-
rebase trunk changes rev 4808
- 4785. By J.L. Canales
-
Rebase code from trunk Rev. 4821
- 4786. By J.L. Canales
-
Fix: First point of orbit line bad sited when time jumps more than orbitLineSegmen
ts*orbitLineSeg mentDuration - 4787. By J.L. Canales
-
Fix: breaking the smooth fade at the leading edge of the orbit line.
- 4788. By J.L. Canales
-
Rebase trunk code Rev 4856. Unuseless gSatellite code removed. gSatStelWrapper declared
- 4789. By J.L. Canales
-
SubPoint calculation gSatTEME inteface change to make easier wrapper implementation
- 4790. By J.L. Canales
-
gSatStelWrapper methods getTEMEPos, getTEMEVel, getSubPoint methods implemented
- 4791. By J.L. Canales
-
gSatStelWrapper getAltAz method implemented
- 4792. By J.L. Canales
-
Satellite class working with gSatStelWrapper. Orbit lines disabled, not refactored yet
- 4793. By J.L. Canales
-
Orbit lines code refactored. Using gTime classto time management
- 4794. By J.L. Canales
-
Clean unused files. gObserver class
- 4795. By J.L. Canales
-
Code standars application
- 4796. By J.L. Canales
-
gSatStelWrapper name changed to adapt to naming structure of other wrappers in stellarium. (starWraper)
- 4797. By J.L. Canales
-
Implemented Visibility prediction method in gSatWrapper class
- 4798. By J.L. Canales
-
Rebase trunk code Rev. 4875
- 4799. By J.L. Canales
-
Fix: redraw orbit lines after load new TLE data
- 4800. By J.L. Canales
-
Fix: Bug updating tle data in satelites.json
- 4801. By J.L. Canales
-
clean useless code
- 4802. By J.L. Canales
-
Fix: Problem detecting when the site is in dark earth side. Code formated folowing standarts
- 4803. By J.L. Canales
-
Fix: Satellite AlAz pos calculation bug.
- 4804. By J.L. Canales
-
merge with trunk rev. 4878
- 4805. By J.L. Canales
-
Update satellites and TLE in satellite.json
- 4806. By J.L. Canales
-
Updated GPS frecuencies with Lennert Buytenhek information
- 4807. By J.L. Canales
-
Set variables name accord to stellarium standarts
- 4808. By J.L. Canales
-
foreach clauses optimization
- 4809. By J.L. Canales
-
rebase trunk ver.4886
- 4810. By J.L. Canales
-
TLE data in satelites.json actualized
Unmerged revisions
Preview Diff
1 | === modified file 'data/gui/nightStyle.css' |
2 | --- data/gui/nightStyle.css 2010-11-02 20:01:10 +0000 |
3 | +++ data/gui/nightStyle.css 2010-11-04 00:01:48 +0000 |
4 | @@ -382,74 +382,45 @@ |
5 | |
6 | /********************************************TabWidget*****************************************************/ |
7 | |
8 | -QTabWidget { |
9 | - background: rgba(0, 0, 0, 0%); |
10 | -} |
11 | - |
12 | -QTabWidget::pane { |
13 | - margin-top: 12px; |
14 | - border-top: 1px solid rgb(0, 0, 0); |
15 | - background: rgba(0, 0, 0, 0%); |
16 | -} |
17 | - |
18 | QTabWidget::tab-bar { |
19 | - background: rgba(0, 0, 0, 0%); |
20 | - width: 1000px; |
21 | + /*width: 1000px;*/ |
22 | + /* Used as a workaround to set the background of |
23 | + the space between the last tab (normally the rightmost one |
24 | + and the end of the window. Not necessary if |
25 | + QTabWidget::documentMode is set to 'true'.*/ |
26 | } |
27 | |
28 | QTabBar { |
29 | - background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgb(23, 0, 0), stop: 1 rgb(0, 0, 0)); |
30 | + margin: 0px; |
31 | + padding: 0px; |
32 | + font-weight: bold; |
33 | + color: rgb(120, 0, 0); |
34 | + background-color: rgb(22, 0, 0); |
35 | + font-size: 14px; |
36 | + /* Don't put font-size in QTabBar::tab, as it causes the tab |
37 | + labels to be cut by the frame. */ |
38 | } |
39 | |
40 | QTabBar::tab { |
41 | - font: bold; |
42 | - background: rgba(0, 0, 0, 0%); |
43 | - border: 1px solid rgba(0, 0, 0, 0%); |
44 | - border-top: none; |
45 | - border-bottom: none; |
46 | - min-width: 10ex; |
47 | - min-height: 56px; |
48 | - padding: 6px 0px 0px 0px; |
49 | - color: rgb(122, 0, 0); |
50 | - font-size: 12px; |
51 | - margin-left: 5px; |
52 | - margin-right: 5px; |
53 | -} |
54 | - |
55 | -/*QTabWidget::left-corner { |
56 | - |
57 | -}*/ |
58 | - |
59 | -QTabBar::tab:hover { |
60 | - |
61 | -} |
62 | - |
63 | -QTabBar::tab:selected { |
64 | - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(70, 0, 0, 0%), stop: 1 rgba(88, 0, 0, 0%)); |
65 | - border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(0, 0, 0, 0%), stop: 0.5 rgb(136, 0, 0), stop: 1 rgba(0, 0, 0, 0%)); |
66 | - border-top: none; |
67 | - border-bottom: none; |
68 | -} |
69 | - |
70 | -/*QTabBar::tab:!selected { |
71 | - |
72 | -} |
73 | - |
74 | -QTabBar::tab:selected { |
75 | - |
76 | -}*/ |
77 | - |
78 | -QTabBar::tab:first { |
79 | - margin-left: 11; |
80 | -} |
81 | - |
82 | -QTabBar::tab:last { |
83 | - margin-right: 0; |
84 | -} |
85 | - |
86 | -/*QTabBar::tab:only-one { |
87 | - |
88 | -}*/ |
89 | + border: none; |
90 | + margin: 0px; |
91 | + padding: 1ex 2ex; |
92 | + min-height: 28px; |
93 | +} |
94 | + |
95 | +QTabBar::tab:selected { |
96 | + border: none; |
97 | + margin: 0px; |
98 | + border-top-left-radius: 10px; |
99 | + border-top-right-radius: 10px; |
100 | + color: rgb(220, 0, 0); |
101 | + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgb(86, 0, 0), stop: 1 rgb(61, 0, 0)); |
102 | +} |
103 | + |
104 | +QTabBar QToolButton { |
105 | + border: none; |
106 | + background-color: rgb(22, 0, 0); |
107 | +} |
108 | |
109 | QListView { |
110 | font-size: 14px; |
111 | |
112 | === modified file 'data/gui/normalStyle.css' |
113 | --- data/gui/normalStyle.css 2010-11-02 20:01:10 +0000 |
114 | +++ data/gui/normalStyle.css 2010-11-04 00:01:48 +0000 |
115 | @@ -382,70 +382,44 @@ |
116 | |
117 | /********************************************TabWidget*****************************************************/ |
118 | |
119 | -QTabWidget { |
120 | - background: rgba(0, 0, 0, 0%); |
121 | -} |
122 | - |
123 | -QTabWidget::pane { |
124 | - margin-top: 12px; |
125 | - border-top: 1px solid rgb(0, 0, 0); |
126 | - background: rgba(0, 0, 0, 0%); |
127 | -} |
128 | - |
129 | QTabWidget::tab-bar { |
130 | - background: rgba(0, 0, 0, 0%); |
131 | - width: 1000px; |
132 | + /*width: 1000px;*/ |
133 | + /* Used as a workaround to set the background of |
134 | + the space between the last tab (normally the rightmost one |
135 | + and the end of the window. Not necessary if |
136 | + QTabWidget::documentMode is set to 'true'.*/ |
137 | } |
138 | |
139 | QTabBar { |
140 | - background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgb(31, 33, 36), stop: 1 rgb(0, 0, 0)); |
141 | + margin: 0px; |
142 | + padding: 0px; |
143 | + font-weight: bold; |
144 | + color: rgb(170, 173, 164); |
145 | + background-color: rgb(31, 31, 31); |
146 | + font-size: 14px; |
147 | + /* Don't put font-size in QTabBar::tab, as it causes the tab |
148 | + labels to be cut by the frame. */ |
149 | } |
150 | |
151 | QTabBar::tab { |
152 | - font: bold; |
153 | - background: rgba(0, 0, 0, 0%); |
154 | - border: 1px solid rgba(0, 0, 0, 0%); |
155 | - border-top: none; |
156 | - border-bottom: none; |
157 | - min-width: 10ex; |
158 | - min-height: 56px; |
159 | - padding: 1px 5px 1px -3px; |
160 | - color: rgb(174, 174, 175); |
161 | - font-size: 12px; |
162 | - margin-left: 5px; |
163 | - margin-right: 5px; |
164 | -} |
165 | - |
166 | -/*QTabWidget::left-corner { |
167 | - |
168 | -}*/ |
169 | - |
170 | -QTabBar::tab:hover { |
171 | - |
172 | + border: none; |
173 | + margin: 0px; |
174 | + padding: 1ex 2ex; |
175 | + min-height: 28px; |
176 | } |
177 | |
178 | QTabBar::tab:selected { |
179 | - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(100, 101, 102, 0%), stop: 1 rgba(124, 126, 127, 0%)); |
180 | - border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(0, 0, 0, 0%), stop: 0.5 rgb(188, 196, 201), stop: 1 rgba(0, 0, 0, 0%)); |
181 | - border-top: none; |
182 | - border-bottom: none; |
183 | -} |
184 | - |
185 | -/*QTabBar::tab:!selected { |
186 | - |
187 | -}*/ |
188 | - |
189 | -QTabBar::tab:first { |
190 | - margin-left: 11; |
191 | -} |
192 | - |
193 | -QTabBar::tab:last { |
194 | - margin-right: 0; |
195 | -} |
196 | - |
197 | -/*QTabBar::tab:only-one { |
198 | - |
199 | -}*/ |
200 | + border: none; |
201 | + margin: 0px; |
202 | + border-top-left-radius: 10px; |
203 | + border-top-right-radius: 10px; |
204 | + color: rgb(220, 223, 214); |
205 | + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgb(68, 69, 72), stop: 1 rgb(86, 87, 90)); |
206 | +} |
207 | + |
208 | +QTabBar QToolButton { |
209 | + background-color: rgb(31, 31, 31); |
210 | +} |
211 | |
212 | QListView { |
213 | font-size: 14px; |
214 | |
215 | === added file 'doc/builtinScriptFunctions.doxygen' |
216 | --- doc/builtinScriptFunctions.doxygen 1970-01-01 00:00:00 +0000 |
217 | +++ doc/builtinScriptFunctions.doxygen 2010-11-04 00:01:48 +0000 |
218 | @@ -0,0 +1,37 @@ |
219 | +/* |
220 | + * Stellarium |
221 | + * Copyright (C) 2010 Matthew Gates |
222 | + * |
223 | + * This program is free software; you can redistribute it and/or |
224 | + * modify it under the terms of the GNU General Public License |
225 | + * as published by the Free Software Foundation; either version 2 |
226 | + * of the License, or (at your option) any later version. |
227 | + * |
228 | + * This program is distributed in the hope that it will be useful, |
229 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
230 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
231 | + * GNU General Public License for more details. |
232 | + * |
233 | + * You should have received a copy of the GNU General Public License |
234 | + * along with this program; if not, write to the Free Software |
235 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
236 | + */ |
237 | + |
238 | +/*! |
239 | + |
240 | +@page builtinScriptFunctions Built in Script Functions |
241 | + |
242 | +<B>waitFor(dt, spec="utc")</B> |
243 | + |
244 | +Waits until a specified simulation date/time. |
245 | + |
246 | +This function will take into account the rate (and direction) in which simulation |
247 | +time is passing. e.g. if a future date is specified and the time is moving backwards, |
248 | +the function will return immediately. If the time rate is 0, the function will not |
249 | +wait. This is to prevent infinite wait time. |
250 | + |
251 | +Parameters: |
252 | + - dt : the date string to use |
253 | + - spec : "local" or "utc". |
254 | + |
255 | +*/ |
256 | |
257 | === modified file 'doc/scripting.doxygen' |
258 | --- doc/scripting.doxygen 2010-05-19 06:40:34 +0000 |
259 | +++ doc/scripting.doxygen 2010-11-04 00:01:48 +0000 |
260 | @@ -1,6 +1,6 @@ |
261 | /* |
262 | * Stellarium |
263 | - * Copyright (C) 2009 Matthew Gates |
264 | + * Copyright (C) 2010 Matthew Gates |
265 | * |
266 | * This program is free software; you can redistribute it and/or |
267 | * modify it under the terms of the GNU General Public License |
268 | @@ -75,6 +75,13 @@ |
269 | - StelSkyDrawer |
270 | - StelSkyLayerMgr |
271 | |
272 | +@section built_in_script_functions Built in Script Functions |
273 | + |
274 | +In addition to the public slots of the classes described above, some functionality |
275 | +is provided by functions implemented within the scripting language. These are |
276 | +made available from the core object, and are similar in operation to the |
277 | +public slots of StelMainScriptAPI. See @ref builtinScriptFunctions for details. |
278 | + |
279 | @section script_console Script Console |
280 | |
281 | Note: The Script Console has been enabled by default since version 0.10.5. |
282 | |
283 | === modified file 'plugins/Satellites/nightStyle.css' |
284 | --- plugins/Satellites/nightStyle.css 2010-03-26 22:32:05 +0000 |
285 | +++ plugins/Satellites/nightStyle.css 2010-11-04 00:01:48 +0000 |
286 | @@ -9,78 +9,3 @@ |
287 | alternate-background-color: rgba(150, 0, 0, 20%) |
288 | } |
289 | |
290 | -QToolBox { |
291 | - margin-right: 10px; |
292 | - margin-left: 10px; |
293 | - margin-top: 10px; |
294 | - margin-bottom: 10px; |
295 | - background-color: transparent; |
296 | - font-weight: bold; |
297 | -} |
298 | - |
299 | -QToolBox > QWidget { |
300 | - background-color: rgba(105, 0, 0, 20%); |
301 | -} |
302 | - |
303 | -QToolBox::tab { |
304 | - padding-left: 10px; |
305 | - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgb(32, 0, 0), stop:1 rgb(23, 0, 0)); |
306 | -} |
307 | - |
308 | -QToolBox::tab:first { |
309 | - border-top-left-radius: 10px; |
310 | - border-top-right-radius: 10px; |
311 | -} |
312 | - |
313 | -QToolBox::tab:middle { |
314 | - /*border-radius: 10px;*/ |
315 | -} |
316 | - |
317 | -QToolBox::tab:last { |
318 | - border-bottom-left-radius: 10px; |
319 | - border-bottom-right-radius: 10px; |
320 | -} |
321 | - |
322 | -QToolBox::tab:selected { |
323 | - border-bottom-left-radius: 0px; |
324 | - border-bottom-right-radius: 0px; |
325 | -} |
326 | - |
327 | -QToolBox::tab::title { |
328 | - image: none; |
329 | - subcontrol-position: top left; |
330 | - subcontrol-origin: margin; |
331 | - color: rgb(122, 0, 0); |
332 | -} |
333 | - |
334 | -QTabBar { |
335 | - border: none; |
336 | - margin: 0px; |
337 | - padding: 0px; |
338 | - font-weight: bold; |
339 | - color: rgb(120, 0, 0); |
340 | - background-color: rgb(22, 0, 0); |
341 | -} |
342 | - |
343 | -QTabBar::tab { |
344 | - border: none; |
345 | - margin: 0px; |
346 | - padding: 4px; |
347 | - min-height: 24px; |
348 | - min-width: 0px; |
349 | - font-size: 14px; |
350 | -} |
351 | - |
352 | -QTabBar::tab:selected { |
353 | - border: none; |
354 | - margin: 0px; |
355 | - border-top-left-radius: 10px; |
356 | - border-top-right-radius: 10px; |
357 | - color: rgb(220, 0, 0); |
358 | - background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgb(68, 0, 0), stop: 1 rgb(86, 0, 0)); |
359 | -} |
360 | - |
361 | -QTabWidget::pane { |
362 | - margin-top: 0px; |
363 | - border-top: none; |
364 | -} |
365 | |
366 | === modified file 'plugins/Satellites/normalStyle.css' |
367 | --- plugins/Satellites/normalStyle.css 2010-03-26 22:32:05 +0000 |
368 | +++ plugins/Satellites/normalStyle.css 2010-11-04 00:01:48 +0000 |
369 | @@ -9,78 +9,3 @@ |
370 | alternate-background-color: rgba(149, 150, 152, 20%) |
371 | } |
372 | |
373 | -QToolBox { |
374 | - margin-right: 10px; |
375 | - margin-left: 10px; |
376 | - margin-top: 10px; |
377 | - margin-bottom: 10px; |
378 | - background-color: transparent; |
379 | - font-weight: bold; |
380 | -} |
381 | - |
382 | -QToolBox > QWidget { |
383 | - background-color: rgba(149, 150, 152, 20%); |
384 | -} |
385 | - |
386 | -QToolBox::tab { |
387 | - padding-left: 10px; |
388 | - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgb(41, 47, 50), stop:1 rgb(31, 33, 36)); |
389 | -} |
390 | - |
391 | -QToolBox::tab:first { |
392 | - border-top-left-radius: 10px; |
393 | - border-top-right-radius: 10px; |
394 | -} |
395 | - |
396 | -QToolBox::tab:middle { |
397 | - /*border-radius: 10px;*/ |
398 | -} |
399 | - |
400 | -QToolBox::tab:last { |
401 | - border-bottom-left-radius: 10px; |
402 | - border-bottom-right-radius: 10px; |
403 | -} |
404 | - |
405 | -QToolBox::tab:selected { |
406 | - border-bottom-left-radius: 0px; |
407 | - border-bottom-right-radius: 0px; |
408 | -} |
409 | - |
410 | -QToolBox::tab::title { |
411 | - image: none; |
412 | - subcontrol-position: top left; |
413 | - subcontrol-origin: margin; |
414 | - color: rgb(174, 174, 175); |
415 | -} |
416 | - |
417 | -QTabBar { |
418 | - border: none; |
419 | - margin: 0px; |
420 | - padding: 0px; |
421 | - font-weight: bold; |
422 | - color: rgb(170, 173, 164); |
423 | - background-color: rgb(31, 31, 31); |
424 | -} |
425 | - |
426 | -QTabBar::tab { |
427 | - border: none; |
428 | - margin: 0px; |
429 | - padding: 4px; |
430 | - min-height: 24px; |
431 | - min-width: 0px; |
432 | - font-size: 14px; |
433 | -} |
434 | - |
435 | -QTabBar::tab:selected { |
436 | - border: none; |
437 | - margin: 0px; |
438 | - border-top-left-radius: 10px; |
439 | - border-top-right-radius: 10px; |
440 | - color: rgb(220, 223, 214); |
441 | - background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgb(68, 69, 72), stop: 1 rgb(86, 87, 90)); |
442 | -} |
443 | - |
444 | -QTabWidget::pane { |
445 | - margin-top: 0px; |
446 | - border-top: none; |
447 | -} |
448 | |
449 | === modified file 'plugins/Satellites/satellites.json' |
450 | --- plugins/Satellites/satellites.json 2010-10-27 15:28:33 +0000 |
451 | +++ plugins/Satellites/satellites.json 2010-11-04 00:01:48 +0000 |
452 | @@ -1,187 +1,39 @@ |
453 | { |
454 | "creator": "Satellites plugin (update)", |
455 | "hintColor": [0, 0.5, 0.5], |
456 | + "orbitColor": [0, 0.5, 0.5], |
457 | "satellites": |
458 | { |
459 | "AAU CUBESAT": |
460 | { |
461 | "comms": [], |
462 | - "tle1": "1 27846U 03031G 10010.54313843 .00000017 00000-0 28199-4 0 6580", |
463 | - "tle2": "2 27846 98.7035 22.6880 0008761 245.5711 114.4553 14.21010978338790", |
464 | - "draw_orbit": false, |
465 | - "visible": false |
466 | - }, |
467 | - "PHASE 3B (AO-10)": |
468 | - { |
469 | - "description": "Amateur satellite", |
470 | - "groups": ["amateur", "non-operational"], |
471 | - "tle1": "1 14129U 83058B 09080.32998673 -.00000327 00000-0 10000-3 0 6360", |
472 | - "tle2": "2 14129 25.9652 165.8235 5982871 207.6161 100.7646 2.05871463165845", |
473 | - "draw_orbit": false, |
474 | - "visible": false |
475 | - }, |
476 | - "PACSAT (AO-16)": |
477 | - { |
478 | - "description": "Amateur satellite", |
479 | - "groups": ["amateur", "non-operational"], |
480 | - "tle1": "1 20439U 90005D 09080.85236265 .00000014 00000-0 20602-4 0 5632", |
481 | - "tle2": "2 20439 98.2700 53.2702 0011918 71.1776 289.0705 14.31818920 653", |
482 | - "draw_orbit": false, |
483 | + "groups": [], |
484 | + "orbitColor": [0, 0.5, 0.5], |
485 | + "orbitVisible": false, |
486 | + "tle1": "1 27846U 03031G 10303.03016006 .00000072 00000-0 53111-4 0 8620", |
487 | + "tle2": "2 27846 98.7018 310.8864 0009831 116.6931 243.5240 14.21061067380335", |
488 | "visible": false |
489 | }, |
490 | "ARSENE (AO-24)": |
491 | { |
492 | - "description": "Amateur satellite", |
493 | - "groups": ["amateur", "non-operational"], |
494 | - "tle1": "1 22654U 93031B 09078.43825483 -.00000132 00000-0 10000-3 0 2462", |
495 | - "tle2": "2 22654 5.1398 339.1447 2877460 155.4874 221.3758 1.42205192 77846", |
496 | - "draw_orbit": false, |
497 | - "visible": false |
498 | - }, |
499 | - "EYESAT-1 (AO-27)": |
500 | - { |
501 | - "comms": [ |
502 | - { |
503 | - "description": "uplink", |
504 | - "frequency": 145.85 |
505 | - }, |
506 | - { |
507 | - "description": "downlink", |
508 | - "frequency": 145.2 |
509 | - }], |
510 | - "description": "Amateur satellite", |
511 | - "groups": ["amateur"], |
512 | - "tle1": "1 22825U 93061C 09080.84794649 .00000017 00000-0 23242-4 0 2051", |
513 | - "tle2": "2 22825 98.4253 37.0634 0008629 156.2036 203.9551 14.29261103807439", |
514 | - "draw_orbit": false, |
515 | - "visible": true |
516 | - }, |
517 | - "PHASE 3D (AO-40)": |
518 | - { |
519 | - "comms": [ |
520 | - { |
521 | - "description": "Beacon", |
522 | - "frequency": 145.898 |
523 | - }], |
524 | - "description": "AMSAT-OSCAR 40 (Phase 3D)", |
525 | - "groups": ["amateur"], |
526 | - "tle1": "1 26609U 00072B 09080.26545799 -.00000301 00000-0 10000-3 0 2044", |
527 | - "tle2": "2 26609 8.9892 27.3596 7956558 186.7198 145.1448 1.25584591 38523", |
528 | - "draw_orbit": false, |
529 | - "visible": true |
530 | - }, |
531 | - "OSCAR 5 (AO-5)": |
532 | - { |
533 | - "description": "Amateur satellite", |
534 | - "groups": ["amateur", "non-operational"], |
535 | - "tle1": "1 04321U 70008B 09080.96250683 -.00000031 00000-0 10000-3 0 1420", |
536 | - "tle2": "2 04321 102.1329 90.4257 0027646 145.0891 215.1997 12.52156131789847", |
537 | - "draw_orbit": false, |
538 | - "visible": false |
539 | - }, |
540 | - "ECHO (AO-51)": |
541 | - { |
542 | - "comms": [ |
543 | - { |
544 | - "description": "uplink", |
545 | - "frequency": 145.92, |
546 | - "modulation": "FM/Voice" |
547 | - }, |
548 | - { |
549 | - "description": "downlink", |
550 | - "frequency": 435.15, |
551 | - "modulation": "FM/Voice" |
552 | - }], |
553 | - "description": "Amateur satellite", |
554 | - "groups": ["amateur"], |
555 | - "tle1": "1 28375U 04025K 09080.66057599 .00000001 00000-0 12813-4 0 3455", |
556 | - "tle2": "2 28375 98.0561 95.3557 0085140 31.1071 329.5121 14.40636066248352", |
557 | - "draw_orbit": false, |
558 | - "visible": true |
559 | - }, |
560 | - "OSCAR 6 (AO-6)": |
561 | - { |
562 | - "description": "Amateur satellite", |
563 | - "groups": ["amateur", "non-operational"], |
564 | - "tle1": "1 06236U 72082B 09080.97286453 -.00000027 00000-0 10000-3 0 1476", |
565 | - "tle2": "2 06236 101.4018 97.8648 0004124 61.3429 298.8059 12.53076701666485", |
566 | - "draw_orbit": false, |
567 | - "visible": false |
568 | - }, |
569 | - "OSCAR 7 (AO-7)": |
570 | - { |
571 | - "comms": [ |
572 | - { |
573 | - "description": "200mW Beacon used with Modes B & C", |
574 | - "frequency": 145.972 |
575 | - }, |
576 | - { |
577 | - "description": "downlink", |
578 | - "frequency": 145.95, |
579 | - "modulation": "Modes B & C" |
580 | - }, |
581 | - { |
582 | - "description": "uplink", |
583 | - "frequency": 145.9, |
584 | - "modulation": "Mode A" |
585 | - }, |
586 | - { |
587 | - "description": "downlink", |
588 | - "frequency": 29.45, |
589 | - "modulation": "Mode A" |
590 | - }, |
591 | - { |
592 | - "description": "200mW Beacon used with Mode A", |
593 | - "frequency": 29.502 |
594 | - }, |
595 | - { |
596 | - "frequency": 2304.1, |
597 | - "modulation": "40 mW Beacon - only when commanded" |
598 | - }, |
599 | - { |
600 | - "description": "uplink", |
601 | - "frequency": 432.15, |
602 | - "modulation": "Modes B & C" |
603 | - }], |
604 | - "description": "AMSAT-OSCAR 7 (Phase-IIB)", |
605 | - "groups": ["amateur"], |
606 | - "tle1": "1 07530U 74089B 09081.09982174 -.00000027 00000-0 10000-3 0 4327", |
607 | - "tle2": "2 07530 101.4356 108.9488 0012080 79.3798 280.8632 12.53575454571800", |
608 | - "draw_orbit": false, |
609 | - "visible": true |
610 | - }, |
611 | - "OSCAR 8 (AO-8)": |
612 | - { |
613 | - "description": "Amateur satellite", |
614 | - "groups": ["amateur", "non-operational"], |
615 | - "tle1": "1 10703U 78026B 09081.15228109 .00000030 00000-0 50534-4 0 4427", |
616 | - "tle2": "2 10703 98.8443 129.5050 0007638 50.2967 309.8869 13.98840358583855", |
617 | - "draw_orbit": false, |
618 | + "comms": [], |
619 | + "groups": ["amateur", "non-operational"], |
620 | + "orbitColor": [0, 0.5, 0.5], |
621 | + "orbitVisible": false, |
622 | + "tle1": "1 22654U 93031B 10296.29188703 -.00000103 00000-0 10000-3 0 4131", |
623 | + "tle2": "2 22654 4.6448 327.4414 2846429 190.3502 161.8369 1.42205681 86138", |
624 | "visible": false |
625 | }, |
626 | "CANX-1": |
627 | { |
628 | "comms": [], |
629 | - "tle1": "1 27847U 03031H 10010.55450479 .00000005 00000-0 22661-4 0 6786", |
630 | - "tle2": "2 27847 98.7031 22.6860 0008813 243.1062 116.9211 14.20990414338740", |
631 | - "draw_orbit": false, |
632 | + "groups": [], |
633 | + "orbitColor": [0, 0.5, 0.5], |
634 | + "orbitVisible": false, |
635 | + "tle1": "1 27847U 03031H 10301.49689319 .00000073 00000-0 53616-4 0 8814", |
636 | + "tle2": "2 27847 98.7006 309.3586 0009858 121.5158 238.6993 14.21038584380060", |
637 | "visible": false |
638 | }, |
639 | - "CUTE-1 (CO-55)": |
640 | - { |
641 | - "comms": [ |
642 | - { |
643 | - "description": "downlink", |
644 | - "frequency": 437.4, |
645 | - "modulation": "AFSK 1200 bps" |
646 | - }], |
647 | - "description": "Amateur satellite", |
648 | - "groups": ["amateur"], |
649 | - "tle1": "1 27844U 03031E 09080.51717845 .00000023 00000-0 31209-4 0 5380", |
650 | - "tle2": "2 27844 98.7159 90.9149 0010677 40.0025 320.1937 14.20627455296817", |
651 | - "draw_orbit": false, |
652 | - "visible": true |
653 | - }, |
654 | "CUBESAT XI-IV (CO-57)": |
655 | { |
656 | "comms": [ |
657 | @@ -190,11 +42,11 @@ |
658 | "frequency": 437.49, |
659 | "modulation": "AFSK 1200 bps" |
660 | }], |
661 | - "description": "Amateur satellite", |
662 | "groups": ["amateur"], |
663 | - "tle1": "1 27848U 03031J 09080.55297394 .00000015 00000-0 27156-4 0 4858", |
664 | - "tle2": "2 27848 98.7176 90.0128 0010577 41.9374 318.2624 14.20430987296783", |
665 | - "draw_orbit": false, |
666 | + "orbitColor": [0, 0.5, 0.5], |
667 | + "orbitVisible": false, |
668 | + "tle1": "1 27848U 03031J 10302.02471669 .00000092 00000-0 63155-4 0 9149", |
669 | + "tle2": "2 27848 98.7153 308.2095 0009735 145.0105 215.1692 14.20530401380042", |
670 | "visible": true |
671 | }, |
672 | "CUBESAT XI-V (CO-58)": |
673 | @@ -205,21 +57,27 @@ |
674 | "frequency": 437.345, |
675 | "modulation": "AFSK 1200 bps" |
676 | }], |
677 | - "description": "Amateur satellite", |
678 | "groups": ["amateur"], |
679 | - "tle1": "1 28895U 05043F 09080.73753781 .00000170 00000-0 45254-4 0 2627", |
680 | - "tle2": "2 28895 98.0694 333.7523 0016860 260.8704 99.0653 14.59751404180971", |
681 | - "draw_orbit": false, |
682 | + "orbitColor": [0, 0.5, 0.5], |
683 | + "orbitVisible": false, |
684 | + "tle1": "1 28895U 05043F 10303.20603507 -.00000035 00000-0 20959-5 0 7171", |
685 | + "tle2": "2 28895 97.9929 183.0586 0017263 218.8164 141.1799 14.59953882266683", |
686 | "visible": true |
687 | }, |
688 | - "DOVE (DO-17)": |
689 | + "CUTE-1 (CO-55)": |
690 | { |
691 | - "description": "Amateur satellite", |
692 | - "groups": ["amateur", "non-operational"], |
693 | - "tle1": "1 20440U 90005E 09080.52227667 .00000009 00000-0 18438-4 0 2752", |
694 | - "tle2": "2 20440 98.2451 57.8863 0011973 67.7463 292.4996 14.32122011 741", |
695 | - "draw_orbit": false, |
696 | - "visible": false |
697 | + "comms": [ |
698 | + { |
699 | + "description": "downlink", |
700 | + "frequency": 437.4, |
701 | + "modulation": "AFSK 1200 bps" |
702 | + }], |
703 | + "groups": ["amateur"], |
704 | + "orbitColor": [0, 0.5, 0.5], |
705 | + "orbitVisible": false, |
706 | + "tle1": "1 27844U 03031E 10301.55293538 .00000112 00000-0 72257-4 0 9662", |
707 | + "tle2": "2 27844 98.7101 308.6233 0009948 142.0283 218.1605 14.20740927380020", |
708 | + "visible": true |
709 | }, |
710 | "DELFI-C3 (DO-64)": |
711 | { |
712 | @@ -229,1152 +87,1315 @@ |
713 | "frequency": 145.87, |
714 | "modulation": "BPSK 1200 bps" |
715 | }], |
716 | - "description": "Amateur satellite", |
717 | "groups": ["amateur"], |
718 | - "tle1": "1 32789U 08021G 09080.84012653 .00000106 00000-0 20301-4 0 3267", |
719 | - "tle2": "2 32789 97.9568 145.5256 0014665 318.8670 41.1422 14.81641404 48513", |
720 | - "draw_orbit": false, |
721 | + "orbitColor": [0, 0.5, 0.5], |
722 | + "orbitVisible": false, |
723 | + "tle1": "1 32789U 08021G 10303.19103710 .00000516 00000-0 70963-4 0 8247", |
724 | + "tle2": "2 32789 97.8870 6.7848 0015076 201.6521 158.4055 14.82392833135504", |
725 | "visible": true |
726 | }, |
727 | + "DOVE (DO-17)": |
728 | + { |
729 | + "comms": [], |
730 | + "groups": ["amateur", "non-operational"], |
731 | + "orbitColor": [0, 0.5, 0.5], |
732 | + "orbitVisible": false, |
733 | + "tle1": "1 20440U 90005E 10302.46080120 .00000050 00000-0 33921-4 0 7480", |
734 | + "tle2": "2 20440 98.3265 258.6847 0011756 118.4239 241.8135 14.32187412 84754", |
735 | + "visible": false |
736 | + }, |
737 | "DTUSAT": |
738 | { |
739 | "comms": [], |
740 | - "tle1": "1 27842U 03031C 10010.89561892 .00000007 00000-0 23258-4 0 7359", |
741 | - "tle2": "2 27842 98.7047 23.0441 0008526 245.7454 114.2832 14.21010898338847", |
742 | - "draw_orbit": false, |
743 | + "groups": [], |
744 | + "orbitColor": [0, 0.5, 0.5], |
745 | + "orbitVisible": false, |
746 | + "tle1": "1 27842U 03031C 10302.04462644 .00000081 00000-0 57327-4 0 9601", |
747 | + "tle2": "2 27842 98.7019 309.9250 0009996 120.0473 240.1690 14.21063113380192", |
748 | "visible": false |
749 | }, |
750 | + "ECHO (AO-51)": |
751 | + { |
752 | + "comms": [ |
753 | + { |
754 | + "description": "uplink", |
755 | + "frequency": 145.92, |
756 | + "modulation": "FM/Voice" |
757 | + }, |
758 | + { |
759 | + "description": "downlink", |
760 | + "frequency": 435.15, |
761 | + "modulation": "FM/Voice" |
762 | + }], |
763 | + "groups": ["amateur"], |
764 | + "orbitColor": [0, 0.5, 0.5], |
765 | + "orbitVisible": false, |
766 | + "tle1": "1 28375U 04025K 10302.53759805 .00000053 00000-0 28310-4 0 8113", |
767 | + "tle2": "2 28375 98.0737 288.4713 0085112 49.6786 311.1800 14.40705975332858", |
768 | + "visible": true |
769 | + }, |
770 | "ENVISAT": |
771 | { |
772 | "comms": [], |
773 | "groups": ["scientific"], |
774 | "hintColor": [0.400000005960464, 0.800000011920929, 1], |
775 | - "tle1": "1 27386U 02009A 10011.73639675 .00000071 00000-0 42510-4 0 6762", |
776 | - "tle2": "2 27386 98.5484 81.1001 0001030 91.3585 61.9740 14.32248909411344", |
777 | - "draw_orbit": true, |
778 | + "orbitColor": [0.400000005960464, 0.800000011920929, 1], |
779 | + "orbitVisible": true, |
780 | + "tle1": "1 27386U 02009A 10303.00313459 -.00000192 00000-0 -49512-4 0 5725", |
781 | + "tle2": "2 27386 98.5363 8.1819 0000997 106.7882 253.3428 14.37439661453043", |
782 | "visible": true |
783 | }, |
784 | - "JAS-1 (FO-12)": |
785 | - { |
786 | - "description": "Amateur satellite", |
787 | - "groups": ["amateur", "non-operational"], |
788 | - "tle1": "1 16909U 86061B 09080.94650626 -.00000083 00000-0 10000-3 0 5465", |
789 | - "tle2": "2 16909 50.0155 70.0871 0010887 345.8622 14.1906 12.44452849 28116", |
790 | - "draw_orbit": false, |
791 | - "visible": false |
792 | - }, |
793 | - "JAS-1B (FO-20)": |
794 | - { |
795 | - "description": "Amateur satellite", |
796 | - "groups": ["amateur", "non-operational"], |
797 | - "tle1": "1 20480U 90013C 09080.79147234 -.00000010 00000-0 50788-4 0 941", |
798 | - "tle2": "2 20480 99.0681 17.7100 0540652 8.2393 352.7149 12.83361326895695", |
799 | - "draw_orbit": false, |
800 | - "visible": false |
801 | - }, |
802 | - "JAS-2 (FO-29)": |
803 | + "EYESAT-1 (AO-27)": |
804 | { |
805 | "comms": [ |
806 | { |
807 | "description": "uplink", |
808 | - "frequency": 145.95, |
809 | - "modulation": "SSB/CW" |
810 | + "frequency": 145.85 |
811 | }, |
812 | { |
813 | "description": "downlink", |
814 | - "frequency": 435.85, |
815 | - "modulation": "SSB/CW" |
816 | + "frequency": 145.2 |
817 | }], |
818 | - "description": "Amateur satellite", |
819 | "groups": ["amateur"], |
820 | - "tle1": "1 24278U 96046B 09080.73870134 -.00000063 00000-0 -26229-4 0 41", |
821 | - "tle2": "2 24278 98.5666 326.4736 0350089 216.8408 140.8210 13.52942306621921", |
822 | - "draw_orbit": false, |
823 | + "orbitColor": [0, 0.5, 0.5], |
824 | + "orbitVisible": false, |
825 | + "tle1": "1 22825U 93061C 10302.91096676 -.00000105 00000-0 -24578-4 0 6623", |
826 | + "tle2": "2 22825 98.5014 247.4714 0007624 230.3370 129.7143 14.29312747891290", |
827 | "visible": true |
828 | }, |
829 | "GENESIS 1": |
830 | { |
831 | "comms": [], |
832 | - "tle1": "1 29252U 06029A 10011.52793667 .00000091 00000-0 19479-4 0 9551", |
833 | - "tle2": "2 29252 64.5138 48.6502 0005838 166.2231 193.9045 15.03489848192237", |
834 | - "draw_orbit": false, |
835 | + "groups": [], |
836 | + "orbitColor": [0, 0.5, 0.5], |
837 | + "orbitVisible": false, |
838 | + "tle1": "1 29252U 06029A 10302.83842608 .00000523 00000-0 50634-4 0 1817", |
839 | + "tle2": "2 29252 64.5130 196.5801 0033113 326.7162 33.1870 15.03781513236039", |
840 | "visible": true |
841 | }, |
842 | "GENESIS 2": |
843 | { |
844 | "comms": [], |
845 | - "tle1": "1 31789U 07028A 10011.52925320 .00000135 00000-0 23184-4 0 7041", |
846 | - "tle2": "2 31789 64.5059 80.0205 0048307 232.0058 127.6690 15.03160429139449", |
847 | - "draw_orbit": false, |
848 | + "groups": [], |
849 | + "orbitColor": [0, 0.5, 0.5], |
850 | + "orbitVisible": false, |
851 | + "tle1": "1 31789U 07028A 10302.90243647 .00000623 00000-0 58451-4 0 9253", |
852 | + "tle2": "2 31789 64.5101 228.1646 0015066 184.5476 175.5499 15.03454641183240", |
853 | "visible": true |
854 | }, |
855 | - "TECHSAT 1B (GO-32)": |
856 | - { |
857 | - "description": "Amateur satellite", |
858 | - "groups": ["amateur", "non-operational"], |
859 | - "tle1": "1 25397U 98043D 09080.75202847 -.00000043 00000-0 -91654-6 0 8508", |
860 | - "tle2": "2 25397 98.3353 107.7463 0001898 121.8466 238.2885 14.23155927555696", |
861 | - "draw_orbit": false, |
862 | - "visible": false |
863 | - }, |
864 | "GPS BIIA-10 (PRN 32)": |
865 | { |
866 | "comms": [], |
867 | - "tle1": "1 20959U 90103A 10010.99755647 -.00000036 00000-0 10000-3 0 5262", |
868 | - "tle2": "2 20959 55.0535 274.6290 0132765 299.3343 59.4131 2.00568641140074", |
869 | - "draw_orbit": false, |
870 | + "groups": [], |
871 | + "orbitColor": [0, 0.5, 0.5], |
872 | + "orbitVisible": false, |
873 | + "tle1": "1 20959U 90103A 10302.16744991 -.00000003 00000-0 10000-3 0 8992", |
874 | + "tle2": "2 20959 54.8500 262.8703 0127943 307.6490 51.1922 2.00571598145919", |
875 | "visible": false |
876 | }, |
877 | "GPS BIIA-11 (PRN 24)": |
878 | { |
879 | "comms": [], |
880 | - "tle1": "1 21552U 91047A 10009.70414824 .00000092 00000-0 10000-3 0 5313", |
881 | - "tle2": "2 21552 54.4144 212.6800 0062160 326.3598 33.2642 2.00563397135632", |
882 | - "draw_orbit": false, |
883 | + "groups": [], |
884 | + "orbitColor": [0, 0.5, 0.5], |
885 | + "orbitVisible": false, |
886 | + "tle1": "1 21552U 91047A 10302.06748089 .00000011 00000-0 10000-3 0 8887", |
887 | + "tle2": "2 21552 54.3572 200.9343 0057923 338.3772 21.4482 2.00436756141496", |
888 | "visible": false |
889 | }, |
890 | "GPS BIIA-14 (PRN 26)": |
891 | { |
892 | "comms": [], |
893 | - "tle1": "1 22014U 92039A 10010.93278189 -.00000105 00000-0 10000-3 0 4649", |
894 | - "tle2": "2 22014 56.8181 333.2692 0195319 59.8919 302.0021 2.00570105121807", |
895 | - "draw_orbit": false, |
896 | + "groups": [], |
897 | + "orbitColor": [0, 0.5, 0.5], |
898 | + "orbitVisible": false, |
899 | + "tle1": "1 22014U 92039A 10301.46919992 -.00000036 00000-0 10000-3 0 7853", |
900 | + "tle2": "2 22014 56.6851 321.9816 0196330 63.6918 298.3560 2.00568037127630", |
901 | "visible": false |
902 | }, |
903 | "GPS BIIA-15 (PRN 27)": |
904 | { |
905 | "comms": [], |
906 | - "tle1": "1 22108U 92058A 10010.90400221 -.00000067 00000-0 10000-3 0 3539", |
907 | - "tle2": "2 22108 55.9801 26.5719 0219290 274.8295 82.7079 2.00561618126981", |
908 | - "draw_orbit": false, |
909 | + "groups": [], |
910 | + "orbitColor": [0, 0.5, 0.5], |
911 | + "orbitVisible": false, |
912 | + "tle1": "1 22108U 92058A 10302.06723595 -.00000064 00000-0 10000-3 0 6835", |
913 | + "tle2": "2 22108 56.1270 15.0686 0219084 282.0627 75.5478 2.00576345132827", |
914 | "visible": false |
915 | }, |
916 | "GPS BIIA-21 (PRN 09)": |
917 | { |
918 | "comms": [], |
919 | - "tle1": "1 22700U 93042A 10010.42349068 -.00000067 00000-0 10000-3 0 7005", |
920 | - "tle2": "2 22700 56.0930 27.9954 0203907 87.3193 275.0601 2.00570795121138", |
921 | - "draw_orbit": false, |
922 | + "groups": [], |
923 | + "orbitColor": [0, 0.5, 0.5], |
924 | + "orbitVisible": false, |
925 | + "tle1": "1 22700U 93042A 10301.59780814 -.00000062 00000-0 10000-3 0 237", |
926 | + "tle2": "2 22700 56.2590 16.5409 0168019 88.7929 273.1805 2.00561057126970", |
927 | "visible": false |
928 | }, |
929 | "GPS BIIA-23 (PRN 04)": |
930 | { |
931 | "comms": [], |
932 | - "tle1": "1 22877U 93068A 10010.06604071 .00000093 00000-0 10000-3 0 197", |
933 | - "tle2": "2 22877 53.8346 209.9413 0090336 32.3870 328.2140 2.00570796118779", |
934 | - "draw_orbit": false, |
935 | + "groups": [], |
936 | + "orbitColor": [0, 0.5, 0.5], |
937 | + "orbitVisible": false, |
938 | + "tle1": "1 22877U 93068A 10300.74029013 .00000022 00000-0 10000-3 0 3703", |
939 | + "tle2": "2 22877 53.7782 198.0703 0092885 37.1146 323.5923 2.00552150124602", |
940 | "visible": false |
941 | }, |
942 | "GPS BIIA-24 (PRN 06)": |
943 | { |
944 | "comms": [], |
945 | - "tle1": "1 23027U 94016A 10010.76960448 .00000006 00000-0 10000-3 0 283", |
946 | - "tle2": "2 23027 53.5254 146.9361 0060541 291.8296 67.4883 2.00564113116098", |
947 | - "draw_orbit": false, |
948 | + "groups": [], |
949 | + "orbitColor": [0, 0.5, 0.5], |
950 | + "orbitVisible": false, |
951 | + "tle1": "1 23027U 94016A 10302.43501524 .00000078 00000-0 10000-3 0 3403", |
952 | + "tle2": "2 23027 53.5629 134.9456 0063120 304.8457 54.6225 2.00565245121941", |
953 | "visible": false |
954 | }, |
955 | "GPS BIIA-25 (PRN 03)": |
956 | { |
957 | "comms": [], |
958 | - "tle1": "1 23833U 96019A 10011.28117265 -.00000009 00000-0 10000-3 0 2176", |
959 | - "tle2": "2 23833 53.1057 142.9368 0125981 55.7020 305.4397 2.00562273101088", |
960 | - "draw_orbit": false, |
961 | + "groups": [], |
962 | + "orbitColor": [0, 0.5, 0.5], |
963 | + "orbitVisible": false, |
964 | + "tle1": "1 23833U 96019A 10302.45211687 .00000079 00000-0 10000-3 0 5349", |
965 | + "tle2": "2 23833 53.1595 130.8246 0141049 57.5228 303.8974 2.00570083106928", |
966 | "visible": false |
967 | }, |
968 | "GPS BIIA-26 (PRN 10)": |
969 | { |
970 | "comms": [], |
971 | - "tle1": "1 23953U 96041A 10011.18603747 -.00000025 00000-0 10000-3 0 6866", |
972 | - "tle2": "2 23953 54.7294 271.0433 0088058 35.3384 325.3007 2.00592554 98874", |
973 | - "draw_orbit": false, |
974 | + "groups": [], |
975 | + "orbitColor": [0, 0.5, 0.5], |
976 | + "orbitVisible": false, |
977 | + "tle1": "1 23953U 96041A 10301.82803178 -.00000002 00000-0 10000-3 0 295", |
978 | + "tle2": "2 23953 54.5199 259.2130 0093725 37.2396 323.3915 2.00580465104703", |
979 | "visible": false |
980 | }, |
981 | "GPS BIIA-27 (PRN 30)": |
982 | { |
983 | "comms": [], |
984 | - "tle1": "1 24320U 96056A 10010.55267325 -.00000068 00000-0 10000-3 0 4257", |
985 | - "tle2": "2 24320 54.6846 87.2451 0117066 83.4925 277.8682 2.00567811 97528", |
986 | - "draw_orbit": false, |
987 | + "groups": [], |
988 | + "orbitColor": [0, 0.5, 0.5], |
989 | + "orbitVisible": false, |
990 | + "tle1": "1 24320U 96056A 10301.75887462 .00000028 00000-0 00000+0 0 7581", |
991 | + "tle2": "2 24320 54.8857 75.4568 0129144 89.0802 272.3950 2.00368470103364", |
992 | "visible": false |
993 | }, |
994 | "GPS BIIA-28 (PRN 08)": |
995 | { |
996 | "comms": [], |
997 | - "tle1": "1 25030U 97067A 10010.28331492 -.00000064 00000-0 10000-3 0 1002", |
998 | - "tle2": "2 25030 56.8069 33.5854 0109830 177.7126 182.3861 2.00557057 89283", |
999 | - "draw_orbit": false, |
1000 | + "groups": [], |
1001 | + "orbitColor": [0, 0.5, 0.5], |
1002 | + "orbitVisible": false, |
1003 | + "tle1": "1 25030U 97067A 10301.45797889 -.00000056 00000-0 10000-3 0 4295", |
1004 | + "tle2": "2 25030 56.9805 22.3425 0114906 181.8600 178.1436 2.00565959 95126", |
1005 | "visible": false |
1006 | }, |
1007 | "GPS BIIR-02 (PRN 13)": |
1008 | { |
1009 | "comms": [], |
1010 | - "tle1": "1 24876U 97035A 10011.15261365 -.00000105 00000-0 10000-3 0 1907", |
1011 | - "tle2": "2 24876 56.9425 333.4309 0037352 94.7690 265.6519 2.00571727 91409", |
1012 | - "draw_orbit": false, |
1013 | + "groups": [], |
1014 | + "orbitColor": [0, 0.5, 0.5], |
1015 | + "orbitVisible": false, |
1016 | + "tle1": "1 24876U 97035A 10301.32605098 -.00000036 00000-0 10000-3 0 5023", |
1017 | + "tle2": "2 24876 56.8189 322.2161 0040823 104.7475 255.7519 2.00561702 97225", |
1018 | "visible": false |
1019 | }, |
1020 | "GPS BIIR-03 (PRN 11)": |
1021 | { |
1022 | "comms": [], |
1023 | - "tle1": "1 25933U 99055A 10010.92537465 .00000081 00000-0 10000-3 0 6410", |
1024 | - "tle2": "2 25933 50.9220 196.7469 0102582 44.1197 316.7153 2.00557696 75219", |
1025 | - "draw_orbit": false, |
1026 | + "groups": [], |
1027 | + "orbitColor": [0, 0.5, 0.5], |
1028 | + "orbitVisible": false, |
1029 | + "tle1": "1 25933U 99055A 10301.60364195 .00000024 00000-0 10000-3 0 9494", |
1030 | + "tle2": "2 25933 50.8872 184.0513 0111230 49.1965 311.8490 2.00586061 81045", |
1031 | "visible": false |
1032 | }, |
1033 | "GPS BIIR-04 (PRN 20)": |
1034 | { |
1035 | "comms": [], |
1036 | - "tle1": "1 26360U 00025A 10011.52706440 -.00000016 00000-0 10000-3 0 7344", |
1037 | - "tle2": "2 26360 53.7974 268.0575 0039769 72.6509 287.8497 2.00559568 70923", |
1038 | - "draw_orbit": false, |
1039 | + "groups": [], |
1040 | + "orbitColor": [0, 0.5, 0.5], |
1041 | + "orbitVisible": false, |
1042 | + "tle1": "1 26360U 00025A 10301.69293456 -.00000003 00000-0 10000-3 0 408", |
1043 | + "tle2": "2 26360 53.5997 255.9924 0040843 71.7419 288.6978 2.00547909 76749", |
1044 | "visible": false |
1045 | }, |
1046 | "GPS BIIR-05 (PRN 28)": |
1047 | { |
1048 | "comms": [], |
1049 | - "tle1": "1 26407U 00040A 10010.36440597 -.00000066 00000-0 10000-3 0 6829", |
1050 | - "tle2": "2 26407 55.5104 91.6427 0157978 246.2508 112.1090 2.00565206 69571", |
1051 | - "draw_orbit": false, |
1052 | + "groups": [], |
1053 | + "orbitColor": [0, 0.5, 0.5], |
1054 | + "orbitVisible": false, |
1055 | + "tle1": "1 26407U 00040A 10301.53469852 .00000000 00000-0 10000-3 0 9882", |
1056 | + "tle2": "2 26407 55.6937 80.1082 0165329 248.9835 109.2466 2.00562548 75417", |
1057 | "visible": false |
1058 | }, |
1059 | "GPS BIIR-06 (PRN 14)": |
1060 | { |
1061 | "comms": [], |
1062 | - "tle1": "1 26605U 00071A 10010.96064742 -.00000106 00000-0 10000-3 0 6884", |
1063 | - "tle2": "2 26605 56.5635 332.2378 0052732 241.2746 118.1865 2.00562276 67186", |
1064 | - "draw_orbit": false, |
1065 | + "groups": [], |
1066 | + "orbitColor": [0, 0.5, 0.5], |
1067 | + "orbitVisible": false, |
1068 | + "tle1": "1 26605U 00071A 10301.63842618 -.00000035 00000-0 10000-3 0 9993", |
1069 | + "tle2": "2 26605 56.4294 320.8999 0059105 240.4878 118.9601 2.00574791 73016", |
1070 | "visible": false |
1071 | }, |
1072 | "GPS BIIR-07 (PRN 18)": |
1073 | { |
1074 | "comms": [], |
1075 | - "tle1": "1 26690U 01004A 10011.32818609 -.00000026 00000-0 10000-3 0 5740", |
1076 | - "tle2": "2 26690 53.8131 271.1512 0110582 226.2030 132.9381 2.00565198 65607", |
1077 | - "draw_orbit": false, |
1078 | + "groups": [], |
1079 | + "orbitColor": [0, 0.5, 0.5], |
1080 | + "orbitVisible": false, |
1081 | + "tle1": "1 26690U 01004A 10301.50411650 -.00000003 00000-0 10000-3 0 8789", |
1082 | + "tle2": "2 26690 53.5999 259.0875 0120359 229.8170 129.1163 2.00556033 71421", |
1083 | "visible": false |
1084 | }, |
1085 | "GPS BIIR-08 (PRN 16)": |
1086 | { |
1087 | "comms": [], |
1088 | - "tle1": "1 27663U 03005A 10010.18241212 -.00000066 00000-0 10000-3 0 9453", |
1089 | - "tle2": "2 27663 55.6126 91.1957 0054149 342.9474 16.8941 2.00562319 50933", |
1090 | - "draw_orbit": false, |
1091 | + "groups": [], |
1092 | + "orbitColor": [0, 0.5, 0.5], |
1093 | + "orbitVisible": false, |
1094 | + "tle1": "1 27663U 03005A 10301.36091234 .00000036 00000-0 10000-3 0 2878", |
1095 | + "tle2": "2 27663 55.7963 79.6867 0058151 349.0165 10.8527 2.00563675 56774", |
1096 | "visible": false |
1097 | }, |
1098 | "GPS BIIR-09 (PRN 21)": |
1099 | { |
1100 | "comms": [], |
1101 | - "tle1": "1 27704U 03010A 10010.75198163 .00000090 00000-0 10000-3 0 8437", |
1102 | - "tle2": "2 27704 53.4558 210.5815 0154862 213.4823 145.5286 2.00557110 49738", |
1103 | - "draw_orbit": false, |
1104 | + "groups": [], |
1105 | + "orbitColor": [0, 0.5, 0.5], |
1106 | + "orbitVisible": false, |
1107 | + "tle1": "1 27704U 03010A 10301.91975628 .00000012 00000-0 10000-3 0 1681", |
1108 | + "tle2": "2 27704 53.4072 198.5784 0172100 221.0933 137.6720 2.00568590 55579", |
1109 | "visible": false |
1110 | }, |
1111 | "GPS BIIR-10 (PRN 22)": |
1112 | { |
1113 | "comms": [], |
1114 | - "tle1": "1 28129U 03058A 10010.87364204 -.00000030 00000-0 10000-3 0 4548", |
1115 | - "tle2": "2 28129 53.6784 271.4646 0053797 253.0522 106.4165 2.00564472 44446", |
1116 | - "draw_orbit": false, |
1117 | + "groups": [], |
1118 | + "orbitColor": [0, 0.5, 0.5], |
1119 | + "orbitVisible": false, |
1120 | + "tle1": "1 28129U 03058A 10302.04591207 -.00000006 00000-0 10000-3 0 7654", |
1121 | + "tle2": "2 28129 53.4681 259.3240 0057215 250.8266 108.5467 2.00557710 50288", |
1122 | "visible": false |
1123 | }, |
1124 | "GPS BIIR-11 (PRN 19)": |
1125 | { |
1126 | "comms": [], |
1127 | - "tle1": "1 28190U 04009A 10011.32018064 .00000015 00000-0 10000-3 0 4007", |
1128 | - "tle2": "2 28190 54.8708 154.0770 0060512 347.4292 12.3771 2.00562181 42623", |
1129 | - "draw_orbit": false, |
1130 | + "groups": [], |
1131 | + "orbitColor": [0, 0.5, 0.5], |
1132 | + "orbitVisible": false, |
1133 | + "tle1": "1 28190U 04009A 10302.49753813 .00000077 00000-0 10000-3 0 7423", |
1134 | + "tle2": "2 28190 54.9006 142.5276 0067200 356.0750 3.9363 2.00574545 48462", |
1135 | "visible": false |
1136 | }, |
1137 | "GPS BIIR-12 (PRN 23)": |
1138 | { |
1139 | "comms": [], |
1140 | - "tle1": "1 28361U 04023A 10011.11001436 -.00000108 00000-0 10000-3 0 2210", |
1141 | - "tle2": "2 28361 55.5233 330.1407 0063091 175.1654 184.8914 2.00555994 40706", |
1142 | - "draw_orbit": false, |
1143 | + "groups": [], |
1144 | + "orbitColor": [0, 0.5, 0.5], |
1145 | + "orbitVisible": false, |
1146 | + "tle1": "1 28361U 04023A 10302.28272402 -.00000035 00000-0 10000-3 0 5610", |
1147 | + "tle2": "2 28361 55.3816 318.4790 0070499 181.0661 178.9571 2.00568581 46546", |
1148 | "visible": false |
1149 | }, |
1150 | "GPS BIIR-13 (PRN 02)": |
1151 | { |
1152 | "comms": [], |
1153 | - "tle1": "1 28474U 04045A 10010.60958177 .00000092 00000-0 10000-3 0 1103", |
1154 | - "tle2": "2 28474 53.8831 208.8835 0092214 169.6917 190.5412 2.00553740 38050", |
1155 | - "draw_orbit": false, |
1156 | + "groups": [], |
1157 | + "orbitColor": [0, 0.5, 0.5], |
1158 | + "orbitVisible": false, |
1159 | + "tle1": "1 28474U 04045A 10302.27512922 .00000012 00000-0 10000-3 0 4424", |
1160 | + "tle2": "2 28474 53.8285 196.9909 0097149 181.3885 178.6865 2.00565777 43901", |
1161 | "visible": false |
1162 | }, |
1163 | "GPS BIIRM-1 (PRN 17)": |
1164 | { |
1165 | "comms": [], |
1166 | - "tle1": "1 28874U 05038A 10010.46611155 .00000020 00000-0 10000-3 0 3749", |
1167 | - "tle2": "2 28874 55.0076 150.9355 0050579 211.6273 148.0313 2.00552416 31470", |
1168 | - "draw_orbit": false, |
1169 | + "groups": [], |
1170 | + "orbitColor": [0, 0.5, 0.5], |
1171 | + "orbitVisible": false, |
1172 | + "tle1": "1 28874U 05038A 10301.62882477 .00000075 00000-0 10000-3 0 7189", |
1173 | + "tle2": "2 28874 55.0370 139.4265 0058202 217.5021 142.1554 2.00563952 37314", |
1174 | "visible": false |
1175 | }, |
1176 | "GPS BIIRM-2 (PRN 31)": |
1177 | { |
1178 | "comms": [], |
1179 | - "tle1": "1 29486U 06042A 10011.06942763 -.00000065 00000-0 10000-3 0 6815", |
1180 | - "tle2": "2 29486 55.8943 29.7669 0076878 294.8151 64.4195 2.00574313 24189", |
1181 | - "draw_orbit": false, |
1182 | + "groups": [], |
1183 | + "orbitColor": [0, 0.5, 0.5], |
1184 | + "orbitVisible": false, |
1185 | + "tle1": "1 29486U 06042A 10301.24773966 -.00000060 00000-0 10000-3 0 329", |
1186 | + "tle2": "2 29486 56.0514 18.2945 0076258 299.0060 60.2772 2.00551655 30001", |
1187 | "visible": false |
1188 | }, |
1189 | "GPS BIIRM-3 (PRN 12)": |
1190 | { |
1191 | "comms": [], |
1192 | - "tle1": "1 29601U 06052A 10010.51493068 -.00000066 00000-0 10000-3 0 7387", |
1193 | - "tle2": "2 29601 55.5346 90.1935 0034161 324.4761 35.3273 2.00550794 23085", |
1194 | - "draw_orbit": false, |
1195 | + "groups": [], |
1196 | + "orbitColor": [0, 0.5, 0.5], |
1197 | + "orbitVisible": false, |
1198 | + "tle1": "1 29601U 06052A 10301.68663780 .00000035 00000-0 10000-3 0 960", |
1199 | + "tle2": "2 29601 55.7149 78.6666 0033514 338.2316 21.6255 2.00573529 28927", |
1200 | "visible": false |
1201 | }, |
1202 | "GPS BIIRM-4 (PRN 15)": |
1203 | { |
1204 | "comms": [], |
1205 | - "tle1": "1 32260U 07047A 10010.31555820 -.00000108 00000-0 00000+0 0 4705", |
1206 | - "tle2": "2 32260 54.7160 328.8448 0023063 332.4507 27.4199 2.00560044 16474", |
1207 | - "draw_orbit": false, |
1208 | + "groups": [], |
1209 | + "orbitColor": [0, 0.5, 0.5], |
1210 | + "orbitVisible": false, |
1211 | + "tle1": "1 32260U 07047A 10301.00379730 -.00000037 00000-0 00000+0 0 8095", |
1212 | + "tle2": "2 32260 54.5620 316.9717 0026590 345.9665 13.9949 2.00545542 22300", |
1213 | "visible": false |
1214 | }, |
1215 | "GPS BIIRM-5 (PRN 29)": |
1216 | { |
1217 | "comms": [], |
1218 | - "tle1": "1 32384U 07062A 10010.63802324 .00000019 00000-0 10000-3 0 4994", |
1219 | - "tle2": "2 32384 55.0131 151.4032 0032068 287.1304 72.4854 2.00578110 15209", |
1220 | - "draw_orbit": false, |
1221 | + "groups": [], |
1222 | + "orbitColor": [0, 0.5, 0.5], |
1223 | + "orbitVisible": false, |
1224 | + "tle1": "1 32384U 07062A 10301.81730681 .00000075 00000-0 10000-3 0 8360", |
1225 | + "tle2": "2 32384 55.0523 139.8993 0025158 291.2674 68.5415 2.00566036 21040", |
1226 | "visible": false |
1227 | }, |
1228 | "GPS BIIRM-6 (PRN 07)": |
1229 | { |
1230 | "comms": [], |
1231 | - "tle1": "1 32711U 08012A 10010.73574093 -.00000067 00000-0 10000-3 0 3661", |
1232 | - "tle2": "2 32711 55.5876 29.8416 0032333 179.9404 180.1045 2.00557495 13415", |
1233 | - "draw_orbit": false, |
1234 | + "groups": [], |
1235 | + "orbitColor": [0, 0.5, 0.5], |
1236 | + "orbitVisible": false, |
1237 | + "tle1": "1 32711U 08012A 10301.41459501 -.00000061 00000-0 10000-3 0 6684", |
1238 | + "tle2": "2 32711 55.7505 18.2710 0041269 182.2457 177.7857 2.00562183 19248", |
1239 | "visible": false |
1240 | }, |
1241 | + "HAMSAT (VO-52)": |
1242 | + { |
1243 | + "comms": [ |
1244 | + { |
1245 | + "description": "Beacon", |
1246 | + "frequency": 145.86, |
1247 | + "modulation": "CW" |
1248 | + }], |
1249 | + "groups": ["amateur"], |
1250 | + "orbitColor": [0, 0.5, 0.5], |
1251 | + "orbitVisible": false, |
1252 | + "tle1": "1 28650U 05017B 10302.91749704 .00000656 00000-0 88911-4 0 6334", |
1253 | + "tle2": "2 28650 97.6756 350.9771 0026685 193.4845 166.5629 14.81839806296646", |
1254 | + "visible": true |
1255 | + }, |
1256 | "HST": |
1257 | { |
1258 | "comms": [], |
1259 | - "tle1": "1 20580U 90037B 10009.85735511 .00000291 00000-0 94489-5 0 5019", |
1260 | - "tle2": "2 20580 28.4685 193.3983 0003260 317.8077 42.2266 15.00875675880934", |
1261 | - "draw_orbit": false, |
1262 | + "groups": [], |
1263 | + "orbitColor": [0, 0.5, 0.5], |
1264 | + "orbitVisible": true, |
1265 | + "tle1": "1 20580U 90037B 10300.09759300 .00000718 00000-0 41998-4 0 6685", |
1266 | + "tle2": "2 20580 28.4686 98.6536 0003467 162.6448 197.4276 15.01074509924596", |
1267 | "visible": true |
1268 | }, |
1269 | - "ITAMSAT (IO-26)": |
1270 | - { |
1271 | - "description": "Amateur satellite", |
1272 | - "groups": ["amateur", "non-operational"], |
1273 | - "tle1": "1 22826U 93061D 09080.85350470 -.00000006 00000-0 14293-4 0 9268", |
1274 | - "tle2": "2 22826 98.4204 37.8560 0009197 152.3361 207.8319 14.29512039807534", |
1275 | - "draw_orbit": false, |
1276 | - "visible": false |
1277 | - }, |
1278 | "IRIDIUM 10": |
1279 | { |
1280 | - "description": "Iridium 10", |
1281 | + "comms": [], |
1282 | "groups": ["iridium", "communications"], |
1283 | - "tle1": "1 24839U 97030D 09080.75603299 .00000198 00000-0 63641-4 0 5665", |
1284 | - "tle2": "2 24839 86.4032 167.9110 0002345 85.8737 274.2720 14.34216304615619", |
1285 | - "draw_orbit": false, |
1286 | + "orbitColor": [0, 0.5, 0.5], |
1287 | + "orbitVisible": false, |
1288 | + "tle1": "1 24839U 97030D 10302.43943163 -.00000054 00000-0 -26303-4 0 2592", |
1289 | + "tle2": "2 24839 86.3915 282.7041 0002454 79.7931 280.3543 14.34215799699706", |
1290 | "visible": false |
1291 | }, |
1292 | "IRIDIUM 11": |
1293 | { |
1294 | - "description": "Iridium 11", |
1295 | + "comms": [], |
1296 | "groups": ["iridium", "communications"], |
1297 | - "tle1": "1 25578U 98074B 09080.96418723 .00000021 00000-0 -64075-8 0 5598", |
1298 | - "tle2": "2 25578 86.5093 73.3425 0002585 79.6314 280.5189 14.54937843544862", |
1299 | - "draw_orbit": false, |
1300 | + "orbitColor": [0, 0.5, 0.5], |
1301 | + "orbitVisible": false, |
1302 | + "tle1": "1 25578U 98074B 10302.20874413 .00000235 00000-0 49715-4 0 2746", |
1303 | + "tle2": "2 25578 86.5178 188.3594 0002382 77.0752 283.0741 14.54951739630108", |
1304 | "visible": false |
1305 | }, |
1306 | "IRIDIUM 12": |
1307 | { |
1308 | - "description": "Iridium 12", |
1309 | + "comms": [], |
1310 | "groups": ["iridium", "communications"], |
1311 | - "tle1": "1 24837U 97030B 09080.76871839 .00000162 00000-0 50797-4 0 5682", |
1312 | - "tle2": "2 24837 86.4018 167.9072 0002316 83.3237 276.8222 14.34216073615601", |
1313 | - "draw_orbit": false, |
1314 | + "orbitColor": [0, 0.5, 0.5], |
1315 | + "orbitVisible": false, |
1316 | + "tle1": "1 24837U 97030B 10302.45211550 -.00000034 00000-0 -19303-4 0 2589", |
1317 | + "tle2": "2 24837 86.3907 282.7044 0002520 83.3013 276.8483 14.34216146699692", |
1318 | "visible": false |
1319 | }, |
1320 | "IRIDIUM 13": |
1321 | { |
1322 | - "description": "Iridium 13", |
1323 | + "comms": [], |
1324 | "groups": ["iridium", "communications"], |
1325 | - "tle1": "1 24840U 97030E 09080.77506041 .00000178 00000-0 56458-4 0 5246", |
1326 | - "tle2": "2 24840 86.4035 167.9756 0002404 88.5081 271.6386 14.34216342615608", |
1327 | - "draw_orbit": false, |
1328 | + "orbitColor": [0, 0.5, 0.5], |
1329 | + "orbitVisible": false, |
1330 | + "tle1": "1 24840U 97030E 10302.03985063 -.00000016 00000-0 -12770-4 0 2158", |
1331 | + "tle2": "2 24840 86.3914 282.9575 0002544 78.8119 281.3347 14.34216042699636", |
1332 | "visible": false |
1333 | }, |
1334 | "IRIDIUM 14": |
1335 | { |
1336 | - "description": "Iridium 14", |
1337 | + "comms": [], |
1338 | "groups": ["iridium", "communications"], |
1339 | - "tle1": "1 25777U 99032A 09080.96055310 .00000130 00000-0 25188-4 0 5243", |
1340 | - "tle2": "2 25777 86.5126 41.6339 0001855 82.9817 277.1596 14.54935495519245", |
1341 | - "draw_orbit": false, |
1342 | + "orbitColor": [0, 0.5, 0.5], |
1343 | + "orbitVisible": false, |
1344 | + "tle1": "1 25777U 99032A 10302.48008944 .00000146 00000-0 28886-4 0 2433", |
1345 | + "tle2": "2 25777 86.5148 156.5697 0002311 77.7568 282.3899 14.54947163604520", |
1346 | "visible": false |
1347 | }, |
1348 | "IRIDIUM 15": |
1349 | { |
1350 | - "description": "Iridium 15", |
1351 | + "comms": [], |
1352 | "groups": ["iridium", "communications"], |
1353 | - "tle1": "1 24869U 97034A 09080.83555834 .00000127 00000-0 38404-4 0 5876", |
1354 | - "tle2": "2 24869 86.3996 199.4843 0002242 82.3271 277.8172 14.34217422612589", |
1355 | - "draw_orbit": false, |
1356 | + "orbitColor": [0, 0.5, 0.5], |
1357 | + "orbitVisible": false, |
1358 | + "tle1": "1 24869U 97034A 10302.44918363 .00000023 00000-0 10763-5 0 2884", |
1359 | + "tle2": "2 24869 86.3927 314.4115 0002436 85.8461 274.3024 14.34219151696668", |
1360 | "visible": false |
1361 | }, |
1362 | "IRIDIUM 16": |
1363 | { |
1364 | - "description": "Iridium 16", |
1365 | + "comms": [], |
1366 | "groups": ["iridium", "communications"], |
1367 | - "tle1": "1 24841U 97030F 09080.74756006 .00000103 00000-0 28979-4 0 5472", |
1368 | - "tle2": "2 24841 86.4115 168.5066 0004087 67.5298 292.6324 14.35274480615732", |
1369 | - "draw_orbit": false, |
1370 | + "orbitColor": [0, 0.5, 0.5], |
1371 | + "orbitVisible": false, |
1372 | + "tle1": "1 24841U 97030F 10302.32998889 .00000099 00000-0 27643-4 0 2548", |
1373 | + "tle2": "2 24841 86.3992 283.4555 0001044 29.4991 330.6263 14.35369661699879", |
1374 | "visible": false |
1375 | }, |
1376 | "IRIDIUM 17": |
1377 | { |
1378 | - "description": "Iridium 17", |
1379 | + "comms": [], |
1380 | "groups": ["iridium", "communications"], |
1381 | - "tle1": "1 24870U 97034B 09080.86574228 .00000094 00000-0 26348-4 0 5551", |
1382 | - "tle2": "2 24870 86.3997 199.3860 0002450 74.3578 285.7893 14.34424293612609", |
1383 | - "draw_orbit": false, |
1384 | + "orbitColor": [0, 0.5, 0.5], |
1385 | + "orbitVisible": false, |
1386 | + "tle1": "1 24870U 97034B 10302.44785765 .00000152 00000-0 47020-4 0 2501", |
1387 | + "tle2": "2 24870 86.3934 314.2279 0002200 75.6090 284.5351 14.34512967696691", |
1388 | "visible": false |
1389 | }, |
1390 | "IRIDIUM 18": |
1391 | { |
1392 | - "description": "Iridium 18", |
1393 | + "comms": [], |
1394 | "groups": ["iridium", "communications"], |
1395 | - "tle1": "1 24872U 97034D 09080.86727066 .00000184 00000-0 58625-4 0 5567", |
1396 | - "tle2": "2 24872 86.4003 199.6099 0002454 81.7604 278.3867 14.34217527612589", |
1397 | - "draw_orbit": false, |
1398 | + "orbitColor": [0, 0.5, 0.5], |
1399 | + "orbitVisible": false, |
1400 | + "tle1": "1 24872U 97034D 10302.48089559 -.00000073 00000-0 -33029-4 0 2457", |
1401 | + "tle2": "2 24872 86.3930 314.5578 0002362 79.2199 280.9253 14.34218493696668", |
1402 | "visible": false |
1403 | }, |
1404 | "IRIDIUM 19": |
1405 | { |
1406 | - "description": "Iridium 19", |
1407 | + "comms": [], |
1408 | "groups": ["iridium", "communications"], |
1409 | - "tle1": "1 24965U 97056A 09080.72718535 .00000100 00000-0 28631-4 0 5236", |
1410 | - "tle2": "2 24965 86.3996 136.4806 0002460 90.2603 269.8873 14.34219384601200", |
1411 | - "draw_orbit": false, |
1412 | + "orbitColor": [0, 0.5, 0.5], |
1413 | + "orbitVisible": false, |
1414 | + "tle1": "1 24965U 97056A 10302.48042759 -.00000170 00000-0 -67935-4 0 2119", |
1415 | + "tle2": "2 24965 86.3936 251.1892 0002396 82.1801 277.9615 14.34217453685304", |
1416 | "visible": false |
1417 | }, |
1418 | "IRIDIUM 2": |
1419 | { |
1420 | - "description": "Iridium 2", |
1421 | + "comms": [], |
1422 | "groups": ["iridium", "communications"], |
1423 | - "tle1": "1 25527U 98066A 09080.75555857 .00000044 00000-0 94123-6 0 8457", |
1424 | - "tle2": "2 25527 85.5654 330.3309 0011200 129.4966 230.7244 14.97948645565148", |
1425 | - "draw_orbit": false, |
1426 | + "orbitColor": [0, 0.5, 0.5], |
1427 | + "orbitVisible": false, |
1428 | + "tle1": "1 25527U 98066A 10302.18855663 .00001449 00000-0 11841-3 0 6137", |
1429 | + "tle2": "2 25527 85.5643 356.3803 0008561 194.3859 165.7105 14.98530774652940", |
1430 | "visible": false |
1431 | }, |
1432 | "IRIDIUM 20": |
1433 | { |
1434 | - "description": "Iridium 20", |
1435 | + "comms": [], |
1436 | "groups": ["iridium", "communications"], |
1437 | - "tle1": "1 25577U 98074A 09080.98033202 -.00000021 00000-0 -14422-4 0 3714", |
1438 | - "tle2": "2 25577 86.3904 73.1381 0002452 79.1409 281.0061 14.34214985537121", |
1439 | - "draw_orbit": false, |
1440 | + "orbitColor": [0, 0.5, 0.5], |
1441 | + "orbitVisible": false, |
1442 | + "tle1": "1 25577U 98074A 10302.45455625 -.00000356 00000-0 -13403-3 0 515", |
1443 | + "tle2": "2 25577 86.3993 188.0047 0002316 80.9632 279.1859 14.34214873621180", |
1444 | "visible": false |
1445 | }, |
1446 | "IRIDIUM 21": |
1447 | { |
1448 | - "description": "Iridium 21", |
1449 | + "comms": [], |
1450 | "groups": ["iridium", "communications"], |
1451 | - "tle1": "1 25778U 99032B 09080.93260961 .00000088 00000-0 24407-4 0 4289", |
1452 | - "tle2": "2 25778 86.3940 41.6568 0001858 135.0959 225.0387 14.34213303516794", |
1453 | - "draw_orbit": false, |
1454 | + "orbitColor": [0, 0.5, 0.5], |
1455 | + "orbitVisible": false, |
1456 | + "tle1": "1 25778U 99032B 10302.33691817 .00000049 00000-0 10503-4 0 1220", |
1457 | + "tle2": "2 25778 86.3965 156.6380 0004307 89.0961 271.0723 14.34223248600847", |
1458 | "visible": false |
1459 | }, |
1460 | "IRIDIUM 22": |
1461 | { |
1462 | - "description": "Iridium 22", |
1463 | + "comms": [], |
1464 | "groups": ["iridium", "communications"], |
1465 | - "tle1": "1 24907U 97043E 09080.93593228 .00000038 00000-0 64008-5 0 5443", |
1466 | - "tle2": "2 24907 86.3913 73.5164 0002428 76.7490 283.3976 14.34215296606512", |
1467 | - "draw_orbit": false, |
1468 | + "orbitColor": [0, 0.5, 0.5], |
1469 | + "orbitVisible": false, |
1470 | + "tle1": "1 24907U 97043E 10302.41015582 .00000194 00000-0 62290-4 0 2289", |
1471 | + "tle2": "2 24907 86.4005 188.4514 0002322 81.4713 278.6750 14.34216952690570", |
1472 | "visible": false |
1473 | }, |
1474 | "IRIDIUM 23": |
1475 | { |
1476 | - "description": "Iridium 23", |
1477 | + "comms": [], |
1478 | "groups": ["iridium", "communications"], |
1479 | - "tle1": "1 24906U 97043D 09080.94227688 .00000036 00000-0 58894-5 0 5744", |
1480 | - "tle2": "2 24906 86.3894 73.1318 0002472 82.1303 278.0178 14.34215338606511", |
1481 | - "draw_orbit": false, |
1482 | + "orbitColor": [0, 0.5, 0.5], |
1483 | + "orbitVisible": false, |
1484 | + "tle1": "1 24906U 97043D 10302.34671955 .00000184 00000-0 58741-4 0 2603", |
1485 | + "tle2": "2 24906 86.3995 188.0184 0002288 79.4322 280.7136 14.34218609690561", |
1486 | "visible": false |
1487 | }, |
1488 | "IRIDIUM 24": |
1489 | { |
1490 | - "description": "Iridium 24", |
1491 | + "comms": [], |
1492 | "groups": ["iridium", "communications"], |
1493 | - "tle1": "1 25105U 97082B 09080.88485856 .00000094 00000-0 24467-4 0 1226", |
1494 | - "tle2": "2 25105 86.3868 64.1686 0012063 143.9347 216.2672 14.38254916590102", |
1495 | - "draw_orbit": false, |
1496 | + "orbitColor": [0, 0.5, 0.5], |
1497 | + "orbitVisible": false, |
1498 | + "tle1": "1 25105U 97082B 10302.15478198 .00000179 00000-0 52025-4 0 7632", |
1499 | + "tle2": "2 25105 86.3965 177.2911 0013505 38.5943 321.6212 14.38367556674378", |
1500 | "visible": false |
1501 | }, |
1502 | "IRIDIUM 25": |
1503 | { |
1504 | - "description": "Iridium 25", |
1505 | + "comms": [], |
1506 | "groups": ["iridium", "communications"], |
1507 | - "tle1": "1 24904U 97043B 09080.95495998 .00000045 00000-0 90546-5 0 5564", |
1508 | - "tle2": "2 24904 86.3902 73.1904 0002447 79.4878 280.6605 14.34215301606501", |
1509 | - "draw_orbit": false, |
1510 | + "orbitColor": [0, 0.5, 0.5], |
1511 | + "orbitVisible": false, |
1512 | + "tle1": "1 24904U 97043B 10302.28964716 .00000170 00000-0 53659-4 0 2422", |
1513 | + "tle2": "2 24904 86.3984 188.1163 0002258 83.2194 276.9270 14.34216573690544", |
1514 | "visible": false |
1515 | }, |
1516 | "IRIDIUM 26": |
1517 | { |
1518 | - "description": "Iridium 26", |
1519 | + "comms": [], |
1520 | "groups": ["iridium", "communications"], |
1521 | - "tle1": "1 24903U 97043A 09080.92325319 .00000061 00000-0 14603-4 0 6635", |
1522 | - "tle2": "2 24903 86.3905 73.2530 0002433 79.3191 280.8286 14.34215067606530", |
1523 | - "draw_orbit": false, |
1524 | + "orbitColor": [0, 0.5, 0.5], |
1525 | + "orbitVisible": false, |
1526 | + "tle1": "1 24903U 97043A 10302.25793540 .00000230 00000-0 74992-4 0 3514", |
1527 | + "tle2": "2 24903 86.3990 188.1884 0002375 80.7176 279.4326 14.34216790690576", |
1528 | "visible": false |
1529 | }, |
1530 | "IRIDIUM 28": |
1531 | { |
1532 | - "description": "Iridium 28", |
1533 | + "comms": [], |
1534 | "groups": ["iridium", "communications"], |
1535 | - "tle1": "1 24948U 97051E 09080.72766345 -.00000012 00000-0 -11441-4 0 3800", |
1536 | - "tle2": "2 24948 86.3924 105.0922 0002660 74.1790 285.9694 14.34248276603049", |
1537 | - "draw_orbit": false, |
1538 | + "orbitColor": [0, 0.5, 0.5], |
1539 | + "orbitVisible": false, |
1540 | + "tle1": "1 24948U 97051E 10302.31147104 .00000193 00000-0 61827-4 0 875", |
1541 | + "tle2": "2 24948 86.3981 219.8402 0001887 80.4825 279.6580 14.34342107687121", |
1542 | "visible": false |
1543 | }, |
1544 | "IRIDIUM 29": |
1545 | { |
1546 | - "description": "Iridium 29", |
1547 | + "comms": [], |
1548 | "groups": ["iridium", "communications"], |
1549 | - "tle1": "1 24944U 97051A 09080.73641357 -.00000048 00000-0 -24213-4 0 5196", |
1550 | - "tle2": "2 24944 86.3928 104.9291 0002412 84.1606 275.9868 14.34217590603056", |
1551 | - "draw_orbit": false, |
1552 | + "orbitColor": [0, 0.5, 0.5], |
1553 | + "orbitVisible": false, |
1554 | + "tle1": "1 24944U 97051A 10302.28038451 -.00001049 00000-0 -38194-3 0 1943", |
1555 | + "tle2": "2 24944 86.3980 219.7025 0002451 79.1853 280.9634 14.34210681687126", |
1556 | "visible": false |
1557 | }, |
1558 | "IRIDIUM 3": |
1559 | { |
1560 | - "description": "Iridium 3", |
1561 | + "comms": [], |
1562 | "groups": ["iridium", "communications"], |
1563 | - "tle1": "1 25431U 98048A 09080.92959394 .00000063 00000-0 15480-4 0 4481", |
1564 | - "tle2": "2 25431 86.3903 73.3431 0002965 84.2311 275.9229 14.34215319554292", |
1565 | - "draw_orbit": false, |
1566 | + "orbitColor": [0, 0.5, 0.5], |
1567 | + "orbitVisible": false, |
1568 | + "tle1": "1 25431U 98048A 10302.47358655 -.00000864 00000-0 -31556-3 0 1347", |
1569 | + "tle2": "2 25431 86.3993 188.2078 0002551 69.4458 290.7084 14.34213017638360", |
1570 | "visible": false |
1571 | }, |
1572 | "IRIDIUM 30": |
1573 | { |
1574 | - "description": "Iridium 30", |
1575 | + "comms": [], |
1576 | "groups": ["iridium", "communications"], |
1577 | - "tle1": "1 24949U 97051F 09080.60956429 -.00000118 00000-0 -49226-4 0 5599", |
1578 | - "tle2": "2 24949 86.3918 105.0480 0002502 87.1679 272.9801 14.34216956603032", |
1579 | - "draw_orbit": false, |
1580 | + "orbitColor": [0, 0.5, 0.5], |
1581 | + "orbitVisible": false, |
1582 | + "tle1": "1 24949U 97051F 10302.29307003 -.00000999 00000-0 -36397-3 0 2533", |
1583 | + "tle2": "2 24949 86.3980 219.7750 0002434 81.8586 278.2933 14.34210204687123", |
1584 | "visible": false |
1585 | }, |
1586 | "IRIDIUM 31": |
1587 | { |
1588 | - "description": "Iridium 31", |
1589 | + "comms": [], |
1590 | "groups": ["iridium", "communications"], |
1591 | - "tle1": "1 24950U 97051G 09080.95206580 .00000006 00000-0 -50967-5 0 5472", |
1592 | - "tle2": "2 24950 86.3926 104.8960 0002452 82.6436 277.5040 14.34217229603094", |
1593 | - "draw_orbit": false, |
1594 | + "orbitColor": [0, 0.5, 0.5], |
1595 | + "orbitVisible": false, |
1596 | + "tle1": "1 24950U 97051G 10302.42626626 -.00000970 00000-0 -35370-3 0 2231", |
1597 | + "tle2": "2 24950 86.3980 219.7162 0002499 81.6317 278.5241 14.34209730687153", |
1598 | "visible": false |
1599 | }, |
1600 | "IRIDIUM 32": |
1601 | { |
1602 | - "description": "Iridium 32", |
1603 | + "comms": [], |
1604 | "groups": ["iridium", "communications"], |
1605 | - "tle1": "1 24945U 97051B 09080.82521335 -.00000034 00000-0 -19243-4 0 5260", |
1606 | - "tle2": "2 24945 86.3920 104.9062 0002420 86.0555 274.0934 14.34217114603087", |
1607 | - "draw_orbit": false, |
1608 | + "orbitColor": [0, 0.5, 0.5], |
1609 | + "orbitVisible": false, |
1610 | + "tle1": "1 24945U 97051B 10302.29941282 -.00001134 00000-0 -41219-3 0 2128", |
1611 | + "tle2": "2 24945 86.3972 219.7123 0002404 79.0323 281.1177 14.34209948687147", |
1612 | "visible": false |
1613 | }, |
1614 | "IRIDIUM 33": |
1615 | { |
1616 | - "description": "Iridium 33", |
1617 | + "comms": [], |
1618 | "groups": ["iridium", "communications"], |
1619 | - "tle1": "1 24946U 97051C 09079.48224177 .00000050 00000-0 11256-4 0 5548", |
1620 | - "tle2": "2 24946 86.3829 105.5030 0007498 339.0307 21.0569 14.32470536602871", |
1621 | - "draw_orbit": false, |
1622 | + "orbitColor": [0, 0.5, 0.5], |
1623 | + "orbitVisible": false, |
1624 | + "tle1": "1 24946U 97051C 10302.28570283 .00000162 00000-0 52446-4 0 3312", |
1625 | + "tle2": "2 24946 86.3894 219.8473 0006861 195.6955 164.4038 14.32545693687043", |
1626 | "visible": false |
1627 | }, |
1628 | "IRIDIUM 34": |
1629 | { |
1630 | - "description": "Iridium 34", |
1631 | + "comms": [], |
1632 | "groups": ["iridium", "communications"], |
1633 | - "tle1": "1 24969U 97056E 09080.66375773 .00000143 00000-0 44096-4 0 5214", |
1634 | - "tle2": "2 24969 86.3985 136.5744 0002407 86.3781 273.7691 14.34219875601171", |
1635 | - "draw_orbit": false, |
1636 | + "orbitColor": [0, 0.5, 0.5], |
1637 | + "orbitVisible": false, |
1638 | + "tle1": "1 24969U 97056E 10302.34723301 -.00000133 00000-0 -54522-4 0 2057", |
1639 | + "tle2": "2 24969 86.3934 251.3218 0002432 78.2832 281.8579 14.34217770685261", |
1640 | "visible": false |
1641 | }, |
1642 | "IRIDIUM 35": |
1643 | { |
1644 | - "description": "Iridium 35", |
1645 | + "comms": [], |
1646 | "groups": ["iridium", "communications"], |
1647 | - "tle1": "1 24966U 97056B 09080.73987018 .00000085 00000-0 23358-4 0 5695", |
1648 | - "tle2": "2 24966 86.3976 136.5004 0002426 88.2177 271.9296 14.34219553601183", |
1649 | - "draw_orbit": false, |
1650 | + "orbitColor": [0, 0.5, 0.5], |
1651 | + "orbitVisible": false, |
1652 | + "tle1": "1 24966U 97056B 10302.42334758 .00000109 00000-0 31995-4 0 2541", |
1653 | + "tle2": "2 24966 86.3938 251.2332 0002438 81.9871 278.1627 14.34213324685273", |
1654 | "visible": false |
1655 | }, |
1656 | "IRIDIUM 36": |
1657 | { |
1658 | - "description": "Iridium 36", |
1659 | + "comms": [], |
1660 | "groups": ["iridium", "communications"], |
1661 | - "tle1": "1 24967U 97056C 09080.65710171 -.00000019 00000-0 -13689-4 0 4998", |
1662 | - "tle2": "2 24967 86.3983 136.6024 0002458 82.4670 277.6800 14.34287200601317", |
1663 | - "draw_orbit": false, |
1664 | + "orbitColor": [0, 0.5, 0.5], |
1665 | + "orbitVisible": false, |
1666 | + "tle1": "1 24967U 97056C 10302.29992667 .00000189 00000-0 60259-4 0 2000", |
1667 | + "tle2": "2 24967 86.3969 251.3598 0002312 86.1577 273.9897 14.34360383685409", |
1668 | "visible": false |
1669 | }, |
1670 | "IRIDIUM 37": |
1671 | { |
1672 | - "description": "Iridium 37", |
1673 | + "comms": [], |
1674 | "groups": ["iridium", "communications"], |
1675 | - "tle1": "1 24968U 97056D 09080.71450005 .00000098 00000-0 28096-4 0 5346", |
1676 | - "tle2": "2 24968 86.3999 136.6077 0002361 87.7484 272.3982 14.34219477601186", |
1677 | - "draw_orbit": false, |
1678 | + "orbitColor": [0, 0.5, 0.5], |
1679 | + "orbitVisible": false, |
1680 | + "tle1": "1 24968U 97056D 10302.39797457 .00000188 00000-0 60233-4 0 2227", |
1681 | + "tle2": "2 24968 86.3938 251.3581 0002470 83.6124 276.5368 14.34214035685272", |
1682 | "visible": false |
1683 | }, |
1684 | "IRIDIUM 38": |
1685 | { |
1686 | - "description": "Iridium 38", |
1687 | + "comms": [], |
1688 | "groups": ["iridium", "communications"], |
1689 | - "tle1": "1 25043U 97069E 09080.84584675 .00000189 00000-0 59905-4 0 5412", |
1690 | - "tle2": "2 25043 86.3999 198.9627 0003100 65.2494 294.9020 14.34689502595081", |
1691 | - "draw_orbit": false, |
1692 | + "orbitColor": [0, 0.5, 0.5], |
1693 | + "orbitVisible": false, |
1694 | + "tle1": "1 25043U 97069E 10302.32262653 .00000142 00000-0 43326-4 0 2329", |
1695 | + "tle2": "2 25043 86.3928 313.7313 0001585 70.6270 289.5099 14.34770840679174", |
1696 | "visible": false |
1697 | }, |
1698 | "IRIDIUM 39": |
1699 | { |
1700 | - "description": "Iridium 39", |
1701 | + "comms": [], |
1702 | "groups": ["iridium", "communications"], |
1703 | - "tle1": "1 25042U 97069D 09080.81653387 .00000186 00000-0 59194-4 0 5120", |
1704 | - "tle2": "2 25042 86.4012 199.6847 0002432 78.6189 281.5268 14.34217041594973", |
1705 | - "draw_orbit": false, |
1706 | + "orbitColor": [0, 0.5, 0.5], |
1707 | + "orbitVisible": false, |
1708 | + "tle1": "1 25042U 97069D 10302.36038753 -.00000070 00000-0 -31996-4 0 2078", |
1709 | + "tle2": "2 25042 86.3938 314.7043 0002194 81.8792 278.2643 14.34217507679047", |
1710 | "visible": false |
1711 | }, |
1712 | "IRIDIUM 4": |
1713 | { |
1714 | - "description": "Iridium 4", |
1715 | + "comms": [], |
1716 | "groups": ["iridium", "communications"], |
1717 | - "tle1": "1 24796U 97020E 09080.70815717 .00000117 00000-0 34873-4 0 5689", |
1718 | - "tle2": "2 24796 86.3992 136.4182 0002479 84.7507 275.3970 14.34219551621866", |
1719 | - "draw_orbit": false, |
1720 | + "orbitColor": [0, 0.5, 0.5], |
1721 | + "orbitVisible": false, |
1722 | + "tle1": "1 24796U 97020E 10302.46140392 .00000187 00000-0 59781-4 0 2523", |
1723 | + "tle2": "2 24796 86.3935 251.1025 0002496 79.1283 281.0202 14.34219366705962", |
1724 | "visible": false |
1725 | }, |
1726 | "IRIDIUM 40": |
1727 | { |
1728 | - "description": "Iridium 40", |
1729 | + "comms": [], |
1730 | "groups": ["iridium", "communications"], |
1731 | - "tle1": "1 25041U 97069C 09080.87997502 .00000177 00000-0 56017-4 0 5384", |
1732 | - "tle2": "2 25041 86.4003 199.5053 0002277 80.7998 279.3453 14.34217086595004", |
1733 | - "draw_orbit": false, |
1734 | + "orbitColor": [0, 0.5, 0.5], |
1735 | + "orbitVisible": false, |
1736 | + "tle1": "1 25041U 97069C 10302.42381763 .00000024 00000-0 13707-5 0 2298", |
1737 | + "tle2": "2 25041 86.3934 314.4638 0002417 87.2578 272.8909 14.34218964679075", |
1738 | "visible": false |
1739 | }, |
1740 | "IRIDIUM 41": |
1741 | { |
1742 | - "description": "Iridium 41", |
1743 | + "comms": [], |
1744 | "groups": ["iridium", "communications"], |
1745 | - "tle1": "1 25040U 97069B 09080.85461500 .00000190 00000-0 60760-4 0 5122", |
1746 | - "tle2": "2 25040 86.4003 199.5463 0002248 80.0849 280.0599 14.34216855594983", |
1747 | - "draw_orbit": false, |
1748 | + "orbitColor": [0, 0.5, 0.5], |
1749 | + "orbitVisible": false, |
1750 | + "tle1": "1 25040U 97069B 10302.46820898 -.00000017 00000-0 -13068-4 0 2033", |
1751 | + "tle2": "2 25040 86.3930 314.4833 0002293 76.2255 283.9202 14.34219070679066", |
1752 | "visible": false |
1753 | }, |
1754 | "IRIDIUM 42": |
1755 | { |
1756 | - "description": "Iridium 42", |
1757 | + "comms": [], |
1758 | "groups": ["iridium", "communications"], |
1759 | - "tle1": "1 25077U 97077A 09080.94340195 .00000110 00000-0 32067-4 0 5274", |
1760 | - "tle2": "2 25077 86.3994 199.5528 0002240 84.0668 276.0780 14.34216755590856", |
1761 | - "draw_orbit": false, |
1762 | + "orbitColor": [0, 0.5, 0.5], |
1763 | + "orbitVisible": false, |
1764 | + "tle1": "1 25077U 97077A 10302.48724357 -.00000026 00000-0 -16296-4 0 2246", |
1765 | + "tle2": "2 25077 86.3934 314.5230 0002396 84.7575 275.3903 14.34218745674926", |
1766 | "visible": false |
1767 | }, |
1768 | "IRIDIUM 43": |
1769 | { |
1770 | - "description": "Iridium 43", |
1771 | + "comms": [], |
1772 | "groups": ["iridium", "communications"], |
1773 | - "tle1": "1 25039U 97069A 09080.86094029 .00000205 00000-0 66131-4 0 5236", |
1774 | - "tle2": "2 25039 86.4004 199.6307 0002233 83.8211 276.3235 14.34217273594988", |
1775 | - "draw_orbit": false, |
1776 | + "orbitColor": [0, 0.5, 0.5], |
1777 | + "orbitVisible": false, |
1778 | + "tle1": "1 25039U 97069A 10302.47455667 -.00000037 00000-0 -20426-4 0 2140", |
1779 | + "tle2": "2 25039 86.3935 314.5832 0002440 84.0731 276.0756 14.34218805679061", |
1780 | "visible": false |
1781 | }, |
1782 | "IRIDIUM 44": |
1783 | { |
1784 | - "description": "Iridium 44", |
1785 | + "comms": [], |
1786 | "groups": ["iridium", "communications"], |
1787 | - "tle1": "1 25078U 97077B 09080.71935762 .00000118 00000-0 33304-4 0 717", |
1788 | - "tle2": "2 25078 86.4006 195.3112 0003942 66.7305 293.4317 14.36538090591378", |
1789 | - "draw_orbit": false, |
1790 | + "orbitColor": [0, 0.5, 0.5], |
1791 | + "orbitVisible": false, |
1792 | + "tle1": "1 25078U 97077B 10302.40901862 .00000156 00000-0 46414-4 0 7069", |
1793 | + "tle2": "2 25078 86.3947 309.2622 0001340 21.2423 338.8824 14.36659588675602", |
1794 | "visible": false |
1795 | }, |
1796 | "IRIDIUM 45": |
1797 | { |
1798 | - "description": "Iridium 45", |
1799 | + "comms": [], |
1800 | "groups": ["iridium", "communications"], |
1801 | - "tle1": "1 25104U 97082A 09080.96130432 -.00000044 00000-0 -22820-4 0 4750", |
1802 | - "tle2": "2 25104 86.3894 73.2144 0002470 84.6910 275.4577 14.34215008589056", |
1803 | - "draw_orbit": false, |
1804 | + "orbitColor": [0, 0.5, 0.5], |
1805 | + "orbitVisible": false, |
1806 | + "tle1": "1 25104U 97082A 10302.29599239 -.00000276 00000-0 -10560-3 0 1569", |
1807 | + "tle2": "2 25104 86.3986 188.1235 0002337 79.0031 281.1493 14.34214945673097", |
1808 | "visible": false |
1809 | }, |
1810 | "IRIDIUM 46": |
1811 | { |
1812 | - "description": "Iridium 46", |
1813 | + "comms": [], |
1814 | "groups": ["iridium", "communications"], |
1815 | - "tle1": "1 24905U 97043C 09080.96764942 .00000030 00000-0 35050-5 0 5691", |
1816 | - "tle2": "2 24905 86.3912 73.4590 0002447 80.6193 279.5279 14.34215070606519", |
1817 | - "draw_orbit": false, |
1818 | + "orbitColor": [0, 0.5, 0.5], |
1819 | + "orbitVisible": false, |
1820 | + "tle1": "1 24905U 97043C 10302.30233178 .00000171 00000-0 54024-4 0 2650", |
1821 | + "tle2": "2 24905 86.3993 188.4382 0002297 80.8924 279.2531 14.34216830690551", |
1822 | "visible": false |
1823 | }, |
1824 | "IRIDIUM 47": |
1825 | { |
1826 | - "description": "Iridium 47", |
1827 | + "comms": [], |
1828 | "groups": ["iridium", "communications"], |
1829 | - "tle1": "1 25106U 97082C 09080.97398853 .00000111 00000-0 32561-4 0 4695", |
1830 | - "tle2": "2 25106 86.3898 73.1510 0002484 79.6182 280.5287 14.34215564589050", |
1831 | - "draw_orbit": false, |
1832 | + "orbitColor": [0, 0.5, 0.5], |
1833 | + "orbitVisible": false, |
1834 | + "tle1": "1 25106U 97082C 10302.23890629 .00000316 00000-0 10583-3 0 1515", |
1835 | + "tle2": "2 25106 86.3995 188.0871 0002318 79.6913 280.4540 14.34217170673085", |
1836 | "visible": false |
1837 | }, |
1838 | "IRIDIUM 49": |
1839 | { |
1840 | - "description": "Iridium 49", |
1841 | + "comms": [], |
1842 | "groups": ["iridium", "communications"], |
1843 | - "tle1": "1 25108U 97082E 09080.98667654 .00000065 00000-0 16281-4 0 4875", |
1844 | - "tle2": "2 25108 86.3903 73.1642 0002478 78.6020 281.5453 14.34215226589060", |
1845 | - "draw_orbit": false, |
1846 | + "orbitColor": [0, 0.5, 0.5], |
1847 | + "orbitVisible": false, |
1848 | + "tle1": "1 25108U 97082E 10302.25159412 -.00000913 00000-0 -33305-3 0 1700", |
1849 | + "tle2": "2 25108 86.3987 188.1175 0002430 84.5003 275.6493 14.34213325673098", |
1850 | "visible": false |
1851 | }, |
1852 | "IRIDIUM 5": |
1853 | { |
1854 | - "description": "Iridium 5", |
1855 | + "comms": [], |
1856 | "groups": ["iridium", "communications"], |
1857 | - "tle1": "1 24795U 97020D 09080.75255433 .00000063 00000-0 15294-4 0 6795", |
1858 | - "tle2": "2 24795 86.3980 136.7732 0002993 61.1224 299.0272 14.34219542621938", |
1859 | - "draw_orbit": false, |
1860 | + "orbitColor": [0, 0.5, 0.5], |
1861 | + "orbitVisible": false, |
1862 | + "tle1": "1 24795U 97020D 10302.43610332 .00000176 00000-0 55623-4 0 3963", |
1863 | + "tle2": "2 24795 86.3932 251.5005 0001075 80.9871 279.1456 14.34218113706021", |
1864 | "visible": false |
1865 | }, |
1866 | "IRIDIUM 50": |
1867 | { |
1868 | - "description": "Iridium 50", |
1869 | + "comms": [], |
1870 | "groups": ["iridium", "communications"], |
1871 | - "tle1": "1 25172U 98010D 09080.79408766 .00000199 00000-0 63929-4 0 5098", |
1872 | - "tle2": "2 25172 86.4035 168.0271 0002291 84.7609 275.3846 14.34216501580429", |
1873 | - "draw_orbit": false, |
1874 | + "orbitColor": [0, 0.5, 0.5], |
1875 | + "orbitVisible": false, |
1876 | + "tle1": "1 25172U 98010D 10302.47748662 .00000026 00000-0 21580-5 0 2021", |
1877 | + "tle2": "2 25172 86.3919 282.8516 0002533 82.0417 278.1076 14.34216345664518", |
1878 | "visible": false |
1879 | }, |
1880 | "IRIDIUM 51": |
1881 | { |
1882 | - "description": "Iridium 51", |
1883 | + "comms": [], |
1884 | "groups": ["iridium", "communications"], |
1885 | - "tle1": "1 25262U 98018A 09080.96019622 .00000083 00000-0 18843-4 0 6047", |
1886 | - "tle2": "2 25262 86.4521 136.5459 0002506 88.2627 271.8861 14.42963543578794", |
1887 | - "draw_orbit": false, |
1888 | + "orbitColor": [0, 0.5, 0.5], |
1889 | + "orbitVisible": false, |
1890 | + "tle1": "1 25262U 98018A 10302.35490646 .00000226 00000-0 61619-4 0 2996", |
1891 | + "tle2": "2 25262 86.4454 251.4771 0002524 78.3193 281.8299 14.42949443663357", |
1892 | "visible": false |
1893 | }, |
1894 | "IRIDIUM 52": |
1895 | { |
1896 | - "description": "Iridium 52", |
1897 | + "comms": [], |
1898 | "groups": ["iridium", "communications"], |
1899 | - "tle1": "1 25169U 98010A 09080.73700209 .00000123 00000-0 36961-4 0 2624", |
1900 | - "tle2": "2 25169 86.4038 168.0762 0002354 85.6372 274.5081 14.34216423580436", |
1901 | - "draw_orbit": false, |
1902 | + "orbitColor": [0, 0.5, 0.5], |
1903 | + "orbitVisible": false, |
1904 | + "tle1": "1 25169U 98010A 10302.42039969 -.00000016 00000-0 -12755-4 0 9521", |
1905 | + "tle2": "2 25169 86.3921 282.9005 0002422 85.7433 274.4051 14.34216469664526", |
1906 | "visible": false |
1907 | }, |
1908 | "IRIDIUM 53": |
1909 | { |
1910 | - "description": "Iridium 53", |
1911 | + "comms": [], |
1912 | "groups": ["iridium", "communications"], |
1913 | - "tle1": "1 25173U 98010E 09080.74334661 .00000213 00000-0 68921-4 0 4965", |
1914 | - "tle2": "2 25173 86.4038 168.0584 0002328 85.4274 274.7179 14.34216418580426", |
1915 | - "draw_orbit": false, |
1916 | + "orbitColor": [0, 0.5, 0.5], |
1917 | + "orbitVisible": false, |
1918 | + "tle1": "1 25173U 98010E 10302.35697396 .00000031 00000-0 38551-5 0 1869", |
1919 | + "tle2": "2 25173 86.3917 282.9102 0002441 83.1301 277.0191 14.34216522664503", |
1920 | "visible": false |
1921 | }, |
1922 | "IRIDIUM 54": |
1923 | { |
1924 | - "description": "Iridium 54", |
1925 | + "comms": [], |
1926 | "groups": ["iridium", "communications"], |
1927 | - "tle1": "1 25171U 98010C 09080.83214435 .00000162 00000-0 50776-4 0 4950", |
1928 | - "tle2": "2 25171 86.4034 168.0396 0002357 83.7922 276.3539 14.34216177580592", |
1929 | - "draw_orbit": false, |
1930 | + "orbitColor": [0, 0.5, 0.5], |
1931 | + "orbitVisible": false, |
1932 | + "tle1": "1 25171U 98010C 10302.37600452 .00000023 00000-0 10074-5 0 1777", |
1933 | + "tle2": "2 25171 86.3924 282.9255 0002443 83.4204 276.7285 14.34216568664662", |
1934 | "visible": false |
1935 | }, |
1936 | "IRIDIUM 55": |
1937 | { |
1938 | - "description": "Iridium 55", |
1939 | + "comms": [], |
1940 | "groups": ["iridium", "communications"], |
1941 | - "tle1": "1 25272U 98019A 09080.65396145 -.00000055 00000-0 -26585-4 0 4460", |
1942 | - "tle2": "2 25272 86.3929 104.9099 0002443 82.6744 277.4726 14.34217346574706", |
1943 | - "draw_orbit": false, |
1944 | + "orbitColor": [0, 0.5, 0.5], |
1945 | + "orbitVisible": false, |
1946 | + "tle1": "1 25272U 98019A 10302.19793072 -.00000897 00000-0 -32760-3 0 1336", |
1947 | + "tle2": "2 25272 86.3977 219.6814 0002333 82.1362 278.0136 14.34210252658778", |
1948 | "visible": false |
1949 | }, |
1950 | "IRIDIUM 56": |
1951 | { |
1952 | - "description": "Iridium 56", |
1953 | + "comms": [], |
1954 | "groups": ["iridium", "communications"], |
1955 | - "tle1": "1 25170U 98010B 09080.93996768 .00000090 00000-0 25013-4 0 4042", |
1956 | - "tle2": "2 25170 86.4019 168.0354 0002303 83.3803 276.7656 14.34215986580448", |
1957 | - "draw_orbit": false, |
1958 | + "orbitColor": [0, 0.5, 0.5], |
1959 | + "orbitVisible": false, |
1960 | + "tle1": "1 25170U 98010B 10302.48382465 .00000061 00000-0 14601-4 0 5752", |
1961 | + "tle2": "2 25170 86.3911 282.9308 0002501 83.7859 276.3627 14.34216745664517", |
1962 | "visible": false |
1963 | }, |
1964 | "IRIDIUM 57": |
1965 | { |
1966 | - "description": "Iridium 57", |
1967 | + "comms": [], |
1968 | "groups": ["iridium", "communications"], |
1969 | - "tle1": "1 25273U 98019B 09080.97743384 .00000010 00000-0 -34515-5 0 4842", |
1970 | - "tle2": "2 25273 86.3938 104.9487 0002488 81.4053 278.7428 14.34217528574757", |
1971 | - "draw_orbit": false, |
1972 | + "orbitColor": [0, 0.5, 0.5], |
1973 | + "orbitVisible": false, |
1974 | + "tle1": "1 25273U 98019B 10302.31209892 -.00000700 00000-0 -25712-3 0 1784", |
1975 | + "tle2": "2 25273 86.3974 219.8333 0002462 79.9008 280.2526 14.34210039658791", |
1976 | "visible": false |
1977 | }, |
1978 | "IRIDIUM 58": |
1979 | { |
1980 | - "description": "Iridium 58", |
1981 | + "comms": [], |
1982 | "groups": ["iridium", "communications"], |
1983 | - "tle1": "1 25274U 98019C 09080.56516741 -.00000072 00000-0 -32690-4 0 2919", |
1984 | - "tle2": "2 25274 86.3927 105.2286 0002529 81.2320 278.9159 14.34216858574699", |
1985 | - "draw_orbit": false, |
1986 | + "orbitColor": [0, 0.5, 0.5], |
1987 | + "orbitVisible": false, |
1988 | + "tle1": "1 25274U 98019C 10302.31844124 -.00001117 00000-0 -40608-3 0 9847", |
1989 | + "tle2": "2 25274 86.3979 219.9559 0002429 76.3961 283.7546 14.34209377658793", |
1990 | "visible": false |
1991 | }, |
1992 | "IRIDIUM 59": |
1993 | { |
1994 | - "description": "Iridium 59", |
1995 | + "comms": [], |
1996 | "groups": ["iridium", "communications"], |
1997 | - "tle1": "1 25275U 98019D 09080.92035227 -.00000093 00000-0 -40264-4 0 1373", |
1998 | - "tle2": "2 25275 86.3948 105.0965 0002450 63.6517 296.4931 14.34216674574745", |
1999 | - "draw_orbit": false, |
2000 | + "orbitColor": [0, 0.5, 0.5], |
2001 | + "orbitVisible": false, |
2002 | + "tle1": "1 25275U 98019D 10302.32477943 -.00000216 00000-0 -84076-4 0 8206", |
2003 | + "tle2": "2 25275 86.3979 219.9368 0002632 62.8247 297.3217 14.34211699658791", |
2004 | "visible": false |
2005 | }, |
2006 | "IRIDIUM 6": |
2007 | { |
2008 | - "description": "Iridium 6", |
2009 | + "comms": [], |
2010 | "groups": ["iridium", "communications"], |
2011 | - "tle1": "1 24794U 97020C 09080.68913056 .00000120 00000-0 35767-4 0 3460", |
2012 | - "tle2": "2 24794 86.4005 136.6398 0002655 84.7222 275.4275 14.34219576621845", |
2013 | - "draw_orbit": false, |
2014 | + "orbitColor": [0, 0.5, 0.5], |
2015 | + "orbitVisible": false, |
2016 | + "tle1": "1 24794U 97020C 10302.37260338 -.00000561 00000-0 -20746-3 0 348", |
2017 | + "tle2": "2 24794 86.3940 251.3880 0002313 72.2933 287.8452 14.34215023705935", |
2018 | "visible": false |
2019 | }, |
2020 | "IRIDIUM 60": |
2021 | { |
2022 | - "description": "Iridium 60", |
2023 | + "comms": [], |
2024 | "groups": ["iridium", "communications"], |
2025 | - "tle1": "1 25276U 98019E 09080.57785244 -.00000075 00000-0 -33997-4 0 5140", |
2026 | - "tle2": "2 25276 86.3925 104.9765 0002456 85.4836 274.6635 14.34216941574699", |
2027 | - "draw_orbit": false, |
2028 | + "orbitColor": [0, 0.5, 0.5], |
2029 | + "orbitVisible": false, |
2030 | + "tle1": "1 25276U 98019E 10302.33112759 -.00001105 00000-0 -40191-3 0 2154", |
2031 | + "tle2": "2 25276 86.3967 219.6497 0002422 83.0292 277.1224 14.34209148658791", |
2032 | "visible": false |
2033 | }, |
2034 | "IRIDIUM 61": |
2035 | { |
2036 | - "description": "Iridium 61", |
2037 | + "comms": [], |
2038 | "groups": ["iridium", "communications"], |
2039 | - "tle1": "1 25263U 98018B 09080.65107557 .00000022 00000-0 88117-6 0 4504", |
2040 | - "tle2": "2 25263 86.4005 136.6114 0002427 83.6921 276.4543 14.34219094575509", |
2041 | - "draw_orbit": false, |
2042 | + "orbitColor": [0, 0.5, 0.5], |
2043 | + "orbitVisible": false, |
2044 | + "tle1": "1 25263U 98018B 10302.40433080 .00000170 00000-0 53799-4 0 1438", |
2045 | + "tle2": "2 25263 86.3929 251.3290 0002455 80.2651 279.8837 14.34219130659605", |
2046 | "visible": false |
2047 | }, |
2048 | "IRIDIUM 62": |
2049 | { |
2050 | - "description": "Iridium 62", |
2051 | + "comms": [], |
2052 | "groups": ["iridium", "communications"], |
2053 | - "tle1": "1 25285U 98021A 09080.95798294 .00000157 00000-0 49153-4 0 4806", |
2054 | - "tle2": "2 25285 86.3937 41.6021 0002403 80.9094 279.2370 14.34213398573703", |
2055 | - "draw_orbit": false, |
2056 | + "orbitColor": [0, 0.5, 0.5], |
2057 | + "orbitVisible": false, |
2058 | + "tle1": "1 25285U 98021A 10302.15298377 -.00000004 00000-0 -84603-5 0 1804", |
2059 | + "tle2": "2 25285 86.3969 156.6694 0002301 83.1958 276.9486 14.34222901657729", |
2060 | "visible": false |
2061 | }, |
2062 | "IRIDIUM 63": |
2063 | { |
2064 | - "description": "Iridium 63", |
2065 | + "comms": [], |
2066 | "groups": ["iridium", "communications"], |
2067 | - "tle1": "1 25286U 98021B 09080.96432934 .00000129 00000-0 39109-4 0 4926", |
2068 | - "tle2": "2 25286 86.3940 41.6827 0002432 80.3005 279.8464 14.34213273573702", |
2069 | - "draw_orbit": false, |
2070 | + "orbitColor": [0, 0.5, 0.5], |
2071 | + "orbitVisible": false, |
2072 | + "tle1": "1 25286U 98021B 10302.15932845 .00000016 00000-0 -12485-5 0 1924", |
2073 | + "tle2": "2 25286 86.3966 156.7634 0002279 84.4971 275.6483 14.34222998657724", |
2074 | "visible": false |
2075 | }, |
2076 | "IRIDIUM 64": |
2077 | { |
2078 | - "description": "Iridium 64", |
2079 | + "comms": [], |
2080 | "groups": ["iridium", "communications"], |
2081 | - "tle1": "1 25287U 98021C 09080.97067364 .00000097 00000-0 27550-4 0 4403", |
2082 | - "tle2": "2 25287 86.3941 41.6185 0002444 79.6780 280.4691 14.34213124573687", |
2083 | - "draw_orbit": false, |
2084 | + "orbitColor": [0, 0.5, 0.5], |
2085 | + "orbitVisible": false, |
2086 | + "tle1": "1 25287U 98021C 10302.37497208 -.00000013 00000-0 -11804-4 0 1390", |
2087 | + "tle2": "2 25287 86.3973 156.5999 0002223 82.2934 277.8513 14.34222953657739", |
2088 | "visible": false |
2089 | }, |
2090 | "IRIDIUM 65": |
2091 | { |
2092 | - "description": "Iridium 65", |
2093 | + "comms": [], |
2094 | "groups": ["iridium", "communications"], |
2095 | - "tle1": "1 25288U 98021D 09080.97701561 .00000123 00000-0 36733-4 0 4883", |
2096 | - "tle2": "2 25288 86.3937 41.5700 0002779 77.2145 282.9359 14.34213117573708", |
2097 | - "draw_orbit": false, |
2098 | + "orbitColor": [0, 0.5, 0.5], |
2099 | + "orbitVisible": false, |
2100 | + "tle1": "1 25288U 98021D 10302.45108964 .00000041 00000-0 75363-5 0 1758", |
2101 | + "tle2": "2 25288 86.3960 156.5139 0002175 70.4712 289.6721 14.34222797657762", |
2102 | "visible": false |
2103 | }, |
2104 | "IRIDIUM 66": |
2105 | { |
2106 | - "description": "Iridium 66", |
2107 | + "comms": [], |
2108 | "groups": ["iridium", "communications"], |
2109 | - "tle1": "1 25289U 98021E 09080.91358909 .00000122 00000-0 36428-4 0 4444", |
2110 | - "tle2": "2 25289 86.3935 41.5254 0002463 80.4519 279.6944 14.34213230573699", |
2111 | - "draw_orbit": false, |
2112 | + "orbitColor": [0, 0.5, 0.5], |
2113 | + "orbitVisible": false, |
2114 | + "tle1": "1 25289U 98021E 10302.45742491 .00000101 00000-0 29098-4 0 1275", |
2115 | + "tle2": "2 25289 86.3965 156.4356 0002328 78.4260 281.7198 14.34223601657760", |
2116 | "visible": false |
2117 | }, |
2118 | "IRIDIUM 67": |
2119 | { |
2120 | - "description": "Iridium 67", |
2121 | + "comms": [], |
2122 | "groups": ["iridium", "communications"], |
2123 | - "tle1": "1 25290U 98021F 09080.91993107 .00000097 00000-0 27599-4 0 2674", |
2124 | - "tle2": "2 25290 86.3939 41.6124 0002412 79.5456 280.6007 14.34213091573704", |
2125 | - "draw_orbit": false, |
2126 | + "orbitColor": [0, 0.5, 0.5], |
2127 | + "orbitVisible": false, |
2128 | + "tle1": "1 25290U 98021F 10302.11493475 .00000027 00000-0 27084-5 0 9588", |
2129 | + "tle2": "2 25290 86.3964 156.6776 0002296 82.7253 277.4198 14.34221866657722", |
2130 | "visible": false |
2131 | }, |
2132 | "IRIDIUM 68": |
2133 | { |
2134 | - "description": "Iridium 68", |
2135 | + "comms": [], |
2136 | "groups": ["iridium", "communications"], |
2137 | - "tle1": "1 25291U 98021G 09080.92627825 .00000159 00000-0 49798-4 0 4808", |
2138 | - "tle2": "2 25291 86.3939 41.6734 0002409 78.9035 281.2421 14.34213167573671", |
2139 | - "draw_orbit": false, |
2140 | + "orbitColor": [0, 0.5, 0.5], |
2141 | + "orbitVisible": false, |
2142 | + "tle1": "1 25291U 98021G 10302.19104110 .00000015 00000-0 -17238-5 0 1717", |
2143 | + "tle2": "2 25291 86.3974 156.7196 0002387 79.0553 281.0905 14.34222948657701", |
2144 | "visible": false |
2145 | }, |
2146 | "IRIDIUM 69": |
2147 | { |
2148 | - "description": "Iridium 69", |
2149 | + "comms": [], |
2150 | "groups": ["iridium", "communications"], |
2151 | - "tle1": "1 25319U 98026A 09080.49486789 .00000092 00000-0 24359-4 0 3146", |
2152 | - "tle2": "2 25319 86.3922 69.9726 0004196 68.2945 291.8696 14.37077443570581", |
2153 | - "draw_orbit": false, |
2154 | + "orbitColor": [0, 0.5, 0.5], |
2155 | + "orbitVisible": false, |
2156 | + "tle1": "1 25319U 98026A 10302.17566911 .00000180 00000-0 53713-4 0 02", |
2157 | + "tle2": "2 25319 86.4028 183.7939 0001585 26.1274 333.9999 14.37186631654843", |
2158 | "visible": false |
2159 | }, |
2160 | "IRIDIUM 7": |
2161 | { |
2162 | - "description": "Iridium 7", |
2163 | + "comms": [], |
2164 | "groups": ["iridium", "communications"], |
2165 | - "tle1": "1 24793U 97020B 09080.69547303 .00000099 00000-0 28351-4 0 5488", |
2166 | - "tle2": "2 24793 86.4007 136.6478 0002405 86.1825 273.9642 14.34219478621845", |
2167 | - "draw_orbit": false, |
2168 | + "orbitColor": [0, 0.5, 0.5], |
2169 | + "orbitVisible": false, |
2170 | + "tle1": "1 24793U 97020B 10302.37896456 .00000169 00000-0 53270-4 0 2324", |
2171 | + "tle2": "2 24793 86.3938 251.4051 0002445 79.7949 280.3533 14.34218822705935", |
2172 | "visible": false |
2173 | }, |
2174 | "IRIDIUM 70": |
2175 | { |
2176 | - "description": "Iridium 70", |
2177 | + "comms": [], |
2178 | "groups": ["iridium", "communications"], |
2179 | - "tle1": "1 25342U 98032A 09080.95163750 .00000131 00000-0 39568-4 0 5009", |
2180 | - "tle2": "2 25342 86.3942 41.7657 0002391 79.7340 280.4119 14.34213490567784", |
2181 | - "draw_orbit": false, |
2182 | + "orbitColor": [0, 0.5, 0.5], |
2183 | + "orbitVisible": false, |
2184 | + "tle1": "1 25342U 98032A 10302.35594719 .00000032 00000-0 41991-5 0 1915", |
2185 | + "tle2": "2 25342 86.3971 156.7792 0002356 75.8803 284.2643 14.34223009651836", |
2186 | "visible": false |
2187 | }, |
2188 | "IRIDIUM 71": |
2189 | { |
2190 | - "description": "Iridium 71", |
2191 | + "comms": [], |
2192 | "groups": ["iridium", "communications"], |
2193 | - "tle1": "1 25320U 98026B 09080.50288721 .00000073 00000-0 17612-4 0 528", |
2194 | - "tle2": "2 25320 86.3912 67.4298 0003490 107.5106 252.6473 14.37667721570864", |
2195 | - "draw_orbit": false, |
2196 | + "orbitColor": [0, 0.5, 0.5], |
2197 | + "orbitVisible": false, |
2198 | + "tle1": "1 25320U 98026B 10302.43225917 .00000162 00000-0 47223-4 0 7018", |
2199 | + "tle2": "2 25320 86.4013 180.8198 0003865 51.6716 308.4824 14.37762905655198", |
2200 | "visible": false |
2201 | }, |
2202 | "IRIDIUM 72": |
2203 | { |
2204 | - "description": "Iridium 72", |
2205 | + "comms": [], |
2206 | "groups": ["iridium", "communications"], |
2207 | - "tle1": "1 25343U 98032B 09080.93895920 .00000118 00000-0 35034-4 0 4894", |
2208 | - "tle2": "2 25343 86.3940 41.5784 0002432 76.1741 283.9715 14.34213267567786", |
2209 | - "draw_orbit": false, |
2210 | + "orbitColor": [0, 0.5, 0.5], |
2211 | + "orbitVisible": false, |
2212 | + "tle1": "1 25343U 98032B 10302.34326224 .00000057 00000-0 13368-4 0 1798", |
2213 | + "tle2": "2 25343 86.3968 156.5552 0002307 83.5073 276.6379 14.34222990651835", |
2214 | "visible": false |
2215 | }, |
2216 | "IRIDIUM 73": |
2217 | { |
2218 | - "description": "Iridium 73", |
2219 | + "comms": [], |
2220 | "groups": ["iridium", "communications"], |
2221 | - "tle1": "1 25344U 98032C 09080.78187609 .00000124 00000-0 28464-4 0 3655", |
2222 | - "tle2": "2 25344 86.4423 32.4179 0003011 59.8565 300.2935 14.47114841572085", |
2223 | - "draw_orbit": false, |
2224 | + "orbitColor": [0, 0.5, 0.5], |
2225 | + "orbitVisible": false, |
2226 | + "tle1": "1 25344U 98032C 10302.47566340 .00000207 00000-0 51120-4 0 691", |
2227 | + "tle2": "2 25344 86.4424 145.3306 0001680 87.8897 272.2497 14.47231492656931", |
2228 | "visible": false |
2229 | }, |
2230 | "IRIDIUM 74": |
2231 | { |
2232 | - "description": "Iridium 74", |
2233 | + "comms": [], |
2234 | "groups": ["iridium", "communications"], |
2235 | - "tle1": "1 25345U 98032D 09080.98077926 .00000138 00000-0 35328-4 0 5135", |
2236 | - "tle2": "2 25345 86.4451 41.7016 0002432 79.4303 280.7170 14.42945639568815", |
2237 | - "draw_orbit": false, |
2238 | + "orbitColor": [0, 0.5, 0.5], |
2239 | + "orbitVisible": false, |
2240 | + "tle1": "1 25345U 98032D 10302.16681795 .00000055 00000-0 10378-4 0 2075", |
2241 | + "tle2": "2 25345 86.4477 156.8187 0002394 82.5005 277.6455 14.42972467653344", |
2242 | "visible": false |
2243 | }, |
2244 | "IRIDIUM 75": |
2245 | { |
2246 | - "description": "Iridium 75", |
2247 | + "comms": [], |
2248 | "groups": ["iridium", "communications"], |
2249 | - "tle1": "1 25346U 98032E 09080.94529799 .00000116 00000-0 34491-4 0 5150", |
2250 | - "tle2": "2 25346 86.3944 41.7207 0002402 79.7335 280.4124 14.34213264568357", |
2251 | - "draw_orbit": false, |
2252 | + "orbitColor": [0, 0.5, 0.5], |
2253 | + "orbitVisible": false, |
2254 | + "tle1": "1 25346U 98032E 10302.14029946 .00000047 00000-0 98537-5 0 2073", |
2255 | + "tle2": "2 25346 86.3968 156.8057 0002282 80.4879 279.6566 14.34223153652376", |
2256 | "visible": false |
2257 | }, |
2258 | "IRIDIUM 76": |
2259 | { |
2260 | - "description": "Iridium 76", |
2261 | + "comms": [], |
2262 | "groups": ["iridium", "communications"], |
2263 | - "tle1": "1 25432U 98048B 09080.94861862 .00000054 00000-0 12145-4 0 3738", |
2264 | - "tle2": "2 25432 86.3906 73.1863 0002300 98.0699 262.0767 14.34215369554286", |
2265 | - "draw_orbit": false, |
2266 | + "orbitColor": [0, 0.5, 0.5], |
2267 | + "orbitVisible": false, |
2268 | + "tle1": "1 25432U 98048B 10302.42284404 .00000202 00000-0 64921-4 0 620", |
2269 | + "tle2": "2 25432 86.3994 188.0610 0003037 79.5219 280.6343 14.34216744638343", |
2270 | "visible": false |
2271 | }, |
2272 | "IRIDIUM 77": |
2273 | { |
2274 | - "description": "Iridium 77", |
2275 | + "comms": [], |
2276 | "groups": ["iridium", "communications"], |
2277 | - "tle1": "1 25471U 98051E 09080.82923891 .00000100 00000-0 28744-4 0 6088", |
2278 | - "tle2": "2 25471 86.3997 199.4609 0003163 99.7025 260.4521 14.34216514556700", |
2279 | - "draw_orbit": false, |
2280 | + "orbitColor": [0, 0.5, 0.5], |
2281 | + "orbitVisible": false, |
2282 | + "tle1": "1 25471U 98051E 10302.44284299 -.00000015 00000-0 -12402-4 0 2994", |
2283 | + "tle2": "2 25471 86.3933 314.3567 0003031 65.7459 294.4058 14.34218786640786", |
2284 | "visible": false |
2285 | }, |
2286 | "IRIDIUM 8": |
2287 | { |
2288 | - "description": "Iridium 8", |
2289 | + "comms": [], |
2290 | "groups": ["iridium", "communications"], |
2291 | - "tle1": "1 24792U 97020A 09080.70181317 .00000069 00000-0 17647-4 0 5504", |
2292 | - "tle2": "2 24792 86.3985 136.5160 0002379 81.7440 278.4023 14.34219493621849", |
2293 | - "draw_orbit": false, |
2294 | + "orbitColor": [0, 0.5, 0.5], |
2295 | + "orbitVisible": false, |
2296 | + "tle1": "1 24792U 97020A 10302.38530659 .00000192 00000-0 61608-4 0 2379", |
2297 | + "tle2": "2 24792 86.3929 251.2471 0002480 82.3634 277.7846 14.34219132705930", |
2298 | "visible": false |
2299 | }, |
2300 | "IRIDIUM 80": |
2301 | { |
2302 | - "description": "Iridium 80", |
2303 | + "comms": [], |
2304 | "groups": ["iridium", "communications"], |
2305 | - "tle1": "1 25469U 98051C 09080.96243436 .00000071 00000-0 18286-4 0 4399", |
2306 | - "tle2": "2 25469 86.4008 199.5241 0002317 83.5362 276.6098 14.34216358551528", |
2307 | - "draw_orbit": false, |
2308 | + "orbitColor": [0, 0.5, 0.5], |
2309 | + "orbitVisible": false, |
2310 | + "tle1": "1 25469U 98051C 10302.43650535 -.00000017 00000-0 -13009-4 0 1300", |
2311 | + "tle2": "2 25469 86.3938 314.5373 0002419 84.8770 275.2710 14.34218586635584", |
2312 | "visible": false |
2313 | }, |
2314 | "IRIDIUM 81": |
2315 | { |
2316 | - "description": "Iridium 81", |
2317 | + "comms": [], |
2318 | "groups": ["iridium", "communications"], |
2319 | - "tle1": "1 25468U 98051B 09080.84189280 .00000175 00000-0 55498-4 0 4370", |
2320 | - "tle2": "2 25468 86.4000 199.4552 0002193 77.7791 282.3646 14.34217895551504", |
2321 | - "draw_orbit": false, |
2322 | + "orbitColor": [0, 0.5, 0.5], |
2323 | + "orbitVisible": false, |
2324 | + "tle1": "1 25468U 98051B 10302.38574066 .00000090 00000-0 24917-4 0 1238", |
2325 | + "tle2": "2 25468 86.3931 314.3968 0002427 87.8698 272.2773 14.34221776635575", |
2326 | "visible": false |
2327 | }, |
2328 | "IRIDIUM 82": |
2329 | { |
2330 | - "description": "Iridium 82", |
2331 | + "comms": [], |
2332 | "groups": ["iridium", "communications"], |
2333 | - "tle1": "1 25467U 98051A 09080.84826518 .00000139 00000-0 42421-4 0 6061", |
2334 | - "tle2": "2 25467 86.3999 199.5966 0003026 75.7695 284.3832 14.34216930555283", |
2335 | - "draw_orbit": false, |
2336 | + "orbitColor": [0, 0.5, 0.5], |
2337 | + "orbitVisible": false, |
2338 | + "tle1": "1 25467U 98051A 10302.46187242 .00000020 00000-0 62221-7 0 3005", |
2339 | + "tle2": "2 25467 86.3934 314.5721 0001733 69.8745 290.2646 14.34218863639361", |
2340 | "visible": false |
2341 | }, |
2342 | "IRIDIUM 83": |
2343 | { |
2344 | - "description": "Iridium 83", |
2345 | + "comms": [], |
2346 | "groups": ["iridium", "communications"], |
2347 | - "tle1": "1 25531U 98066E 09080.92094038 .00000145 00000-0 44885-4 0 4298", |
2348 | - "tle2": "2 25531 86.4034 167.8505 0002327 86.2880 273.8578 14.34216119543038", |
2349 | - "draw_orbit": false, |
2350 | + "orbitColor": [0, 0.5, 0.5], |
2351 | + "orbitVisible": false, |
2352 | + "tle1": "1 25531U 98066E 10302.46480137 .00000005 00000-0 -51470-5 0 1354", |
2353 | + "tle2": "2 25531 86.3912 282.7025 0002503 83.0364 277.1121 14.34216282627107", |
2354 | "visible": false |
2355 | }, |
2356 | "IRIDIUM 84": |
2357 | { |
2358 | - "description": "Iridium 84", |
2359 | + "comms": [], |
2360 | "groups": ["iridium", "communications"], |
2361 | - "tle1": "1 25530U 98066D 09080.74968891 .00000167 00000-0 52727-4 0 3189", |
2362 | - "tle2": "2 25530 86.4031 167.9111 0002365 84.5906 275.5553 14.34216529545657", |
2363 | - "draw_orbit": false, |
2364 | + "orbitColor": [0, 0.5, 0.5], |
2365 | + "orbitVisible": false, |
2366 | + "tle1": "1 25530U 98066D 10302.36330788 -.00000003 00000-0 -81612-5 0 43", |
2367 | + "tle2": "2 25530 86.3904 282.7139 0002505 78.5731 281.5759 14.34216547629733", |
2368 | "visible": false |
2369 | }, |
2370 | "IRIDIUM 86": |
2371 | { |
2372 | - "description": "Iridium 86", |
2373 | + "comms": [], |
2374 | "groups": ["iridium", "communications"], |
2375 | - "tle1": "1 25528U 98066B 09080.78774334 .00000154 00000-0 47880-4 0 6551", |
2376 | - "tle2": "2 25528 86.4010 167.7890 0003121 91.2601 268.8949 14.34216774548021", |
2377 | - "draw_orbit": false, |
2378 | + "orbitColor": [0, 0.5, 0.5], |
2379 | + "orbitVisible": false, |
2380 | + "tle1": "1 25528U 98066B 10302.47116108 -.00000018 00000-0 -13523-4 0 3505", |
2381 | + "tle2": "2 25528 86.3909 282.5493 0002556 63.8896 296.2585 14.34214751632112", |
2382 | "visible": false |
2383 | }, |
2384 | "IRIDIUM 90": |
2385 | { |
2386 | - "description": "Iridium 90", |
2387 | + "comms": [], |
2388 | "groups": ["iridium", "communications"], |
2389 | - "tle1": "1 27373U 02005B 09080.75759552 .00000204 00000-0 54978-4 0 9905", |
2390 | - "tle2": "2 27373 86.4545 167.7383 0002768 294.7036 65.3870 14.42961102377382", |
2391 | - "draw_orbit": false, |
2392 | + "orbitColor": [5.26593727501705e-32, 5.26689177642992e-32, 5.26784627784279e-32], |
2393 | + "orbitVisible": false, |
2394 | + "tle1": "1 27373U 02005B 10302.36030628 .00000067 00000-0 14127-4 0 6936", |
2395 | + "tle2": "2 27373 86.4418 282.6053 0006645 119.7863 240.4015 14.42945239461973", |
2396 | "visible": false |
2397 | }, |
2398 | "IRIDIUM 91": |
2399 | { |
2400 | - "description": "Iridium 91", |
2401 | + "comms": [], |
2402 | "groups": ["iridium", "communications"], |
2403 | - "tle1": "1 27372U 02005A 09080.97109062 -.00000020 00000-0 -14335-4 0 297", |
2404 | - "tle2": "2 27372 86.3944 105.0683 0004458 24.2179 335.9227 14.34217272380315", |
2405 | - "draw_orbit": false, |
2406 | + "orbitColor": [0, 0.5, 0.5], |
2407 | + "orbitVisible": false, |
2408 | + "tle1": "1 27372U 02005A 10302.30574910 -.00001098 00000-0 -39937-3 0 7209", |
2409 | + "tle2": "2 27372 86.3993 220.0360 0001688 203.0558 157.0593 14.34209808464351", |
2410 | "visible": false |
2411 | }, |
2412 | "IRIDIUM 911": |
2413 | { |
2414 | - "description": "Iridium 911", |
2415 | + "comms": [], |
2416 | "groups": ["iridium", "communications"], |
2417 | - "tle1": "1 24842U 97030G 09080.72568503 .00000103 00000-0 24569-4 0 2539", |
2418 | - "tle2": "2 24842 86.4523 170.7526 0015237 358.4789 1.6370 14.43158132618677", |
2419 | - "draw_orbit": false, |
2420 | + "orbitColor": [0, 0.5, 0.5], |
2421 | + "orbitVisible": false, |
2422 | + "tle1": "1 24842U 97030G 10302.43016428 .00000175 00000-0 46013-4 0 9118", |
2423 | + "tle2": "2 24842 86.4409 285.4282 0013411 198.6141 161.4575 14.43279277703290", |
2424 | "visible": false |
2425 | }, |
2426 | "IRIDIUM 914": |
2427 | { |
2428 | - "description": "Iridium 914", |
2429 | + "comms": [], |
2430 | "groups": ["iridium", "communications"], |
2431 | - "tle1": "1 24836U 97030A 09080.76183671 .00000072 00000-0 17532-4 0 1698", |
2432 | - "tle2": "2 24836 86.3996 160.9874 0000845 77.3318 282.7979 14.37427546616467", |
2433 | - "draw_orbit": false, |
2434 | - "draw_orbit": false, |
2435 | + "orbitColor": [0, 0.5, 0.5], |
2436 | + "orbitVisible": false, |
2437 | + "tle1": "1 24836U 97030A 10302.44517336 .00000111 00000-0 30384-4 0 8197", |
2438 | + "tle2": "2 24836 86.3879 274.3149 0003577 98.7716 261.3896 14.37508597700748", |
2439 | "visible": false |
2440 | }, |
2441 | "IRIDIUM 920": |
2442 | { |
2443 | - "description": "Iridium 920", |
2444 | + "comms": [], |
2445 | "groups": ["iridium", "communications"], |
2446 | - "tle1": "1 24871U 97034C 09080.95778183 -.00000024 00000-0 -14712-4 0 1999", |
2447 | - "tle2": "2 24871 86.4029 192.6800 0013043 137.8990 222.3210 14.38055586613699", |
2448 | - "draw_orbit": false, |
2449 | + "orbitColor": [0, 0.5, 0.5], |
2450 | + "orbitVisible": false, |
2451 | + "tle1": "1 24871U 97034C 10302.31278119 .00000110 00000-0 29838-4 0 8662", |
2452 | + "tle2": "2 24871 86.3927 306.2315 0013224 32.0769 328.1225 14.38145510697960", |
2453 | "visible": false |
2454 | }, |
2455 | "IRIDIUM 921": |
2456 | { |
2457 | - "description": "Iridium 921", |
2458 | + "comms": [], |
2459 | "groups": ["iridium", "communications"], |
2460 | - "tle1": "1 24873U 97034E 09080.91559410 .00000320 00000-0 24960-4 0 5208", |
2461 | - "tle2": "2 24873 86.3865 31.4638 0010185 126.4679 233.7489 14.97110247636150", |
2462 | - "draw_orbit": false, |
2463 | + "orbitColor": [0, 0.5, 0.5], |
2464 | + "orbitVisible": false, |
2465 | + "tle1": "1 24873U 97034E 10303.02915026 .00000465 00000-0 37148-4 0 2523", |
2466 | + "tle2": "2 24873 86.3825 119.6091 0008373 167.4224 192.7206 14.97579158724008", |
2467 | "visible": false |
2468 | }, |
2469 | "IRIDIUM 94": |
2470 | { |
2471 | - "description": "Iridium 94", |
2472 | + "comms": [], |
2473 | "groups": ["iridium", "communications"], |
2474 | - "tle1": "1 27374U 02005C 09080.75273894 -.00000019 00000-0 -75926-5 0 618", |
2475 | - "tle2": "2 27374 86.5746 104.7593 0002666 84.3214 275.8306 14.66608250380349", |
2476 | - "draw_orbit": false, |
2477 | + "orbitColor": [0, 0.5, 0.5], |
2478 | + "orbitVisible": false, |
2479 | + "tle1": "1 27374U 02005C 10302.47980555 .00000410 00000-0 70164-4 0 8007", |
2480 | + "tle2": "2 27374 86.5797 219.4745 0002539 82.6917 277.4601 14.66263025466324", |
2481 | "visible": false |
2482 | }, |
2483 | "IRIDIUM 95": |
2484 | { |
2485 | - "description": "Iridium 95", |
2486 | + "comms": [], |
2487 | "groups": ["iridium", "communications"], |
2488 | - "tle1": "1 27375U 02005D 09080.66030253 -.00000059 00000-0 -28000-4 0 84", |
2489 | - "tle2": "2 27375 86.3944 105.0032 0002427 89.9724 270.1749 14.34217381379558", |
2490 | - "draw_orbit": false, |
2491 | + "orbitColor": [0, 0.5, 0.5], |
2492 | + "orbitVisible": false, |
2493 | + "tle1": "1 27375U 02005D 10302.34381192 -.00000705 00000-0 -25873-3 0 6953", |
2494 | + "tle2": "2 27375 86.3989 219.8199 0002548 82.5234 277.6316 14.34210284463645", |
2495 | "visible": false |
2496 | }, |
2497 | "IRIDIUM 96": |
2498 | { |
2499 | - "description": "Iridium 96", |
2500 | + "comms": [], |
2501 | "groups": ["iridium", "communications"], |
2502 | - "tle1": "1 27376U 02005E 09080.56026923 -.00000015 00000-0 -69572-5 0 546", |
2503 | - "tle2": "2 27376 86.5756 104.7982 0002697 80.6016 279.5497 14.66608347380313", |
2504 | - "draw_orbit": false, |
2505 | + "orbitColor": [0, 0.5, 0.5], |
2506 | + "orbitVisible": false, |
2507 | + "tle1": "1 27376U 02005E 10302.28129711 .00000378 00000-0 64345-4 0 7878", |
2508 | + "tle2": "2 27376 86.5794 219.4974 0002523 78.3458 281.8057 14.66262420466290", |
2509 | "visible": false |
2510 | }, |
2511 | "IRIDIUM 97": |
2512 | { |
2513 | - "description": "Iridium 97", |
2514 | + "comms": [], |
2515 | "groups": ["iridium", "communications"], |
2516 | - "tle1": "1 27450U 02031A 09080.67644149 .00000069 00000-0 17482-4 0 9207", |
2517 | - "tle2": "2 27450 86.4000 136.7814 0003464 21.9907 338.1435 14.34219520358872", |
2518 | - "draw_orbit": false, |
2519 | + "orbitColor": [0, 0.5, 0.5], |
2520 | + "orbitVisible": false, |
2521 | + "tle1": "1 27450U 02031A 10302.42968416 .00000063 00000-0 15455-4 0 6024", |
2522 | + "tle2": "2 27450 86.3937 251.4719 0001860 175.4448 184.6755 14.34219224442977", |
2523 | "visible": false |
2524 | }, |
2525 | "IRIDIUM 98": |
2526 | { |
2527 | - "description": "Iridium 98", |
2528 | + "comms": [], |
2529 | "groups": ["iridium", "communications"], |
2530 | - "tle1": "1 27451U 02031B 09080.85265633 .00000211 00000-0 57105-4 0 9389", |
2531 | - "tle2": "2 27451 86.4540 199.6827 0005377 49.1145 311.0517 14.42947974358258", |
2532 | - "draw_orbit": false, |
2533 | + "orbitColor": [0, 0.5, 0.5], |
2534 | + "orbitVisible": false, |
2535 | + "tle1": "1 27451U 02031B 10302.45497714 -.00000012 00000-0 -96990-5 0 6509", |
2536 | + "tle2": "2 27451 86.4472 314.8374 0001489 218.8331 141.2772 14.42954121442849", |
2537 | "visible": false |
2538 | }, |
2539 | "ISS (ZARYA)": |
2540 | @@ -1408,81 +1429,117 @@ |
2541 | "description": "ARISS packet uplink", |
2542 | "frequency": 145.825 |
2543 | }], |
2544 | + "groups": [], |
2545 | "hintColor": [0.899999976158142, 0.899999976158142, 0.899999976158142], |
2546 | - "tle1": "1 25544U 98067A 10011.92371058 .00012181 00000-0 76107-4 0 3541", |
2547 | - "tle2": "2 25544 51.6465 313.4924 0007635 171.1951 233.5729 15.77327898638859", |
2548 | - "draw_orbit": true, |
2549 | + "orbitColor": [0.899999976158142, 0.899999976158142, 0.899999976158142], |
2550 | + "orbitVisible": true, |
2551 | + "tle1": "1 25544U 98067A 10303.20078704 .00020354 00000-0 15605-3 0 1733", |
2552 | + "tle2": "2 25544 51.6457 259.7917 0008679 138.1882 56.0735 15.72042387684701", |
2553 | + "visible": true |
2554 | + }, |
2555 | + "ITAMSAT (IO-26)": |
2556 | + { |
2557 | + "comms": [], |
2558 | + "groups": ["amateur", "non-operational"], |
2559 | + "orbitColor": [0, 0.5, 0.5], |
2560 | + "orbitVisible": false, |
2561 | + "tle1": "1 22826U 93061D 10303.02222590 .00000047 00000-0 35053-4 0 4006", |
2562 | + "tle2": "2 22826 98.4962 248.1324 0008279 223.3597 136.6940 14.29571555891428", |
2563 | + "visible": false |
2564 | + }, |
2565 | + "JAS-1 (FO-12)": |
2566 | + { |
2567 | + "comms": [], |
2568 | + "groups": ["amateur", "non-operational"], |
2569 | + "orbitColor": [0, 0.5, 0.5], |
2570 | + "orbitVisible": false, |
2571 | + "tle1": "1 16909U 86061B 10301.81520572 -.00000083 00000-0 10000-3 0 8008", |
2572 | + "tle2": "2 16909 50.0140 68.9849 0011238 37.6411 322.5189 12.44454413101068", |
2573 | + "visible": false |
2574 | + }, |
2575 | + "JAS-1B (FO-20)": |
2576 | + { |
2577 | + "comms": [], |
2578 | + "groups": ["amateur", "non-operational"], |
2579 | + "orbitColor": [0, 0.5, 0.5], |
2580 | + "orbitVisible": false, |
2581 | + "tle1": "1 20480U 90013C 10302.58595027 -.00000023 00000-0 12304-4 0 6036", |
2582 | + "tle2": "2 20480 99.0171 134.5216 0540808 119.2696 246.3574 12.83366095970969", |
2583 | + "visible": false |
2584 | + }, |
2585 | + "JAS-2 (FO-29)": |
2586 | + { |
2587 | + "comms": [ |
2588 | + { |
2589 | + "description": "uplink", |
2590 | + "frequency": 145.95, |
2591 | + "modulation": "SSB/CW" |
2592 | + }, |
2593 | + { |
2594 | + "description": "downlink", |
2595 | + "frequency": 435.85, |
2596 | + "modulation": "SSB/CW" |
2597 | + }], |
2598 | + "groups": ["amateur"], |
2599 | + "orbitColor": [0, 0.5, 0.5], |
2600 | + "orbitVisible": false, |
2601 | + "tle1": "1 24278U 96046B 10303.21498335 -.00000027 00000-0 52353-5 0 4268", |
2602 | + "tle2": "2 24278 98.5187 113.7176 0351215 133.4767 229.6153 13.52953449701367", |
2603 | "visible": true |
2604 | }, |
2605 | "KITSAT 1 (KO-23)": |
2606 | { |
2607 | - "description": "Amateur satellite", |
2608 | + "comms": [], |
2609 | "groups": ["amateur", "non-operational"], |
2610 | - "tle1": "1 22077U 92052B 09080.68175229 -.00000037 00000-0 10000-3 0 6995", |
2611 | - "tle2": "2 22077 66.0847 149.9211 0013023 300.4010 59.5723 12.86447618780266", |
2612 | - "draw_orbit": false, |
2613 | + "orbitColor": [0, 0.5, 0.5], |
2614 | + "orbitVisible": false, |
2615 | + "tle1": "1 22077U 92052B 10301.69375558 -.00000037 00000-0 10000-3 0 849", |
2616 | + "tle2": "2 22077 66.0880 2.5985 0003219 352.4177 7.6789 12.86454782855643", |
2617 | "visible": false |
2618 | }, |
2619 | "KITSAT 2 (KO-25)": |
2620 | { |
2621 | - "description": "Amateur satellite", |
2622 | + "comms": [], |
2623 | "groups": ["amateur", "non-operational"], |
2624 | - "tle1": "1 22828U 93061F 09080.83613139 -.00000007 00000-0 13561-4 0 1385", |
2625 | - "tle2": "2 22828 98.4126 37.7648 0010637 129.0987 231.1150 14.29813121775804", |
2626 | - "draw_orbit": false, |
2627 | + "orbitColor": [0, 0.5, 0.5], |
2628 | + "orbitVisible": false, |
2629 | + "tle1": "1 22828U 93061F 10302.32322926 -.00000002 00000-0 16048-4 0 5998", |
2630 | + "tle2": "2 22828 98.4903 247.2351 0009647 197.8862 162.1982 14.29863524859610", |
2631 | "visible": false |
2632 | }, |
2633 | "LUSAT (LO-19)": |
2634 | { |
2635 | - "description": "Amateur satellite", |
2636 | - "groups": ["amateur", "non-operational"], |
2637 | - "tle1": "1 20442U 90005G 09080.85379851 .00000101 00000-0 52762-4 0 4846", |
2638 | - "tle2": "2 20442 98.2328 60.8676 0012920 67.8229 292.4325 14.32055802 813", |
2639 | - "draw_orbit": false, |
2640 | - "visible": false |
2641 | - }, |
2642 | - "UNAMSAT-2 (MO-30)": |
2643 | - { |
2644 | - "description": "Amateur satellite", |
2645 | - "groups": ["amateur", "non-operational"], |
2646 | - "tle1": "1 24305U 96052B 09080.47219106 .00000009 00000-0 -65784-5 0 696", |
2647 | - "tle2": "2 24305 82.9323 58.9099 0030942 136.0160 224.3468 13.73567811628634", |
2648 | - "draw_orbit": false, |
2649 | - "visible": false |
2650 | - }, |
2651 | - "TIUNGSAT-1 (MO-46)": |
2652 | - { |
2653 | - "description": "Amateur satellite", |
2654 | - "groups": ["amateur", "non-operational"], |
2655 | - "tle1": "1 26548U 00057D 09080.87169003 -.00000081 00000-0 87572-5 0 3491", |
2656 | - "tle2": "2 26548 64.5595 350.9689 0050062 285.2131 74.3419 14.83347625459005", |
2657 | - "draw_orbit": false, |
2658 | - "visible": false |
2659 | + "comms": [], |
2660 | + "groups": ["amateur", "non-operational"], |
2661 | + "orbitColor": [0, 0.5, 0.5], |
2662 | + "orbitVisible": false, |
2663 | + "tle1": "1 20442U 90005G 10303.03138969 -.00000024 00000-0 64040-5 0 9404", |
2664 | + "tle2": "2 20442 98.3139 261.0109 0012834 118.9444 241.3028 14.32109330 84856", |
2665 | + "visible": false |
2666 | + }, |
2667 | + "MOZHAYETS 4 (RS-22)": |
2668 | + { |
2669 | + "comms": [ |
2670 | + { |
2671 | + "description": "downlink", |
2672 | + "frequency": 435.352, |
2673 | + "modulation": "CW" |
2674 | + }], |
2675 | + "groups": ["amateur"], |
2676 | + "orbitColor": [0, 0.5, 0.5], |
2677 | + "orbitVisible": false, |
2678 | + "tle1": "1 27939U 03042A 10303.16037621 .00000168 00000-0 41000-4 0 6768", |
2679 | + "tle2": "2 27939 97.8704 162.7736 0013686 358.0143 2.0979 14.63469534378692", |
2680 | + "visible": true |
2681 | }, |
2682 | "NCUBE-2": |
2683 | { |
2684 | "comms": [], |
2685 | - "tle1": "1 28897U 05043H 10010.64548338 .00000118 00000-0 34050-4 0 457", |
2686 | - "tle2": "2 28897 98.0343 260.0372 0018237 60.5035 299.7985 14.60015933216294", |
2687 | - "draw_orbit": false, |
2688 | - "visible": false |
2689 | - }, |
2690 | - "PCSAT (NO-44)": |
2691 | - { |
2692 | - "description": "Amateur satellite", |
2693 | - "groups": ["amateur", "non-operational"], |
2694 | - "tle1": "1 26931U 01043C 09080.69111513 -.00000245 00000-0 -63501-4 0 1278", |
2695 | - "tle2": "2 26931 67.0529 289.7584 0005178 260.4427 99.6072 14.29549665390074", |
2696 | - "draw_orbit": false, |
2697 | - "visible": false |
2698 | - }, |
2699 | - "SAPPHIRE (NO-45)": |
2700 | - { |
2701 | - "description": "Amateur satellite", |
2702 | - "groups": ["amateur", "non-operational"], |
2703 | - "tle1": "1 26932U 01043D 09080.93767055 -.00000067 00000-0 60390-5 0 1347", |
2704 | - "tle2": "2 26932 67.0506 289.0527 0006019 240.4193 119.6306 14.29604170390158", |
2705 | - "draw_orbit": false, |
2706 | + "groups": [], |
2707 | + "orbitColor": [0, 0.5, 0.5], |
2708 | + "orbitVisible": false, |
2709 | + "tle1": "1 28897U 05043H 10302.24171712 .00000303 00000-0 72179-4 0 2839", |
2710 | + "tle2": "2 28897 97.9916 182.0174 0016343 223.7877 136.2029 14.60144916258849", |
2711 | "visible": false |
2712 | }, |
2713 | "NOAA 15": |
2714 | @@ -1493,11 +1550,11 @@ |
2715 | "frequency": 137.5, |
2716 | "modulation": "AM/APT" |
2717 | }], |
2718 | - "description": "NOAA Weather Satellite 15", |
2719 | "groups": ["scientific", "weather"], |
2720 | - "tle1": "1 25338U 98030A 09080.90089393 -.00000044 00000-0 -26503-6 0 8619", |
2721 | - "tle2": "2 25338 98.5808 72.0445 0009840 316.2506 43.7883 14.24749834564348", |
2722 | - "draw_orbit": true, |
2723 | + "orbitColor": [0, 0.5, 0.5], |
2724 | + "orbitVisible": true, |
2725 | + "tle1": "1 25338U 98030A 10302.13888427 .00000152 00000-0 83611-4 0 5759", |
2726 | + "tle2": "2 25338 98.6333 286.7573 0011440 48.4259 311.7915 14.24863065647828", |
2727 | "visible": true |
2728 | }, |
2729 | "NOAA 17": |
2730 | @@ -1508,11 +1565,11 @@ |
2731 | "frequency": 137.62, |
2732 | "modulation": "AM/APT" |
2733 | }], |
2734 | - "description": "NOAA Weather Satellite 17", |
2735 | "groups": ["scientific", "weather"], |
2736 | - "tle1": "1 27453U 02032A 09080.80573152 -.00000085 00000-0 -18637-4 0 3444", |
2737 | - "tle2": "2 27453 98.4939 142.8491 0011919 24.2008 335.9717 14.24048587350311", |
2738 | - "draw_orbit": true, |
2739 | + "orbitColor": [0, 0.5, 0.5], |
2740 | + "orbitVisible": true, |
2741 | + "tle1": "1 27453U 02032A 10302.46562833 .00000076 00000-0 51045-4 0 411", |
2742 | + "tle2": "2 27453 98.4146 347.3891 0012691 104.2530 256.0079 14.24203572433812", |
2743 | "visible": true |
2744 | }, |
2745 | "NOAA 18": |
2746 | @@ -1523,55 +1580,177 @@ |
2747 | "frequency": 137.1, |
2748 | "modulation": "AM/APT" |
2749 | }], |
2750 | - "description": "NOAA Weather Satellite 18", |
2751 | "groups": ["scientific", "weather"], |
2752 | - "tle1": "1 28654U 05018A 09080.77119997 .00000000 00000-0 24577-4 0 8343", |
2753 | - "tle2": "2 28654 98.8994 24.7197 0013458 248.9605 111.0150 14.11241530197625", |
2754 | - "draw_orbit": true, |
2755 | + "orbitColor": [0, 0.5, 0.5], |
2756 | + "orbitVisible": true, |
2757 | + "tle1": "1 28654U 05018A 10302.42768584 -.00000003 00000-0 23033-4 0 5310", |
2758 | + "tle2": "2 28654 98.9663 248.3933 0014999 37.4701 322.7515 14.11401028280371", |
2759 | "visible": true |
2760 | }, |
2761 | "OPAL (OO-38)": |
2762 | { |
2763 | - "description": "Amateur satellite", |
2764 | + "comms": [], |
2765 | "groups": ["amateur", "non-operational"], |
2766 | - "tle1": "1 26063U 00004C 09080.77017786 -.00000011 00000-0 16522-4 0 4630", |
2767 | - "tle2": "2 26063 100.1939 211.4200 0036983 147.0349 213.3150 14.35858482479406", |
2768 | - "draw_orbit": false, |
2769 | + "orbitColor": [0, 0.5, 0.5], |
2770 | + "orbitVisible": false, |
2771 | + "tle1": "1 26063U 00004C 10303.11531844 .00000042 00000-0 34727-4 0 9392", |
2772 | + "tle2": "2 26063 100.1955 186.4857 0036446 294.3233 65.4157 14.35911764563696", |
2773 | "visible": false |
2774 | }, |
2775 | "OSCAR 3 (OSCAR III)": |
2776 | { |
2777 | - "description": "Amateur satellite", |
2778 | - "groups": ["amateur", "non-operational"], |
2779 | - "tle1": "1 01293U 65016F 09080.92578501 .00000079 00000-0 82795-4 0 4881", |
2780 | - "tle2": "2 01293 70.0694 359.9998 0020227 281.6686 78.2153 14.04694421247559", |
2781 | - "draw_orbit": false, |
2782 | + "comms": [], |
2783 | + "groups": ["amateur", "non-operational"], |
2784 | + "orbitColor": [0, 0.5, 0.5], |
2785 | + "orbitVisible": false, |
2786 | + "tle1": "1 01293U 65016F 10302.23308369 .00000105 00000-0 98486-4 0 9303", |
2787 | + "tle2": "2 01293 70.0738 172.7870 0020257 229.1644 130.7708 14.04822260329894", |
2788 | + "visible": false |
2789 | + }, |
2790 | + "OSCAR 5 (AO-5)": |
2791 | + { |
2792 | + "comms": [], |
2793 | + "groups": ["amateur", "non-operational"], |
2794 | + "orbitColor": [0, 0.5, 0.5], |
2795 | + "orbitVisible": false, |
2796 | + "tle1": "1 04321U 70008B 10301.91710438 -.00000031 00000-0 10000-3 0 3930", |
2797 | + "tle2": "2 04321 102.1008 327.0014 0027516 116.1671 244.2233 12.52160958863180", |
2798 | + "visible": false |
2799 | + }, |
2800 | + "OSCAR 6 (AO-6)": |
2801 | + { |
2802 | + "comms": [], |
2803 | + "groups": ["amateur", "non-operational"], |
2804 | + "orbitColor": [0, 0.5, 0.5], |
2805 | + "orbitVisible": false, |
2806 | + "tle1": "1 06236U 72082B 10302.46287730 -.00000027 00000-0 10000-3 0 3795", |
2807 | + "tle2": "2 06236 101.3974 300.6206 0004354 355.3839 4.7193 12.53083202739945", |
2808 | + "visible": false |
2809 | + }, |
2810 | + "OSCAR 7 (AO-7)": |
2811 | + { |
2812 | + "comms": [ |
2813 | + { |
2814 | + "description": "200mW Beacon used with Modes B & C", |
2815 | + "frequency": 145.972 |
2816 | + }, |
2817 | + { |
2818 | + "description": "downlink", |
2819 | + "frequency": 145.95, |
2820 | + "modulation": "Modes B & C" |
2821 | + }, |
2822 | + { |
2823 | + "description": "uplink", |
2824 | + "frequency": 145.9, |
2825 | + "modulation": "Mode A" |
2826 | + }, |
2827 | + { |
2828 | + "description": "downlink", |
2829 | + "frequency": 29.45, |
2830 | + "modulation": "Mode A" |
2831 | + }, |
2832 | + { |
2833 | + "description": "200mW Beacon used with Mode A", |
2834 | + "frequency": 29.502 |
2835 | + }, |
2836 | + { |
2837 | + "frequency": 2304.1, |
2838 | + "modulation": "40 mW Beacon - only when commanded" |
2839 | + }, |
2840 | + { |
2841 | + "description": "uplink", |
2842 | + "frequency": 432.15, |
2843 | + "modulation": "Modes B & C" |
2844 | + }], |
2845 | + "groups": ["amateur"], |
2846 | + "orbitColor": [0, 0.5, 0.5], |
2847 | + "orbitVisible": false, |
2848 | + "tle1": "1 07530U 74089B 10302.99536252 -.00000027 00000-0 10000-3 0 9152", |
2849 | + "tle2": "2 07530 101.3990 313.6186 0012251 10.5676 349.5654 12.53580099645344", |
2850 | + "visible": true |
2851 | + }, |
2852 | + "OSCAR 8 (AO-8)": |
2853 | + { |
2854 | + "comms": [], |
2855 | + "groups": ["amateur", "non-operational"], |
2856 | + "orbitColor": [0, 0.5, 0.5], |
2857 | + "orbitVisible": false, |
2858 | + "tle1": "1 10703U 78026B 10303.09852379 .00000352 00000-0 27312-3 0 9789", |
2859 | + "tle2": "2 10703 98.7637 333.1411 0005433 217.9200 142.1572 13.98879539665916", |
2860 | + "visible": false |
2861 | + }, |
2862 | + "PACSAT (AO-16)": |
2863 | + { |
2864 | + "comms": [], |
2865 | + "groups": ["amateur", "non-operational"], |
2866 | + "orbitColor": [0, 0.5, 0.5], |
2867 | + "orbitVisible": false, |
2868 | + "tle1": "1 20439U 90005D 10302.98536407 .00000041 00000-0 31053-4 0 307", |
2869 | + "tle2": "2 20439 98.3510 255.7049 0011649 123.3798 236.8503 14.31880388 84678", |
2870 | + "visible": false |
2871 | + }, |
2872 | + "PAN SAT (PO-34)": |
2873 | + { |
2874 | + "comms": [], |
2875 | + "groups": ["amateur", "non-operational"], |
2876 | + "orbitColor": [0, 0.5, 0.5], |
2877 | + "orbitVisible": false, |
2878 | + "tle1": "1 25520U 98064B 10302.75413069 .00000899 00000-0 33840-4 0 6098", |
2879 | + "tle2": "2 25520 28.4584 148.7610 0005080 351.8308 8.2188 15.17717260664612", |
2880 | + "visible": false |
2881 | + }, |
2882 | + "PCSAT (NO-44)": |
2883 | + { |
2884 | + "comms": [], |
2885 | + "groups": ["amateur", "non-operational"], |
2886 | + "orbitColor": [0, 0.5, 0.5], |
2887 | + "orbitVisible": false, |
2888 | + "tle1": "1 26931U 01043C 10302.17766215 -.00000115 00000-0 -12460-4 0 5936", |
2889 | + "tle2": "2 26931 67.0531 218.7490 0005616 271.5946 88.4492 14.29617215473904", |
2890 | "visible": false |
2891 | }, |
2892 | "PEHUENSAT 1 (PO-63)": |
2893 | { |
2894 | "comms": [], |
2895 | - "tle1": "1 29712U 07001D 09129.76442331 .00000438 00000-0 63872-4 0 4664", |
2896 | - "tle2": "2 29712 97.8314 187.0851 0015285 43.5600 316.6810 14.80531783125782", |
2897 | - "draw_orbit": false, |
2898 | - "visible": false |
2899 | + "groups": [], |
2900 | + "orbitColor": [0, 0.5, 0.5], |
2901 | + "orbitVisible": false, |
2902 | + "tle1": "1 29712U 07001D 10302.20215092 .00001000 00000-0 13435-3 0 3709", |
2903 | + "tle2": "2 29712 97.7667 350.0455 0015127 88.8781 271.4131 14.81366844205329", |
2904 | + "visible": false |
2905 | + }, |
2906 | + "PHASE 3B (AO-10)": |
2907 | + { |
2908 | + "comms": [], |
2909 | + "groups": ["amateur", "non-operational"], |
2910 | + "orbitColor": [0, 0.5, 0.5], |
2911 | + "orbitVisible": false, |
2912 | + "tle1": "1 14129U 83058B 10301.48429116 -.00000086 00000-0 10000-3 0 7774", |
2913 | + "tle2": "2 14129 26.7917 67.8588 6039053 9.7099 357.9616 2.05867874177912", |
2914 | + "visible": false |
2915 | + }, |
2916 | + "PHASE 3D (AO-40)": |
2917 | + { |
2918 | + "comms": [ |
2919 | + { |
2920 | + "description": "Beacon", |
2921 | + "frequency": 145.898 |
2922 | + }], |
2923 | + "groups": ["amateur"], |
2924 | + "orbitColor": [0, 0.5, 0.5], |
2925 | + "orbitVisible": false, |
2926 | + "tle1": "1 26609U 00072B 10301.01384339 -.00000076 00000-0 10000-3 0 4339", |
2927 | + "tle2": "2 26609 8.7265 307.6100 7952734 2.2749 359.9339 1.25586646 45880", |
2928 | + "visible": true |
2929 | }, |
2930 | "POSAT (PO-28)": |
2931 | { |
2932 | - "description": "Amateur satellite", |
2933 | - "groups": ["amateur", "non-operational"], |
2934 | - "tle1": "1 22829U 93061G 09080.84418226 -.00000012 00000-0 11647-4 0 1746", |
2935 | - "tle2": "2 22829 98.4087 38.9001 0010531 125.5741 234.6455 14.30211190807812", |
2936 | - "draw_orbit": false, |
2937 | - "visible": false |
2938 | - }, |
2939 | - "PAN SAT (PO-34)": |
2940 | - { |
2941 | - "description": "Amateur satellite", |
2942 | - "groups": ["amateur", "non-operational"], |
2943 | - "tle1": "1 25520U 98064B 09080.51367299 .00000409 00000-0 10351-4 0 2091", |
2944 | - "tle2": "2 25520 28.4596 121.9419 0005186 71.4910 288.6250 15.17311364575324", |
2945 | - "draw_orbit": false, |
2946 | + "comms": [], |
2947 | + "groups": ["amateur", "non-operational"], |
2948 | + "orbitColor": [0, 0.5, 0.5], |
2949 | + "orbitVisible": false, |
2950 | + "tle1": "1 22829U 93061G 10302.02792415 .00000101 00000-0 55301-4 0 6131", |
2951 | + "tle2": "2 22829 98.4857 248.1374 0009510 193.5771 166.5159 14.30264274891603", |
2952 | "visible": false |
2953 | }, |
2954 | "RADIO ROSTO (RS-15)": |
2955 | @@ -1595,70 +1774,41 @@ |
2956 | "frequency": 145.878, |
2957 | "modulation": "Mode A" |
2958 | }], |
2959 | - "description": "Radio Sputnik (RS) 15", |
2960 | - "groups": ["amateur"], |
2961 | - "tle1": "1 23439U 94085A 09080.97335086 -.00000039 00000-0 10000-3 0 2029", |
2962 | - "tle2": "2 23439 64.8130 45.8464 0146514 68.4113 293.2342 11.27553256586281", |
2963 | - "draw_orbit": false, |
2964 | - "visible": true |
2965 | - }, |
2966 | - "MOZHAYETS 4 (RS-22)": |
2967 | - { |
2968 | - "comms": [ |
2969 | - { |
2970 | - "description": "downlink", |
2971 | - "frequency": 435.352, |
2972 | - "modulation": "CW" |
2973 | - }], |
2974 | - "description": "Amateur satellite", |
2975 | - "groups": ["amateur"], |
2976 | - "tle1": "1 27939U 03042A 09080.74176473 .00000091 00000-0 26556-4 0 7452", |
2977 | - "tle2": "2 27939 97.9578 318.7317 0014519 50.9541 309.2958 14.63301923292787", |
2978 | - "draw_orbit": false, |
2979 | - "visible": true |
2980 | - }, |
2981 | - "SEASAT 1": |
2982 | + "groups": ["amateur"], |
2983 | + "orbitColor": [0, 0.5, 0.5], |
2984 | + "orbitVisible": false, |
2985 | + "tle1": "1 23439U 94085A 10301.95764716 -.00000039 00000-0 10000-3 0 3583", |
2986 | + "tle2": "2 23439 64.8173 178.2127 0163424 320.6885 38.2267 11.27554600652352", |
2987 | + "visible": true |
2988 | + }, |
2989 | + "SAPPHIRE (NO-45)": |
2990 | { |
2991 | "comms": [], |
2992 | - "tle1": "1 10967U 78064A 10011.48877880 -.00000066 00000-0 21494-4 0 146", |
2993 | - "tle2": "2 10967 108.0202 37.9154 0003096 275.7432 84.3363 14.42175802655204", |
2994 | - "draw_orbit": false, |
2995 | - "visible": true |
2996 | - }, |
2997 | - "SEDSAT 1 (SO-33)": |
2998 | - { |
2999 | - "description": "Amateur satellite", |
3000 | - "groups": ["amateur", "non-operational"], |
3001 | - "tle1": "1 25509U 98061B 09080.68393431 .00000028 00000-0 -80808-5 0 4141", |
3002 | - "tle2": "2 25509 31.4336 187.2850 0354956 293.3308 63.0343 14.28246349543312", |
3003 | - "draw_orbit": false, |
3004 | - "visible": false |
3005 | - }, |
3006 | - "SUNSAT (SO-35)": |
3007 | - { |
3008 | - "description": "Amateur satellite", |
3009 | - "groups": ["amateur", "non-operational"], |
3010 | - "tle1": "1 25636U 99008C 09080.57259666 -.00000022 00000-0 18215-5 0 2632", |
3011 | - "tle2": "2 25636 96.4526 285.7652 0148832 138.9281 222.3233 14.43457619530468", |
3012 | - "draw_orbit": false, |
3013 | + "groups": ["amateur", "non-operational"], |
3014 | + "orbitColor": [0, 0.5, 0.5], |
3015 | + "orbitVisible": false, |
3016 | + "tle1": "1 26932U 01043D 10302.26600351 .00000136 00000-0 85139-4 0 5995", |
3017 | + "tle2": "2 26932 67.0564 218.6385 0004099 286.5958 73.4683 14.29652606473961", |
3018 | "visible": false |
3019 | }, |
3020 | "SAUDISAT 1A (SO-41)": |
3021 | { |
3022 | - "description": "Amateur satellite", |
3023 | + "comms": [], |
3024 | "groups": ["amateur", "non-operational"], |
3025 | - "tle1": "1 26545U 00057A 09081.15361688 .00000047 00000-0 25135-4 0 2129", |
3026 | - "tle2": "2 26545 64.5602 25.7522 0053775 291.6905 67.8477 14.80571352458315", |
3027 | - "draw_orbit": false, |
3028 | + "orbitColor": [0, 0.5, 0.5], |
3029 | + "orbitVisible": false, |
3030 | + "tle1": "1 26545U 00057A 10302.21213510 .00000238 00000-0 49391-4 0 6636", |
3031 | + "tle2": "2 26545 64.5593 19.7278 0028002 198.2244 161.7864 14.80754992545086", |
3032 | "visible": false |
3033 | }, |
3034 | "SAUDISAT 1B (SO-42)": |
3035 | { |
3036 | - "description": "Amateur satellite", |
3037 | + "comms": [], |
3038 | "groups": ["amateur", "non-operational"], |
3039 | - "tle1": "1 26549U 00057E 09080.84595995 -.00000003 00000-0 19202-4 0 2905", |
3040 | - "tle2": "2 26549 64.5580 42.8624 0056981 296.2253 63.3012 14.79427179457945", |
3041 | - "draw_orbit": false, |
3042 | + "orbitColor": [0, 0.5, 0.5], |
3043 | + "orbitVisible": false, |
3044 | + "tle1": "1 26549U 00057E 10302.29087126 .00000089 00000-0 30973-4 0 7563", |
3045 | + "tle2": "2 26549 64.5587 38.8932 0033355 196.0394 163.9650 14.79603621544706", |
3046 | "visible": false |
3047 | }, |
3048 | "SAUDISAT 1C (SO-50)": |
3049 | @@ -1674,73 +1824,151 @@ |
3050 | "frequency": 436.795, |
3051 | "modulation": "FM" |
3052 | }], |
3053 | - "description": "Amateur satellite", |
3054 | "groups": ["amateur"], |
3055 | - "tle1": "1 27607U 02058C 09080.71748238 -.00000074 00000-0 10658-4 0 8438", |
3056 | - "tle2": "2 27607 64.5592 290.7496 0076162 224.5615 134.9353 14.71420878335808", |
3057 | - "draw_orbit": false, |
3058 | - "visible": true |
3059 | + "orbitColor": [0, 0.5, 0.5], |
3060 | + "orbitVisible": false, |
3061 | + "tle1": "1 27607U 02058C 10302.97362182 .00000100 00000-0 37593-4 0 3054", |
3062 | + "tle2": "2 27607 64.5576 307.1018 0045330 21.5563 338.7440 14.71595158422210", |
3063 | + "visible": true |
3064 | + }, |
3065 | + "SEASAT 1": |
3066 | + { |
3067 | + "comms": [], |
3068 | + "groups": [], |
3069 | + "orbitColor": [0, 0.5, 0.5], |
3070 | + "orbitVisible": false, |
3071 | + "tle1": "1 10967U 78064A 10302.53133137 .00000010 00000-0 44538-4 0 2510", |
3072 | + "tle2": "2 10967 108.0172 284.8510 0002985 245.3915 114.6908 14.42234203697168", |
3073 | + "visible": true |
3074 | + }, |
3075 | + "SEDSAT 1 (SO-33)": |
3076 | + { |
3077 | + "comms": [], |
3078 | + "groups": ["amateur", "non-operational"], |
3079 | + "orbitColor": [0, 0.5, 0.5], |
3080 | + "orbitVisible": false, |
3081 | + "tle1": "1 25509U 98061B 10302.80418171 .00000116 00000-0 12709-4 0 8250", |
3082 | + "tle2": "2 25509 31.4315 107.2389 0353128 26.9173 334.9311 14.28335249627314", |
3083 | + "visible": false |
3084 | + }, |
3085 | + "SSETI EXPRESS (XO-53)": |
3086 | + { |
3087 | + "comms": [], |
3088 | + "groups": ["amateur", "non-operational"], |
3089 | + "orbitColor": [0, 0.5, 0.5], |
3090 | + "orbitVisible": false, |
3091 | + "tle1": "1 28894U 05043E 10302.16153439 .00000121 00000-0 34690-4 0 9025", |
3092 | + "tle2": "2 28894 97.9880 181.3536 0016597 225.9524 134.0317 14.59762730266645", |
3093 | + "visible": false |
3094 | + }, |
3095 | + "SUNSAT (SO-35)": |
3096 | + { |
3097 | + "comms": [], |
3098 | + "groups": ["amateur", "non-operational"], |
3099 | + "orbitColor": [0, 0.5, 0.5], |
3100 | + "orbitVisible": false, |
3101 | + "tle1": "1 25636U 99008C 10302.42690836 .00000097 00000-0 32625-4 0 7459", |
3102 | + "tle2": "2 25636 96.4808 12.3730 0149487 81.3368 280.4726 14.43522481615125", |
3103 | + "visible": false |
3104 | + }, |
3105 | + "TECHSAT 1B (GO-32)": |
3106 | + { |
3107 | + "comms": [], |
3108 | + "groups": ["amateur", "non-operational"], |
3109 | + "orbitColor": [0, 0.5, 0.5], |
3110 | + "orbitVisible": false, |
3111 | + "tle1": "1 25397U 98043D 10302.45413869 .00000064 00000-0 46461-4 0 3186", |
3112 | + "tle2": "2 25397 98.3173 302.5353 0000629 180.3036 179.8156 14.23188539639142", |
3113 | + "visible": false |
3114 | + }, |
3115 | + "TIUNGSAT-1 (MO-46)": |
3116 | + { |
3117 | + "comms": [], |
3118 | + "groups": ["amateur", "non-operational"], |
3119 | + "orbitColor": [0, 0.5, 0.5], |
3120 | + "orbitVisible": false, |
3121 | + "tle1": "1 26548U 00057D 10302.44527698 .00000147 00000-0 35574-4 0 8357", |
3122 | + "tle2": "2 26548 64.5566 335.2657 0020885 204.2588 155.7499 14.83575085546014", |
3123 | + "visible": false |
3124 | }, |
3125 | "TMSAT-1 (TO-31)": |
3126 | { |
3127 | - "description": "Amateur satellite", |
3128 | + "comms": [], |
3129 | "groups": ["amateur", "non-operational"], |
3130 | - "tle1": "1 25396U 98043C 09080.64556542 -.00000075 00000-0 -14722-4 0 3609", |
3131 | - "tle2": "2 25396 98.3414 113.1366 0003330 117.6494 242.5017 14.23773358555849", |
3132 | - "draw_orbit": false, |
3133 | + "orbitColor": [0, 0.5, 0.5], |
3134 | + "orbitVisible": false, |
3135 | + "tle1": "1 25396U 98043C 10303.07507128 .00000005 00000-0 19995-4 0 8324", |
3136 | + "tle2": "2 25396 98.3081 309.1391 0001990 189.6091 170.5046 14.23816681639433", |
3137 | "visible": false |
3138 | }, |
3139 | "UARS": |
3140 | { |
3141 | "comms": [], |
3142 | - "tle1": "1 21701U 91063B 10011.56517379 .00007948 00000-0 10185-3 0 8632", |
3143 | - "tle2": "2 21701 56.9701 169.1612 0067526 215.9750 143.6756 15.57588661 11660", |
3144 | - "draw_orbit": false, |
3145 | + "groups": [], |
3146 | + "orbitColor": [0, 0.5, 0.5], |
3147 | + "orbitVisible": false, |
3148 | + "tle1": "1 21701U 91063B 10302.26036846 .00018353 00000-0 16692-3 0 1147", |
3149 | + "tle2": "2 21701 56.9712 322.6612 0063129 75.5188 285.2865 15.65524459 57060", |
3150 | "visible": true |
3151 | }, |
3152 | + "UNAMSAT-2 (MO-30)": |
3153 | + { |
3154 | + "comms": [], |
3155 | + "groups": ["amateur", "non-operational"], |
3156 | + "orbitColor": [0, 0.5, 0.5], |
3157 | + "orbitVisible": false, |
3158 | + "tle1": "1 24305U 96052B 10302.66397316 .00000057 00000-0 44888-4 0 5650", |
3159 | + "tle2": "2 24305 82.9373 344.6354 0028974 307.1040 52.7473 13.73589346709241", |
3160 | + "visible": false |
3161 | + }, |
3162 | + "UOSAT 12 (UO-36)": |
3163 | + { |
3164 | + "comms": [], |
3165 | + "groups": ["amateur", "non-operational"], |
3166 | + "orbitColor": [0, 0.5, 0.5], |
3167 | + "orbitVisible": false, |
3168 | + "tle1": "1 25693U 99021A 10302.42534737 .00000060 00000-0 27607-4 0 3410", |
3169 | + "tle2": "2 25693 64.5605 21.9857 0045126 293.3020 66.3329 14.78830288621661", |
3170 | + "visible": false |
3171 | + }, |
3172 | "UOSAT 2 (UO-11)": |
3173 | { |
3174 | - "description": "Amateur satellite", |
3175 | + "comms": [], |
3176 | "groups": ["amateur", "non-operational"], |
3177 | - "tle1": "1 14781U 84021B 09080.64423839 .00000051 00000-0 14037-4 0 9177", |
3178 | - "tle2": "2 14781 98.1180 124.2766 0008009 259.6956 100.3325 14.79700400344880", |
3179 | - "draw_orbit": false, |
3180 | + "orbitColor": [0, 0.5, 0.5], |
3181 | + "orbitVisible": false, |
3182 | + "tle1": "1 14781U 84021B 10302.71427181 .00000222 00000-0 36568-4 0 3771", |
3183 | + "tle2": "2 14781 98.0384 354.7384 0009363 157.3975 202.7687 14.79851230431704", |
3184 | "visible": false |
3185 | }, |
3186 | "UOSAT 3 (UO-14)": |
3187 | { |
3188 | - "description": "Amateur satellite", |
3189 | + "comms": [], |
3190 | "groups": ["amateur", "non-operational"], |
3191 | - "tle1": "1 20437U 90005B 09080.89917087 -.00000002 00000-0 14954-4 0 8782", |
3192 | - "tle2": "2 20437 98.3297 42.5381 0011721 66.3877 293.8534 14.31539355 562", |
3193 | - "draw_orbit": false, |
3194 | + "orbitColor": [0, 0.5, 0.5], |
3195 | + "orbitVisible": false, |
3196 | + "tle1": "1 20437U 90005B 10302.30937719 .00000055 00000-0 36384-4 0 3469", |
3197 | + "tle2": "2 20437 98.4078 247.9991 0011320 126.0291 234.1962 14.31589868 84465", |
3198 | "visible": false |
3199 | }, |
3200 | "UOSAT 4 (UO-15)": |
3201 | { |
3202 | - "description": "Amateur satellite", |
3203 | + "comms": [], |
3204 | "groups": ["amateur", "non-operational"], |
3205 | - "tle1": "1 20438U 90005C 09080.90778475 -.00000010 00000-0 12128-4 0 3731", |
3206 | - "tle2": "2 20438 98.3890 35.1941 0010802 94.4649 265.7767 14.30441006999994", |
3207 | - "draw_orbit": false, |
3208 | + "orbitColor": [0, 0.5, 0.5], |
3209 | + "orbitVisible": false, |
3210 | + "tle1": "1 20438U 90005C 10302.97951299 -.00000004 00000-0 14694-4 0 8462", |
3211 | + "tle2": "2 20438 98.4615 244.0524 0010250 156.8681 203.2963 14.30479361 83921", |
3212 | "visible": false |
3213 | }, |
3214 | "UOSAT 5 (UO-22)": |
3215 | { |
3216 | - "description": "Amateur satellite", |
3217 | - "groups": ["amateur", "non-operational"], |
3218 | - "tle1": "1 21575U 91050B 09080.89099734 .00000050 00000-0 29842-4 0 5115", |
3219 | - "tle2": "2 21575 98.4357 31.0711 0006470 282.9876 77.0586 14.39667965928143", |
3220 | - "draw_orbit": false, |
3221 | - "visible": false |
3222 | - }, |
3223 | - "UOSAT 12 (UO-36)": |
3224 | - { |
3225 | - "description": "Amateur satellite", |
3226 | - "groups": ["amateur", "non-operational"], |
3227 | - "tle1": "1 25693U 99021A 09080.89685166 -.00000052 00000-0 12065-4 0 8740", |
3228 | - "tle2": "2 25693 64.5601 24.0115 0014988 205.2445 154.7951 14.78742116534931", |
3229 | - "draw_orbit": false, |
3230 | + "comms": [], |
3231 | + "groups": ["amateur", "non-operational"], |
3232 | + "orbitColor": [0, 0.5, 0.5], |
3233 | + "orbitVisible": false, |
3234 | + "tle1": "1 21575U 91050B 10303.01886441 .00000024 00000-0 21670-4 0 9710", |
3235 | + "tle2": "2 21575 98.5100 251.7751 0006921 329.1149 30.9642 14.39741583 12620", |
3236 | "visible": false |
3237 | }, |
3238 | "UWE-1": |
3239 | @@ -1751,44 +1979,23 @@ |
3240 | "frequency": 437.505, |
3241 | "modulation": "AFSK, 9600 baud" |
3242 | }], |
3243 | - "tle1": "1 28892U 05043C 10011.41208966 .00000105 00000-0 31411-4 0 5277", |
3244 | - "tle2": "2 28892 98.0328 260.2408 0018374 58.0630 302.2350 14.59806760224221", |
3245 | - "draw_orbit": false, |
3246 | + "groups": [], |
3247 | + "orbitColor": [0, 0.5, 0.5], |
3248 | + "orbitVisible": false, |
3249 | + "tle1": "1 28892U 05043C 10302.15932038 .00000277 00000-0 67049-4 0 7666", |
3250 | + "tle2": "2 28892 97.9897 181.2370 0016475 223.3607 136.6293 14.59933347266640", |
3251 | "visible": false |
3252 | }, |
3253 | - "HAMSAT (VO-52)": |
3254 | - { |
3255 | - "comms": [ |
3256 | - { |
3257 | - "description": "Beacon", |
3258 | - "frequency": 145.86, |
3259 | - "modulation": "CW" |
3260 | - }], |
3261 | - "description": "Amateur satellite", |
3262 | - "groups": ["amateur"], |
3263 | - "tle1": "1 28650U 05017B 09080.72416803 -.00000248 00000-0 -24823-4 0 1847", |
3264 | - "tle2": "2 28650 97.7510 145.1610 0026425 317.3448 42.5717 14.81561809209694", |
3265 | - "draw_orbit": false, |
3266 | - "visible": true |
3267 | - }, |
3268 | "WEBERSAT (WO-18)": |
3269 | { |
3270 | - "description": "Amateur satellite", |
3271 | - "groups": ["amateur", "non-operational"], |
3272 | - "tle1": "1 20441U 90005F 09080.86048996 .00000029 00000-0 26273-4 0 7816", |
3273 | - "tle2": "2 20441 98.2526 56.8316 0012586 69.9267 290.3272 14.31886901 720", |
3274 | - "draw_orbit": false, |
3275 | - "visible": false |
3276 | - }, |
3277 | - "SSETI EXPRESS (XO-53)": |
3278 | - { |
3279 | - "description": "Amateur satellite", |
3280 | - "groups": ["amateur", "non-operational"], |
3281 | - "tle1": "1 28894U 05043E 09080.73492122 .00000020 00000-0 13815-4 0 4180", |
3282 | - "tle2": "2 28894 98.0668 333.5116 0016556 264.1886 95.7421 14.59659039181098", |
3283 | - "draw_orbit": false, |
3284 | + "comms": [], |
3285 | + "groups": ["amateur", "non-operational"], |
3286 | + "orbitColor": [0, 0.5, 0.5], |
3287 | + "orbitVisible": false, |
3288 | + "tle1": "1 20441U 90005F 10302.89592240 .00000037 00000-0 29406-4 0 2561", |
3289 | + "tle2": "2 20441 98.3325 258.0123 0012200 121.5114 238.7257 14.31947760 84732", |
3290 | "visible": false |
3291 | } |
3292 | }, |
3293 | "shortName": "satellite orbital data" |
3294 | -} |
3295 | +} |
3296 | \ No newline at end of file |
3297 | |
3298 | === modified file 'plugins/Satellites/src/CMakeLists.txt' |
3299 | --- plugins/Satellites/src/CMakeLists.txt 2010-05-10 08:59:49 +0000 |
3300 | +++ plugins/Satellites/src/CMakeLists.txt 2010-11-04 00:01:48 +0000 |
3301 | @@ -1,15 +1,33 @@ |
3302 | -INCLUDE_DIRECTORIES(. sgp4sdp4 gui ${CMAKE_BINARY_DIR}/plugins/Satellites/src ${CMAKE_BINARY_DIR}/plugins/Satellites/src/gui) |
3303 | +INCLUDE_DIRECTORIES(. gsatellite gui ${CMAKE_BINARY_DIR}/plugins/Satellites/src ${CMAKE_BINARY_DIR}/plugins/Satellites/src/gui) |
3304 | |
3305 | LINK_DIRECTORIES(/src) |
3306 | |
3307 | SET(Satellites_SRCS |
3308 | - sgp4sdp4/sgp4sdp4.c |
3309 | - sgp4sdp4/sgp4sdp4.h |
3310 | - sgp4sdp4/sgp_in.c |
3311 | - sgp4sdp4/sgp_math.c |
3312 | - sgp4sdp4/sgp_obs.c |
3313 | - sgp4sdp4/sgp_time.c |
3314 | - sgp4sdp4/solar.c |
3315 | + gsatellite/gException.hpp |
3316 | + gsatellite/gMatrix.cpp |
3317 | + gsatellite/gMatrix.hpp |
3318 | + gsatellite/gMatrixTempl.hpp |
3319 | + gsatellite/gObserver.cpp |
3320 | + gsatellite/gObserver.hpp |
3321 | + gsatellite/gSatTEME.cpp |
3322 | + gsatellite/gSatTEME.hpp |
3323 | + gsatellite/mathUtils.cpp |
3324 | + gsatellite/mathUtils.hpp |
3325 | + gsatellite/gTime.cpp |
3326 | + gsatellite/gTime.hpp |
3327 | + gsatellite/gTimeSpan.cpp |
3328 | + gsatellite/gVector.cpp |
3329 | + gsatellite/gVector.hpp |
3330 | + gsatellite/gVectorTempl.hpp |
3331 | + gsatellite/sgp4ext.cpp |
3332 | + gsatellite/sgp4ext.h |
3333 | + gsatellite/sgp4io.cpp |
3334 | + gsatellite/sgp4io.h |
3335 | + gsatellite/sgp4unit.cpp |
3336 | + gsatellite/sgp4unit.h |
3337 | + gsatellite/stdsat.h |
3338 | + |
3339 | + |
3340 | Satellite.hpp |
3341 | Satellite.cpp |
3342 | Satellites.hpp |
3343 | |
3344 | === modified file 'plugins/Satellites/src/Satellite.cpp' |
3345 | --- plugins/Satellites/src/Satellite.cpp 2010-10-27 15:20:46 +0000 |
3346 | +++ plugins/Satellites/src/Satellite.cpp 2010-11-04 00:01:48 +0000 |
3347 | @@ -27,12 +27,22 @@ |
3348 | #include "StelTexture.hpp" |
3349 | #include "VecMath.hpp" |
3350 | #include "StelUtils.hpp" |
3351 | -#include "sgp4sdp4/sgp4sdp4.h" |
3352 | + |
3353 | + |
3354 | +#include "gsatellite/gSatTEME.hpp" |
3355 | +#include "gsatellite/gObserver.hpp" |
3356 | +#include "gsatellite/gTime.hpp" |
3357 | +#include "gsatellite/gVector.hpp" |
3358 | |
3359 | #include <QTextStream> |
3360 | #include <QRegExp> |
3361 | #include <QDebug> |
3362 | #include <QVariant> |
3363 | +#include <QtOpenGL> |
3364 | +#include <QSettings> |
3365 | + |
3366 | +#include <cmath> |
3367 | +#include <cstdlib> |
3368 | |
3369 | // static data members - will be initialised in the Satallites class (the StelObjectMgr) |
3370 | StelTextureSP Satellite::hintTexture; |
3371 | @@ -47,13 +57,15 @@ |
3372 | if (!map.contains("designation") || !map.contains("tle1") || !map.contains("tle2")) |
3373 | return; |
3374 | |
3375 | - |
3376 | + font.setPixelSize(16); |
3377 | + |
3378 | designation = map.value("designation").toString(); |
3379 | strncpy(elements[0], "DUMMY", 5); |
3380 | strncpy(elements[1], qPrintable(map.value("tle1").toString()), 80); |
3381 | strncpy(elements[2], qPrintable(map.value("tle2").toString()), 80); |
3382 | if (map.contains("description")) description = map.value("description").toString(); |
3383 | if (map.contains("visible")) visible = map.value("visible").toBool(); |
3384 | + if (map.contains("orbitVisible")) orbitVisible = map.value("orbitVisible").toBool(); |
3385 | |
3386 | if (map.contains("hintColor")) |
3387 | { |
3388 | @@ -65,6 +77,21 @@ |
3389 | } |
3390 | } |
3391 | |
3392 | + if (map.contains("orbitColor")) |
3393 | + { |
3394 | + if (map.value("orbitColor").toList().count() == 3) |
3395 | + { |
3396 | + orbitColor[0] = map.value("orbitColor").toList().at(0).toDouble(); |
3397 | + orbitColor[1] = map.value("orbitColor").toList().at(1).toDouble(); |
3398 | + orbitColor[2] = map.value("orbitColor").toList().at(2).toDouble(); |
3399 | + } |
3400 | + } |
3401 | + else |
3402 | + { |
3403 | + orbitColor = hintColor; |
3404 | + } |
3405 | + |
3406 | + |
3407 | if (map.contains("comms")) |
3408 | { |
3409 | foreach(QVariant comm, map.value("comms").toList()) |
3410 | @@ -87,24 +114,31 @@ |
3411 | } |
3412 | } |
3413 | |
3414 | + pSatellite = new gSatTEME( designation.toAscii().data(), elements[1], elements[2]); |
3415 | + |
3416 | setObserverLocation(); |
3417 | initialized = true; |
3418 | } |
3419 | |
3420 | Satellite::~Satellite() |
3421 | { |
3422 | + if(pSatellite != NULL) |
3423 | + delete pSatellite; |
3424 | } |
3425 | |
3426 | QVariantMap Satellite::getMap(void) |
3427 | { |
3428 | QVariantMap map; |
3429 | map["designation"] = designation; |
3430 | - map["visible"] = visible; |
3431 | + map["visible"] = visible; |
3432 | + map["orbitVisible"] = orbitVisible; |
3433 | map["tle1"] = QString(elements[1]); |
3434 | map["tle2"] = QString(elements[2]); |
3435 | - QVariantList col; |
3436 | + QVariantList col, orbitCol;; |
3437 | col << (double)hintColor[0] << (double)hintColor[1] << (double)hintColor[2]; |
3438 | + orbitCol << (double)orbitColor[0] << (double)orbitColor[1] << (double)orbitColor[2]; |
3439 | map["hintColor"] = col; |
3440 | + map["orbitColor"] = orbitCol; |
3441 | QVariantList commList; |
3442 | foreach(commLink c, comms) |
3443 | { |
3444 | @@ -146,9 +180,23 @@ |
3445 | |
3446 | if (flags&Extra1) |
3447 | { |
3448 | + oss << "<p>"; |
3449 | oss << QString("Range (km): <b>%1</b>").arg(range, 5, 'f', 2) << "<br>"; |
3450 | oss << QString("Range rate (km/s): <b>%1</b>").arg(rangeRate, 5, 'f', 3) << "<br>"; |
3451 | oss << QString("Altitude (km): <b>%1</b>").arg(height, 5, 'f', 2) << "<br>"; |
3452 | + oss << QString("SubPoint Lat/Long(Deg): <b>%1</b>").arg(LatLong[0], 5, 'f', 2) << "/"; |
3453 | + oss << QString("<b>%1</b>").arg(LatLong[1], 5, 'f', 3); |
3454 | + oss << "</p>"; |
3455 | + |
3456 | + oss << "TEME Coordinates(km): "; |
3457 | + oss << QString("<b>X:</b> %1 ").arg(Position[0], 5, 'f', 2); |
3458 | + oss << QString("<b>Y:</b> %1 ").arg(Position[1], 5, 'f', 2); |
3459 | + oss << QString("<b>Z:</b> %1 ").arg(Position[2], 5, 'f', 2) << "<br>"; |
3460 | + oss << "TEME Vel(km/s): "; |
3461 | + oss << QString("<b>X:</b> %1 ").arg(Vel[0], 5, 'f', 2); |
3462 | + oss << QString("<b>Y:</b> %1 ").arg(Vel[1], 5, 'f', 2); |
3463 | + oss << QString("<b>Z:</b> %1 ").arg(Vel[2], 5, 'f', 2) << "<br>"; |
3464 | + |
3465 | } |
3466 | |
3467 | if (flags&Extra2 && comms.size() > 0) |
3468 | @@ -191,9 +239,10 @@ |
3469 | { |
3470 | l = *loc; |
3471 | } |
3472 | - obs_geodetic.lon = l.longitude * de2ra; |
3473 | - obs_geodetic.lat = l.latitude * de2ra; |
3474 | - obs_geodetic.alt = l.altitude / 1000.0; |
3475 | + |
3476 | + |
3477 | + observer.setPosition( l.latitude, l.longitude, l.altitude / 1000.0); |
3478 | + |
3479 | } |
3480 | |
3481 | Vec3f Satellite::getInfoColor(void) const { |
3482 | @@ -212,36 +261,26 @@ |
3483 | |
3484 | void Satellite::update(double) |
3485 | { |
3486 | - ClearFlag(ALL_FLAGS); |
3487 | - Get_Next_Tle_Set(elements, &tle); |
3488 | - memcpy(&localtle, &tle, sizeof(tle_t)); |
3489 | - select_ephemeris(&tle); |
3490 | - double jul_epoch, jul_utc, tsince, phase; |
3491 | - vector_t vel = {0,0,0,0}; |
3492 | - vector_t pos = {0,0,0,0}; |
3493 | - vector_t obs_set; |
3494 | - geodetic_t sat_geodetic; |
3495 | - jul_utc = StelApp::getInstance().getCore()->getNavigator()->getJDay(); |
3496 | - jul_epoch = Julian_Date_of_Epoch(tle.epoch); |
3497 | - tsince = (jul_utc - jul_epoch) * xmnpda; |
3498 | - |
3499 | - if (isFlagSet(DEEP_SPACE_EPHEM_FLAG)) |
3500 | - SDP4(tsince, &tle, &pos, &vel, &phase); |
3501 | - else |
3502 | - SGP4(tsince, &tle, &pos, &vel, &phase); |
3503 | - |
3504 | - Convert_Sat_State(&pos, &vel); |
3505 | - SgpMagnitude(&vel); // scalar magnitude, not brightness... |
3506 | - velocity=vel.w; |
3507 | - |
3508 | - Calculate_Obs(jul_utc, &pos, &vel, &obs_geodetic, &obs_set); |
3509 | - Calculate_LatLonAlt(jul_utc, &pos, &sat_geodetic); |
3510 | - |
3511 | - azimuth=Degrees(obs_set.x); |
3512 | - elevation=Degrees(obs_set.y); |
3513 | - range=obs_set.z; |
3514 | - rangeRate=obs_set.w; |
3515 | - height=sat_geodetic.alt; |
3516 | + double jul_utc = StelApp::getInstance().getCore()->getNavigator()->getJDay(); |
3517 | + |
3518 | + epochTime = jul_utc; |
3519 | + |
3520 | + pSatellite->setEpoch( epochTime); |
3521 | + Position = pSatellite->getPos(); |
3522 | + Vel = pSatellite->getVel(); |
3523 | + LatLong = pSatellite->getSubPoint( epochTime); |
3524 | + azElPos = observer.calculateLook( *pSatellite, epochTime); |
3525 | + |
3526 | + |
3527 | + azimuth = azElPos[ AZIMUTH]/KDEG2RAD; |
3528 | + elevation = azElPos[ ELEVATION]/KDEG2RAD; |
3529 | + range = azElPos[ RANGE]; |
3530 | + rangeRate = azElPos[ RANGERATE]; |
3531 | + height = LatLong[2]; |
3532 | + |
3533 | + // Compute orbit points to draw orbit line. |
3534 | + if(orbitVisible) computeOrbitPoints(); |
3535 | + |
3536 | } |
3537 | |
3538 | double Satellite::getDoppler(double freq) const |
3539 | @@ -259,16 +298,164 @@ |
3540 | XYZ = core->getNavigator()->j2000ToEquinoxEqu(core->getNavigator()->altAzToEquinoxEqu(pos)); |
3541 | StelApp::getInstance().getVisionModeNight() ? glColor4f(0.6,0.0,0.0,1.0) : glColor4f(hintColor[0],hintColor[1],hintColor[2], Satellite::hintBrightness); |
3542 | |
3543 | + |
3544 | StelProjectorP prj = core->getProjection(StelCore::FrameJ2000); |
3545 | Vec3d xy; |
3546 | if (prj->project(XYZ,xy)) |
3547 | { |
3548 | + |
3549 | if (Satellite::showLabels) |
3550 | { |
3551 | painter.drawText(xy[0], xy[1], designation, 0, 10, 10, false); |
3552 | Satellite::hintTexture->bind(); |
3553 | } |
3554 | painter.drawSprite2dMode(xy[0], xy[1], 11); |
3555 | + |
3556 | + if(orbitVisible) drawOrbit(core, prj, painter); |
3557 | + } |
3558 | +} |
3559 | + |
3560 | +void Satellite::drawOrbit(const StelCore* core, StelProjectorP& prj, StelPainter& painter){ |
3561 | + Vec3d XYZPos, xy1; |
3562 | + float a, azimth, elev; |
3563 | + QVarLengthArray<float, 1024> vertexArray; |
3564 | + |
3565 | + |
3566 | + glDisable(GL_TEXTURE_2D); |
3567 | + glEnable(GL_LINE_SMOOTH); |
3568 | + glEnable(GL_BLEND); |
3569 | + painter.enableClientStates(true, false, false); |
3570 | + |
3571 | + QList<gVector>::iterator it= orbitPoints.begin(); |
3572 | + |
3573 | + for(int i=0; i<orbitPoints.size();i++) |
3574 | + { |
3575 | + azimth = it->at( AZIMUTH); |
3576 | + elev = it->at( ELEVATION); |
3577 | + a = ( (azimth/KDEG2RAD)-90)*M_PI/180; |
3578 | + Vec3d pos(sin(a),cos(a), tan( (elev/KDEG2RAD) * M_PI / 180.)); |
3579 | + XYZPos = core->getNavigator()->j2000ToEquinoxEqu(core->getNavigator()->altAzToEquinoxEqu(pos)); |
3580 | + |
3581 | + if (prj->project(XYZPos,xy1)) |
3582 | + { |
3583 | + vertexArray.append(xy1[0]); |
3584 | + vertexArray.append(xy1[1]); |
3585 | + } |
3586 | + it++; |
3587 | + |
3588 | + // draw the end parts of the orbit only, since they have non-standard color |
3589 | + // We'll draw the middle segment (with all the same color) with a single |
3590 | + // call to drawFromArray after this loop closes. |
3591 | + if (i>0 && ((DRAWORBIT_SLOTS_NUMBER/2) - abs(i - (DRAWORBIT_SLOTS_NUMBER/2) % DRAWORBIT_SLOTS_NUMBER)) < DRAWORBIT_FADE_NUMBER) |
3592 | + { |
3593 | + painter.setColor(orbitColor[0], orbitColor[1], orbitColor[2], hintBrightness * calculateOrbitSegmentIntensity(i)); |
3594 | + painter.setVertexPointer(2, GL_FLOAT, vertexArray.constData()); |
3595 | + painter.drawFromArray(StelPainter::LineStrip, 2, i-1, false); |
3596 | + } |
3597 | + } |
3598 | + |
3599 | + // draw the middle segments of the orbit which are all the same color |
3600 | + if(!vertexArray.isEmpty()) |
3601 | + { |
3602 | + if (vertexArray.count() > (2*DRAWORBIT_FADE_NUMBER)) |
3603 | + { |
3604 | + painter.setColor(orbitColor[0], orbitColor[1], orbitColor[2], hintBrightness); |
3605 | + painter.setVertexPointer(2, GL_FLOAT, vertexArray.constData()); |
3606 | + painter.drawFromArray(StelPainter::LineStrip, DRAWORBIT_SLOTS_NUMBER + 1 - (2*DRAWORBIT_FADE_NUMBER), DRAWORBIT_FADE_NUMBER - 1, false); |
3607 | + } |
3608 | + vertexArray.clear(); |
3609 | + } |
3610 | + |
3611 | + painter.enableClientStates(false); |
3612 | + glEnable(GL_TEXTURE_2D); |
3613 | +} |
3614 | + |
3615 | +float Satellite::calculateOrbitSegmentIntensity(int segNum) |
3616 | +{ |
3617 | + int endDist = (DRAWORBIT_SLOTS_NUMBER/2) - abs(segNum - (DRAWORBIT_SLOTS_NUMBER/2) % DRAWORBIT_SLOTS_NUMBER); |
3618 | + if (endDist > DRAWORBIT_FADE_NUMBER) { return 1.0; } |
3619 | + else { return (endDist + 1) / (DRAWORBIT_FADE_NUMBER + 1.0); } |
3620 | +} |
3621 | + |
3622 | +void Satellite::computeOrbitPoints(){ |
3623 | + |
3624 | + gTimeSpan computeInterval(0,0,0,DRAWORBIT_SLOT_SECNUMBER); //1/2 minute |
3625 | + gTimeSpan orbitSpan(0,0,0, DRAWORBIT_SLOTS_NUMBER*DRAWORBIT_SLOT_SECNUMBER/2); //+- 15 minutes range. |
3626 | + gTime epochTm; |
3627 | + gVector azElVector; |
3628 | + int diffSlots; |
3629 | + |
3630 | + |
3631 | + if( orbitPoints.isEmpty())//Setup orbitPoins |
3632 | + { |
3633 | + epochTm = epochTime - orbitSpan; |
3634 | + |
3635 | + for(int i=0; i< DRAWORBIT_SLOTS_NUMBER; i++) |
3636 | + { |
3637 | + pSatellite->setEpoch( epochTm); |
3638 | + azElVector = observer.calculateLook( *pSatellite, epochTm); |
3639 | + orbitPoints.append(azElVector); |
3640 | + epochTm += computeInterval; |
3641 | + } |
3642 | + lastEpochCompForOrbit = epochTime; |
3643 | + } |
3644 | + else if( epochTime > lastEpochCompForOrbit) |
3645 | + { // compute next orbit point when clock runs forward |
3646 | + |
3647 | + gTimeSpan diffTime = epochTime - lastEpochCompForOrbit; |
3648 | + diffSlots = (int)(diffTime.getDblSeconds()/DRAWORBIT_SLOT_SECNUMBER); |
3649 | + |
3650 | + if(diffSlots > 0) |
3651 | + { |
3652 | + if( diffSlots > DRAWORBIT_SLOTS_NUMBER) |
3653 | + { |
3654 | + diffSlots = DRAWORBIT_SLOTS_NUMBER; |
3655 | + epochTm = epochTime - orbitSpan; |
3656 | + } |
3657 | + else |
3658 | + { |
3659 | + epochTm = lastEpochCompForOrbit + orbitSpan + computeInterval; |
3660 | + } |
3661 | + |
3662 | + for( int i=0; i<diffSlots;i++) |
3663 | + { //remove points at beginning of list and add points at end. |
3664 | + orbitPoints.removeFirst(); |
3665 | + pSatellite->setEpoch( epochTm); |
3666 | + azElVector = observer.calculateLook( *pSatellite, epochTm); |
3667 | + orbitPoints.append(azElVector); |
3668 | + epochTm += computeInterval; |
3669 | + } |
3670 | + |
3671 | + lastEpochCompForOrbit = epochTime; |
3672 | + } |
3673 | + } |
3674 | + else if(epochTime < lastEpochCompForOrbit) |
3675 | + { // compute next orbit point when clock runs backward |
3676 | + gTimeSpan diffTime = lastEpochCompForOrbit - epochTime; |
3677 | + diffSlots = (int)(diffTime.getDblSeconds()/DRAWORBIT_SLOT_SECNUMBER); |
3678 | + |
3679 | + if(diffSlots > 0) |
3680 | + { |
3681 | + if( diffSlots > DRAWORBIT_SLOTS_NUMBER) |
3682 | + { |
3683 | + diffSlots = DRAWORBIT_SLOTS_NUMBER; |
3684 | + epochTm = epochTime + orbitSpan; |
3685 | + } |
3686 | + else |
3687 | + { |
3688 | + epochTm = epochTime - orbitSpan - computeInterval; |
3689 | + } |
3690 | + for( int i=0; i<diffSlots;i++) |
3691 | + { //remove points at end of list and add points at beginning. |
3692 | + orbitPoints.removeLast(); |
3693 | + pSatellite->setEpoch( epochTm); |
3694 | + azElVector = observer.calculateLook( *pSatellite, epochTm); |
3695 | + orbitPoints.push_front(azElVector); |
3696 | + epochTm -= computeInterval; |
3697 | + |
3698 | + } |
3699 | + lastEpochCompForOrbit = epochTime; |
3700 | + } |
3701 | } |
3702 | } |
3703 | |
3704 | |
3705 | === modified file 'plugins/Satellites/src/Satellite.hpp' |
3706 | --- plugins/Satellites/src/Satellite.hpp 2010-05-17 19:24:14 +0000 |
3707 | +++ plugins/Satellites/src/Satellite.hpp 2010-11-04 00:01:48 +0000 |
3708 | @@ -23,10 +23,23 @@ |
3709 | #include <QVariant> |
3710 | #include <QString> |
3711 | #include <QStringList> |
3712 | +#include <QFont> |
3713 | +#include <QList> |
3714 | |
3715 | #include "StelObject.hpp" |
3716 | #include "StelTextureTypes.hpp" |
3717 | -#include "sgp4sdp4/sgp4sdp4.h" |
3718 | + |
3719 | +#include "StelPainter.hpp" |
3720 | +#include "gsatellite/gSatTEME.hpp" |
3721 | +#include "gsatellite/gObserver.hpp" |
3722 | +#include "gsatellite/gTime.hpp" |
3723 | +#include "gsatellite/gVector.hpp" |
3724 | + |
3725 | + |
3726 | +#define DRAWORBIT_SLOTS_NUMBER 131 |
3727 | +#define DRAWORBIT_FADE_NUMBER 10 |
3728 | +#define DRAWORBIT_SLOT_SECNUMBER 10 |
3729 | + |
3730 | |
3731 | class StelPainter; |
3732 | class StelLocation; |
3733 | @@ -82,14 +95,26 @@ |
3734 | double getDoppler(double freq) const; |
3735 | static float showLabels; |
3736 | |
3737 | +public: |
3738 | + void enableDrawOrbit(bool b); |
3739 | + |
3740 | +private: |
3741 | + //draw orbits methods |
3742 | + void computeOrbitPoints(); |
3743 | + void drawOrbit(const StelCore* core, StelProjectorP& prj, StelPainter& painter); |
3744 | + //! returns 0 - 1.0 for the DRAWORBIT_FADE_NUMBER segments at |
3745 | + //! each end of an orbit, with 1 in the middle. |
3746 | + float calculateOrbitSegmentIntensity(int segNum); |
3747 | + |
3748 | private: |
3749 | bool initialized; |
3750 | bool visible; |
3751 | + bool orbitVisible; //draw orbit enabled/disabled |
3752 | + |
3753 | QString designation; // The ID of the satllite |
3754 | QString description; // longer description of spacecraft |
3755 | Vec3d XYZ; // holds J2000 position |
3756 | char elements[3][80]; // TLE elements as char* for passing to sgp lib |
3757 | - tle_t tle, localtle; |
3758 | double height, velocity, azimuth, elevation, range, rangeRate; |
3759 | QList<commLink> comms; |
3760 | Vec3f hintColor; |
3761 | @@ -98,10 +123,25 @@ |
3762 | static StelTextureSP hintTexture; |
3763 | static float hintBrightness; |
3764 | static float hintScale; |
3765 | - geodetic_t obs_geodetic; // observer location |
3766 | |
3767 | void draw(const StelCore* core, StelPainter& painter, float maxMagHints); |
3768 | void setObserverLocation(StelLocation* loc=NULL); |
3769 | + |
3770 | + //gsatellite objects |
3771 | + gSatTEME *pSatellite; |
3772 | + gObserver observer; |
3773 | + gTime epochTime; |
3774 | + gVector Position; |
3775 | + gVector Vel; |
3776 | + gVector LatLong; |
3777 | + gVector azElPos; |
3778 | + |
3779 | + //Satellite Orbit Draw |
3780 | + QFont font; |
3781 | + Vec3f orbitColor; |
3782 | + gTime lastEpochCompForOrbit; |
3783 | + QList<gVector> orbitPoints; //orbit points represented by azElPos vectors |
3784 | + |
3785 | }; |
3786 | |
3787 | #endif // _SATELLITE_HPP_ |
3788 | |
3789 | === modified file 'plugins/Satellites/src/Satellites.cpp' |
3790 | --- plugins/Satellites/src/Satellites.cpp 2010-09-12 18:20:20 +0000 |
3791 | +++ plugins/Satellites/src/Satellites.cpp 2010-11-04 00:01:48 +0000 |
3792 | @@ -206,7 +206,7 @@ |
3793 | double Satellites::getCallOrder(StelModuleActionName actionName) const |
3794 | { |
3795 | if (actionName==StelModule::ActionDraw) |
3796 | - return StelApp::getInstance().getModuleMgr().getModule("StarMgr")->getCallOrder(actionName)+1.; |
3797 | + return StelApp::getInstance().getModuleMgr().getModule("SolarSystem")->getCallOrder(actionName)+1.; |
3798 | return 0; |
3799 | } |
3800 | |
3801 | |
3802 | === modified file 'plugins/Satellites/src/Satellites.hpp' |
3803 | --- plugins/Satellites/src/Satellites.hpp 2010-04-18 17:48:49 +0000 |
3804 | +++ plugins/Satellites/src/Satellites.hpp 2010-11-04 00:01:48 +0000 |
3805 | @@ -42,7 +42,7 @@ |
3806 | typedef QSharedPointer<Satellite> SatelliteP; |
3807 | |
3808 | //! @class Satellites |
3809 | -//! Satellites in low Earth orbith require different orbital calculations from planets, the moon |
3810 | +//! Satellites in low Earth orbit require different orbital calculations from planets, the moon |
3811 | //! and so on. This plugin implements the SGP4/SDP4 algorithms in Stellarium, allowing accurate |
3812 | //! prediction of the position of artificial satellites. |
3813 | class Satellites : public StelObjectModule |
3814 | |
3815 | === added directory 'plugins/Satellites/src/gsatellite' |
3816 | === added file 'plugins/Satellites/src/gsatellite/gException.hpp' |
3817 | --- plugins/Satellites/src/gsatellite/gException.hpp 1970-01-01 00:00:00 +0000 |
3818 | +++ plugins/Satellites/src/gsatellite/gException.hpp 2010-11-04 00:01:48 +0000 |
3819 | @@ -0,0 +1,44 @@ |
3820 | +/*************************************************************************** |
3821 | + * Copyright (C) 2006 by j. l. Canales * |
3822 | + * jlcanales@users.sourceforge.net * |
3823 | + * * |
3824 | + * This program is free software; you can redistribute it and/or modify * |
3825 | + * it under the terms of the GNU General Public License as published by * |
3826 | + * the Free Software Foundation; either version 2 of the License, or * |
3827 | + * (at your option) any later version. * |
3828 | + * * |
3829 | + * This program is distributed in the hope that it will be useful, * |
3830 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
3831 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
3832 | + * GNU General Public License for more details. * |
3833 | + * * |
3834 | + * You should have received a copy of the GNU General Public License * |
3835 | + * along with this program; if not, write to the * |
3836 | + * Free Software Foundation, Inc., * |
3837 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
3838 | + ***************************************************************************/ |
3839 | + |
3840 | +#ifndef _GEXCEPTION_HPP_ |
3841 | +#define _GEXCEPTION_HPP_ 1 |
3842 | + |
3843 | +#include <stdexcept> |
3844 | + |
3845 | +//Exception Codes |
3846 | +#define EXCP_UNKNOWN 1 |
3847 | +#define EXCP_INCORRECTPARAM 2 |
3848 | +#define EXCP_OPERATIONOVERFLOW 3 |
3849 | +#define EXCP_MEMORYALLOCATION 4 |
3850 | +#define EXCP_COMPUTEOVERFLOW 5 |
3851 | + |
3852 | +typedef unsigned int GEXCEPTIONTYPE; |
3853 | + |
3854 | +// Exception messages for GMatrix |
3855 | + |
3856 | +#define OPERATOR_X_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate its verctorial product" |
3857 | +#define OPERATOR_ADD_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the addition" |
3858 | +#define OPERATOR_ADDEQUAL_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the addition" |
3859 | +#define OPERATOR_DIFF_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the substraction" |
3860 | +#define OPERATOR_DIFFEQUAL_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the substraction" |
3861 | +#define DET_INCOMPATIBLE_ORDER "The matrix is not square, the determinant can't be calculate." |
3862 | + |
3863 | +#endif // _GEXCEPTION_HPP_ |
3864 | |
3865 | === added file 'plugins/Satellites/src/gsatellite/gMatrix.cpp' |
3866 | --- plugins/Satellites/src/gsatellite/gMatrix.cpp 1970-01-01 00:00:00 +0000 |
3867 | +++ plugins/Satellites/src/gsatellite/gMatrix.cpp 2010-11-04 00:01:48 +0000 |
3868 | @@ -0,0 +1,290 @@ |
3869 | +/*************************************************************************** |
3870 | + * Name: GMatrix.cpp |
3871 | + * |
3872 | + * Date: 2009-12-31 16:34:55 +0100 (jue, 31 dic 2009) |
3873 | + * Revision: 17 |
3874 | + * HeadURL: https://gsat.svn.sourceforge.net/svnroot/gsat/trunk/src/GMatrix.cpp |
3875 | + * |
3876 | + * Description: GMatrix Definition. |
3877 | + * GMatrix class define a bidimensional GDOUBLE elements matrix |
3878 | + * and the basic matrix operations. |
3879 | + * |
3880 | + ***************************************************************************/ |
3881 | + |
3882 | +/*************************************************************************** |
3883 | + * Copyright (C) 2004 by JL Canales * |
3884 | + * ph03696@homeserver * |
3885 | + * * |
3886 | + * This program is free software; you can redistribute it and/or modify * |
3887 | + * it under the terms of the GNU General Public License as published by * |
3888 | + * the Free Software Foundation; either version 2 of the License, or * |
3889 | + * (at your option) any later version. * |
3890 | + * * |
3891 | + * This program is distributed in the hope that it will be useful, * |
3892 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
3893 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
3894 | + * GNU General Public License for more details. * |
3895 | + * * |
3896 | + * You should have received a copy of the GNU General Public License * |
3897 | + * along with this program; if not, write to the * |
3898 | + * Free Software Foundation, Inc., * |
3899 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
3900 | + ***************************************************************************/ |
3901 | + |
3902 | +// CMatrix |
3903 | +#include "gMatrix.hpp" |
3904 | +#include "gException.hpp" |
3905 | + |
3906 | +#include <cassert> |
3907 | + |
3908 | +// Class gMatrix |
3909 | +gMatrix::gMatrix() : gMatrixTempl<double>() |
3910 | +{ |
3911 | +} |
3912 | + |
3913 | +gMatrix::gMatrix(unsigned int ai_uiRowNumber, unsigned int ai_uiColumNumber) |
3914 | + : gMatrixTempl<double>(ai_uiRowNumber, ai_uiColumNumber) |
3915 | +{ |
3916 | + |
3917 | +} |
3918 | + |
3919 | + |
3920 | +bool gMatrix::operator!=(const gMatrix &right) const |
3921 | +{ |
3922 | + if((*this)==(right)) |
3923 | + { |
3924 | + return false; |
3925 | + } |
3926 | + else |
3927 | + { |
3928 | + return true; |
3929 | + } |
3930 | +} |
3931 | + |
3932 | + |
3933 | + |
3934 | +//## Other Operations (implementation) |
3935 | + |
3936 | +gMatrix gMatrix::operator *(const gMatrix &ai_RightMatrix) |
3937 | +{ |
3938 | + |
3939 | + unsigned int iRow; |
3940 | + unsigned int iColumn; |
3941 | + unsigned int uiRightColumn = ai_RightMatrix.Columns(); |
3942 | + unsigned int uiRightRow = ai_RightMatrix.Rows(); |
3943 | + |
3944 | + unsigned int Iterator; |
3945 | + double dAuxValue = 0; |
3946 | + gMatrix ReturnedMatrix(Rows(), uiRightColumn); |
3947 | + |
3948 | + |
3949 | + if(Columns() != uiRightRow) |
3950 | + { |
3951 | + throw std::out_of_range(OPERATOR_X_INCOMPATIBLE_ORDER); |
3952 | + } |
3953 | + else |
3954 | + { |
3955 | + for(iRow = 0; iRow < Rows(); iRow++) |
3956 | + for(iColumn = 0; iColumn < uiRightColumn; iColumn++) |
3957 | + { |
3958 | + // Product and addition of implied elements |
3959 | + for(Iterator = 0; Iterator < uiRightRow; Iterator++) |
3960 | + { |
3961 | + dAuxValue += (operator[](iRow)[ Iterator] * |
3962 | + ai_RightMatrix[ Iterator][ iColumn]); |
3963 | + } |
3964 | + |
3965 | + ReturnedMatrix[ iRow][ iColumn] = dAuxValue; |
3966 | + dAuxValue = 0; |
3967 | + } |
3968 | + } |
3969 | + |
3970 | + return ReturnedMatrix; |
3971 | +} |
3972 | + |
3973 | + |
3974 | +gVector gMatrix::operator *(const gVector &ai_RightVector) |
3975 | +{ |
3976 | + |
3977 | + unsigned int iRow; |
3978 | + unsigned int iColumn; |
3979 | + |
3980 | + double dAuxValue = 0; |
3981 | + gVector ReturnedVector(Rows()); |
3982 | + |
3983 | + assert(Columns() == ai_RightVector.size()); |
3984 | + |
3985 | + |
3986 | + if(Columns() != ai_RightVector.size()) |
3987 | + { |
3988 | + throw std::out_of_range(OPERATOR_X_INCOMPATIBLE_ORDER); |
3989 | + } |
3990 | + else |
3991 | + { |
3992 | + for(iRow = 0; iRow < Rows(); iRow++) |
3993 | + { |
3994 | + for(iColumn = 0; iColumn < Columns(); iColumn++) |
3995 | + { |
3996 | + // Product and addition of implied elements |
3997 | + dAuxValue += (operator[](iRow)[ iColumn] * |
3998 | + ai_RightVector[ iColumn]); |
3999 | + } |
4000 | + |
4001 | + ReturnedVector[ iRow] = dAuxValue; |
4002 | + dAuxValue = 0; |
4003 | + |
4004 | + } |
4005 | + } |
4006 | + return ReturnedVector; |
4007 | +} |
4008 | + |
4009 | + |
4010 | +gMatrix gMatrix::operator *(double ai_dRight) |
4011 | +{ |
4012 | + unsigned int iRow; |
4013 | + unsigned int iColumn; |
4014 | + gMatrix ReturnedMatrix(Rows(), Columns()); |
4015 | + |
4016 | + try |
4017 | + { |
4018 | + for(iRow = 0; iRow < Rows(); iRow++) |
4019 | + for(iColumn = 0; iColumn < Columns(); iColumn ++) |
4020 | + ReturnedMatrix[ iRow][ iColumn] = ((*this)[ iRow][ iColumn] * ai_dRight); |
4021 | + } |
4022 | + catch(...) |
4023 | + { |
4024 | + for(iRow = 0; iRow < Rows(); iRow++) |
4025 | + for(iColumn = 0; iColumn < Columns(); iColumn ++) |
4026 | + ReturnedMatrix[ iRow][ iColumn] = 0; |
4027 | + |
4028 | + throw; |
4029 | + } |
4030 | + |
4031 | + return ReturnedMatrix; |
4032 | +} |
4033 | + |
4034 | +gMatrix gMatrix::operator+(gMatrix &ai_RightMatrix) const |
4035 | +{ |
4036 | + |
4037 | + gMatrix ReturnedMatrix(Rows(), Columns()); |
4038 | + |
4039 | +#ifdef ENABLE_DEBUG |
4040 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
4041 | +#endif |
4042 | + |
4043 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
4044 | + { |
4045 | + throw std::out_of_range(OPERATOR_ADD_INCOMPATIBLE_ORDER); |
4046 | + } |
4047 | + |
4048 | + |
4049 | + for(unsigned int i = 0; i<Rows(); i++) |
4050 | + for(unsigned int j = 0; j<Columns(); j++) |
4051 | + ReturnedMatrix[ i][ j] = operator[](i)[ j] + ai_RightMatrix[ i][ j]; |
4052 | + |
4053 | + |
4054 | + return ReturnedMatrix; |
4055 | + |
4056 | +} |
4057 | + |
4058 | +const gMatrix& gMatrix::operator+=(gMatrix &ai_RightMatrix) |
4059 | +{ |
4060 | + |
4061 | +#ifdef ENABLE_DEBUG |
4062 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
4063 | +#endif |
4064 | + |
4065 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
4066 | + { |
4067 | + throw std::out_of_range(OPERATOR_ADDEQUAL_INCOMPATIBLE_ORDER); |
4068 | + } |
4069 | + for(unsigned int i = 0; i<Rows(); i++) |
4070 | + for(unsigned int j = 0; j<Columns(); j++) |
4071 | + operator[](i)[ j] = operator[](i)[ j] + ai_RightMatrix[ i][ j]; |
4072 | + |
4073 | + |
4074 | + return *this; |
4075 | + |
4076 | +} |
4077 | + |
4078 | +gMatrix gMatrix::operator-(gMatrix &ai_RightMatrix) const |
4079 | +{ |
4080 | + |
4081 | + gMatrix ReturnedMatrix(Rows(), Columns()); |
4082 | + |
4083 | +#ifdef ENABLE_DEBUG |
4084 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
4085 | +#endif |
4086 | + |
4087 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
4088 | + { |
4089 | + throw std::out_of_range(OPERATOR_DIFF_INCOMPATIBLE_ORDER); |
4090 | + } |
4091 | + for(unsigned int i = 0; i<Rows(); i++) |
4092 | + for(unsigned int j = 0; j<Columns(); j++) |
4093 | + ReturnedMatrix[ i][ j] = operator[](i)[ j] - ai_RightMatrix[ i][ j]; |
4094 | + |
4095 | + |
4096 | + return ReturnedMatrix; |
4097 | + |
4098 | +} |
4099 | + |
4100 | +const gMatrix& gMatrix::operator-=(gMatrix &ai_RightMatrix) |
4101 | +{ |
4102 | + |
4103 | +#ifdef ENABLE_DEBUG |
4104 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
4105 | +#endif |
4106 | + |
4107 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
4108 | + { |
4109 | + throw std::out_of_range(OPERATOR_DIFFEQUAL_INCOMPATIBLE_ORDER); |
4110 | + } |
4111 | + for(unsigned int i = 0; i<Rows(); i++) |
4112 | + for(unsigned int j = 0; j<Columns(); j++) |
4113 | + operator[](i)[ j] = operator[](i)[ j] - ai_RightMatrix[ i][ j]; |
4114 | + |
4115 | + |
4116 | + return *this; |
4117 | + |
4118 | +} |
4119 | + |
4120 | +double gMatrix::det() |
4121 | +{ |
4122 | + |
4123 | + gMatrix aux=*this; |
4124 | + double dDet; |
4125 | + int k,l,i,j; |
4126 | + int n = Rows(); |
4127 | + int m = n-1; |
4128 | + |
4129 | + |
4130 | + try |
4131 | + { |
4132 | + if(Columns() != Rows()) |
4133 | + { |
4134 | + throw std::invalid_argument(DET_INCOMPATIBLE_ORDER); |
4135 | + } |
4136 | + |
4137 | + dDet=aux[0][0]; |
4138 | + for(k=0; k<m; k++) |
4139 | + { |
4140 | + l=k+1; |
4141 | + for(i=l; i<n; i++) |
4142 | + { |
4143 | + for(j=l; j<n; j++) |
4144 | + { |
4145 | + aux[i][j] = (aux[k][k]*aux[i][j]-aux[k][j]*aux[i][k])/aux[k][k]; |
4146 | + } |
4147 | + } |
4148 | + dDet=dDet*aux[k+1][k+1]; |
4149 | + } |
4150 | + |
4151 | + return dDet; |
4152 | + } |
4153 | + catch(...) |
4154 | + { |
4155 | + throw; |
4156 | + } |
4157 | +} |
4158 | + |
4159 | |
4160 | === added file 'plugins/Satellites/src/gsatellite/gMatrix.hpp' |
4161 | --- plugins/Satellites/src/gsatellite/gMatrix.hpp 1970-01-01 00:00:00 +0000 |
4162 | +++ plugins/Satellites/src/gsatellite/gMatrix.hpp 2010-11-04 00:01:48 +0000 |
4163 | @@ -0,0 +1,86 @@ |
4164 | +/*************************************************************************** |
4165 | + * Name: gMatrix.h |
4166 | + * |
4167 | + * Date: 2007-03-29 17:01:15 +0200 (jue, 29 mar 2007) |
4168 | + * Revision: 16 |
4169 | + * HeadURL: https://gsat.svn.sourceforge.net/svnroot/gsat/trunk/src/GMatrix.h |
4170 | + * |
4171 | + * Description: Fichero de descripci� de la clase GMatrix. |
4172 | + * Esta clase tiene como cometido la encapsulaci� de objetos |
4173 | + * tipo matriz bidimensional de elementos GDOUBLE junto con |
4174 | + * las operaciones de matrices realizables. |
4175 | + * |
4176 | + * |
4177 | + ***************************************************************************/ |
4178 | + |
4179 | +/*************************************************************************** |
4180 | + * Copyright (C) 2004 by JL Canales * |
4181 | + * ph03696@homeserver * |
4182 | + * * |
4183 | + * This program is free software; you can redistribute it and/or modify * |
4184 | + * it under the terms of the GNU General Public License as published by * |
4185 | + * the Free Software Foundation; either version 2 of the License, or * |
4186 | + * (at your option) any later version. * |
4187 | + * * |
4188 | + * This program is distributed in the hope that it will be useful, * |
4189 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4190 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4191 | + * GNU General Public License for more details. * |
4192 | + * * |
4193 | + * You should have received a copy of the GNU General Public License * |
4194 | + * along with this program; if not, write to the * |
4195 | + * Free Software Foundation, Inc., * |
4196 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4197 | + ***************************************************************************/ |
4198 | + |
4199 | +#ifndef _GMATRIX_HPP_ |
4200 | +#define _GMATRIX_HPP_ 1 |
4201 | + |
4202 | +// MatrixContainer |
4203 | +#include "gMatrixTempl.hpp" |
4204 | +#include "gVector.hpp" |
4205 | + |
4206 | +//! @class: gMatrix |
4207 | +//! This class implement the needed code to make matrix calculations. |
4208 | +//! The GMatrix class inherit from MatrixContainer class that is created |
4209 | +//! from the vector STL class givingt all the STL vector funcionality. |
4210 | +//! This class has not overlapped the = operator and the copy constructor |
4211 | +//! because this methods are given by the vector STL class. |
4212 | +class gMatrix : public gMatrixTempl<double> |
4213 | +{ |
4214 | +public: |
4215 | + //## Constructors (generated) |
4216 | + gMatrix(); |
4217 | + |
4218 | + //## Constructors (specified) |
4219 | + //## Operation:gMatrix%950961952 |
4220 | + // Constructor whit row and column dimensions. |
4221 | + gMatrix ( unsigned int ai_uiRowNumber, unsigned int ai_uiColumNumber); |
4222 | + |
4223 | + //## Equality Operations (generated) |
4224 | + bool operator!=( const gMatrix &right) const; |
4225 | + |
4226 | + //## Other Operations (specified) |
4227 | + //## Operation: operator*%949869240 |
4228 | + // This operators make the vectorial product calculation |
4229 | + gMatrix operator* ( const gMatrix &ai_RightMatrix); |
4230 | + |
4231 | + //## Operation: operator*%949869240 |
4232 | + // This operators make the vectorial product calculation |
4233 | + gVector operator* ( const gVector &ai_RightVector); |
4234 | + |
4235 | + //## Operation: operator*%949869241 |
4236 | + // This operator make the scalar product calculation. |
4237 | + gMatrix operator* ( double ai_dRight); |
4238 | + |
4239 | + gMatrix operator+ ( gMatrix &ai_RightMatrix) const; |
4240 | + const gMatrix& operator+=( gMatrix &ai_RightMatrix); |
4241 | + |
4242 | + gMatrix operator- ( gMatrix &ai_RightMatrix) const; |
4243 | + const gMatrix& operator-=( gMatrix &ai_RightMatrix); |
4244 | + |
4245 | + // Determinant |
4246 | + double det(); |
4247 | +}; |
4248 | + |
4249 | +#endif //_GMATRIX_HPP_ |
4250 | |
4251 | === added file 'plugins/Satellites/src/gsatellite/gMatrixTempl.hpp' |
4252 | --- plugins/Satellites/src/gsatellite/gMatrixTempl.hpp 1970-01-01 00:00:00 +0000 |
4253 | +++ plugins/Satellites/src/gsatellite/gMatrixTempl.hpp 2010-11-04 00:01:48 +0000 |
4254 | @@ -0,0 +1,117 @@ |
4255 | +/*************************************************************************** |
4256 | + * Name: gMatrixTempl.h |
4257 | + * |
4258 | + * Description: MatrixContainer is a template to build |
4259 | + * bidimensional objects arrays. |
4260 | + ***************************************************************************/ |
4261 | + |
4262 | +/*************************************************************************** |
4263 | + * Copyright (C) 2006 by j. l. Canales * |
4264 | + * jlcanales@users.sourceforge.net * |
4265 | + * * |
4266 | + * This program is free software; you can redistribute it and/or modify * |
4267 | + * it under the terms of the GNU General Public License as published by * |
4268 | + * the Free Software Foundation; either version 2 of the License, or * |
4269 | + * (at your option) any later version. * |
4270 | + * * |
4271 | + * This program is distributed in the hope that it will be useful, * |
4272 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4273 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4274 | + * GNU General Public License for more details. * |
4275 | + * * |
4276 | + * You should have received a copy of the GNU General Public License * |
4277 | + * along with this program; if not, write to the * |
4278 | + * Free Software Foundation, Inc., * |
4279 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4280 | + ***************************************************************************/ |
4281 | + |
4282 | +#ifndef _GMATRIXTEMPL_HPP_ |
4283 | +#define _GMATRIXTEMPL_HPP_ 1 |
4284 | + |
4285 | +#include "gVectorTempl.hpp" // checked vector |
4286 | +#include <iostream> // for operator<<(), see below |
4287 | + |
4288 | +// matrix as vector of vectors |
4289 | +template<class T> |
4290 | +class gMatrixTempl : public br_stl::gVectorTempl< |
4291 | + br_stl::gVectorTempl<T> > |
4292 | +{ |
4293 | +public: |
4294 | + typedef typename std::vector<T>::size_type size_type; |
4295 | + |
4296 | + gMatrixTempl(size_type x = 0, size_type y = 0) |
4297 | + : br_stl::gVectorTempl< br_stl::gVectorTempl<T> >(x, br_stl::gVectorTempl<T>(y)), rows(x), columns(y) |
4298 | + { |
4299 | + } |
4300 | + |
4301 | + gMatrixTempl(const gMatrixTempl<T> &right) |
4302 | + : br_stl::gVectorTempl< br_stl::gVectorTempl<T> >(right.rows, br_stl::gVectorTempl<T>(right.columns)), rows(right.rows), columns(right.columns) |
4303 | + { |
4304 | + |
4305 | + for(size_type i = 0; i < rows; ++i) |
4306 | + for(size_type j = 0; j < columns ; ++j) |
4307 | + operator[](i)[j] = right[ i][ j]; |
4308 | + } |
4309 | + |
4310 | + size_type Rows() const |
4311 | + { |
4312 | + return rows; |
4313 | + } |
4314 | + |
4315 | + size_type Columns() const |
4316 | + { |
4317 | + return columns; |
4318 | + } |
4319 | + |
4320 | + void SetSize(size_type x, size_type y) |
4321 | + { |
4322 | + |
4323 | + br_stl::gVectorTempl< br_stl::gVectorTempl<T> >::resize(x); |
4324 | + for(size_type index = 0; index < x; index++) |
4325 | + operator[](index).resize(y); |
4326 | + |
4327 | + rows = x; |
4328 | + columns = y; |
4329 | + } |
4330 | + |
4331 | + |
4332 | + void init(const T& Value) |
4333 | + { |
4334 | + for(size_type i = 0; i < rows; ++i) |
4335 | + for(size_type j = 0; j < columns ; ++j) |
4336 | + operator[](i)[j] = Value; // that is, (*this)[i][j] |
4337 | + } |
4338 | + |
4339 | + // create identity matrix |
4340 | + gMatrixTempl<T>& I() |
4341 | + { |
4342 | + for(size_type i = 0; i < rows; ++i) |
4343 | + for(size_type j = 0; j < columns ; ++j) |
4344 | + operator[](i)[j] = (i==j) ? T(1) : T(0); |
4345 | + return *this; |
4346 | + } |
4347 | + |
4348 | +protected: |
4349 | + size_type rows; |
4350 | + size_type columns; |
4351 | + |
4352 | + |
4353 | +}; // class Matrix |
4354 | + |
4355 | + |
4356 | +template<class T> |
4357 | +inline std::ostream& operator<<(std::ostream& s, const gMatrixTempl<T>& m) |
4358 | +{ |
4359 | + typedef typename gMatrixTempl<T>::size_type size_type; |
4360 | + |
4361 | + for(size_type i = 0; i < m.Rows(); ++i) |
4362 | + { |
4363 | + s << std::endl << i <<" : "; |
4364 | + for(size_type j = 0; j < m.Columns(); ++j) |
4365 | + s << m[i][j] <<" "; |
4366 | + } |
4367 | + s << std::endl; |
4368 | + return s; |
4369 | +} |
4370 | + |
4371 | +#endif // _GMATRIXTEMPL_HPP_ |
4372 | |
4373 | === added file 'plugins/Satellites/src/gsatellite/gObserver.cpp' |
4374 | --- plugins/Satellites/src/gsatellite/gObserver.cpp 1970-01-01 00:00:00 +0000 |
4375 | +++ plugins/Satellites/src/gsatellite/gObserver.cpp 2010-11-04 00:01:48 +0000 |
4376 | @@ -0,0 +1,88 @@ |
4377 | +/* |
4378 | + * gObserver.cpp |
4379 | + * |
4380 | + * Created on: 05/08/2010 |
4381 | + * Author: cdeveloper |
4382 | + */ |
4383 | + |
4384 | +#include "stdsat.h" |
4385 | +#include "gVector.hpp" |
4386 | +#include "gObserver.hpp" |
4387 | +#include "gTime.hpp" |
4388 | +#include "mathUtils.hpp" |
4389 | +#include <math.h> |
4390 | + |
4391 | +//! Definition: This operation compute the observer ECI coordinates for the ai_epoch time |
4392 | +void gObserver::getECIPosition(gTime ai_epoch, gVector& ao_position, gVector& ao_vel) |
4393 | +{ |
4394 | + ao_position.resize(3); |
4395 | + ao_vel.resize(3); |
4396 | + double radLatitude = m_latitude * KDEG2RAD; |
4397 | + double theta = ai_epoch.toThetaLMST(m_longitude * KDEG2RAD); |
4398 | + double r; |
4399 | + double c,sq; |
4400 | + |
4401 | + /* Reference: The 1992 Astronomical Almanac, page K11. */ |
4402 | + c = 1/sqrt(1 + __f*(__f - 2)*Sqr(sin(radLatitude))); |
4403 | + sq = Sqr(1 - __f)*c; |
4404 | + |
4405 | + r = (KEARTHRADIUS*c + m_attitude)*cos(radLatitude); |
4406 | + ao_position[0] = r * cos(theta);/*kilometers*/ |
4407 | + ao_position[1] = r * sin(theta); |
4408 | + ao_position[2] = (KEARTHRADIUS*sq + m_attitude)*sin(radLatitude); |
4409 | + ao_vel[0] = -KMFACTOR*ao_position[1];/*kilometers/second*/ |
4410 | + ao_vel[1] = KMFACTOR*ao_position[0]; |
4411 | + ao_vel[2] = 0; |
4412 | +} |
4413 | + |
4414 | +gVector gObserver::calculateLook(gSatTEME ai_Sat, gTime ai_epoch) |
4415 | +{ |
4416 | + |
4417 | + gVector returnVector(4); |
4418 | + gVector topoSatPos(3); |
4419 | + gVector observerECIPos; |
4420 | + gVector observerECIVel; |
4421 | + |
4422 | + |
4423 | + double radLatitude = m_latitude * KDEG2RAD; |
4424 | + double theta = ai_epoch.toThetaLMST(m_longitude * KDEG2RAD); |
4425 | + |
4426 | + getECIPosition(ai_epoch, observerECIPos, observerECIVel); |
4427 | + ai_Sat.setEpoch(ai_epoch); |
4428 | + |
4429 | + gVector satECIPos = ai_Sat.getPos(); |
4430 | + gVector satECIVel = ai_Sat.getVel(); |
4431 | + gVector slantRange = satECIPos - observerECIPos; |
4432 | + gVector rangeVel = satECIVel - observerECIVel; |
4433 | + |
4434 | + //top_s |
4435 | + topoSatPos[0] = sin(radLatitude) * cos(theta)*slantRange[0] |
4436 | + + sin(radLatitude)* sin(theta)*slantRange[1] |
4437 | + - cos(radLatitude)* slantRange[2]; |
4438 | + //top_e |
4439 | + topoSatPos[1] = (-1.0)* sin(theta)*slantRange[0] |
4440 | + + cos(theta)*slantRange[1]; |
4441 | + |
4442 | + //top_z |
4443 | + topoSatPos[2] = cos(radLatitude) * cos(theta)*slantRange[0] |
4444 | + + cos(radLatitude) * sin(theta)*slantRange[1] |
4445 | + + sin(radLatitude) *slantRange[2]; |
4446 | + |
4447 | + returnVector[ AZIMUTH] = atan((-1.0)*topoSatPos[1]/topoSatPos[0]); |
4448 | + if(topoSatPos[0] > 0) |
4449 | + returnVector[ AZIMUTH] += KPI; |
4450 | + if(returnVector[ AZIMUTH] < 0) |
4451 | + returnVector[ AZIMUTH] += K2PI; |
4452 | + |
4453 | + returnVector[ RANGE] = slantRange.Magnitude(); |
4454 | + returnVector[ ELEVATION] = asin(topoSatPos[2]/returnVector[ RANGE]); |
4455 | + returnVector[ RANGERATE] = slantRange.Dot(rangeVel)/returnVector[ RANGE]; |
4456 | + return returnVector; |
4457 | + |
4458 | + |
4459 | + // Corrections for atmospheric refraction |
4460 | + // Reference: Astronomical Algorithms by Jean Meeus, pp. 101-104 |
4461 | + // Correction is meaningless when apparent elevation is below horizon |
4462 | + // obs_set->y = obs_set->y + Radians((1.02/tan(Radians(Degrees(el)+ |
4463 | + // 10.3/(Degrees(el)+5.11))))/60); |
4464 | +} |
4465 | |
4466 | === added file 'plugins/Satellites/src/gsatellite/gObserver.hpp' |
4467 | --- plugins/Satellites/src/gsatellite/gObserver.hpp 1970-01-01 00:00:00 +0000 |
4468 | +++ plugins/Satellites/src/gsatellite/gObserver.hpp 2010-11-04 00:01:48 +0000 |
4469 | @@ -0,0 +1,114 @@ |
4470 | +/*************************************************************************** |
4471 | + * Name: gObserver.hpp |
4472 | + ***************************************************************************/ |
4473 | + |
4474 | +/*************************************************************************** |
4475 | + * Copyright (C) 2006 by J. L. Canales * |
4476 | + * jlcanales@users.sourceforge.net * |
4477 | + * * |
4478 | + * This program is free software; you can redistribute it and/or modify * |
4479 | + * it under the terms of the GNU General Public License as published by * |
4480 | + * the Free Software Foundation; either version 2 of the License, or * |
4481 | + * (at your option) any later version. * |
4482 | + * * |
4483 | + * This program is distributed in the hope that it will be useful, * |
4484 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4485 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4486 | + * GNU General Public License for more details. * |
4487 | + * * |
4488 | + * You should have received a copy of the GNU General Public License * |
4489 | + * along with this program; if not, write to the * |
4490 | + * Free Software Foundation, Inc., * |
4491 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4492 | + ***************************************************************************/ |
4493 | +#ifndef _GOBSERVER_HPP_ |
4494 | +#define _GOBSERVER_HPP_ 1 |
4495 | + |
4496 | +// stdsat |
4497 | +#include "stdsat.h" |
4498 | +#include "gVector.hpp" |
4499 | +#include "gTime.hpp" |
4500 | +#include "gSatTEME.hpp" |
4501 | + |
4502 | +#define AZIMUTH 0 |
4503 | +#define ELEVATION 1 |
4504 | +#define RANGE 2 |
4505 | +#define RANGERATE 3 |
4506 | + |
4507 | +//! @class gObserver |
4508 | +//! This class implements the need functionality to change |
4509 | +//! coordinates from Geographic Reference System to Observer Reference System |
4510 | +class gObserver |
4511 | +{ |
4512 | +public: |
4513 | + //## Constructors (generated) |
4514 | + //! @brief Default class gObserver constructor |
4515 | + //! @param[in] ai_latitude Observer Geographic latitude |
4516 | + //! @param[in] ai_longitude Observer Geographic longitude |
4517 | + //! @param[in] ai_attitude Observer Geographic attitude |
4518 | + gObserver(double ai_latitude=0, double ai_longitude=0 , double ai_attitude=0): |
4519 | + m_latitude(ai_latitude),m_longitude(ai_longitude), m_attitude(ai_attitude) |
4520 | + { |
4521 | + ; |
4522 | + } |
4523 | + |
4524 | + //! Method used to get observer latitude. |
4525 | + //! |
4526 | + double getLatitude() |
4527 | + { |
4528 | + return m_latitude; |
4529 | + } |
4530 | + |
4531 | + //! Method used to get observer object longitude. |
4532 | + //! |
4533 | + double getLongitude() |
4534 | + { |
4535 | + return m_longitude; |
4536 | + } |
4537 | + |
4538 | + //! Method used to set Observer geographic position. |
4539 | + //! |
4540 | + void setPosition(double ai_latitude, double ai_longitude, double ai_attitude) |
4541 | + { |
4542 | + m_latitude = ai_latitude; |
4543 | + m_longitude = ai_longitude; |
4544 | + m_attitude = ai_attitude; |
4545 | + } |
4546 | + |
4547 | + |
4548 | + |
4549 | + // Operation getECIPosition |
4550 | + //! @brief This operation compute the observer ECI coordinates for the |
4551 | + //! ai_epoch time |
4552 | + //! @details |
4553 | + //! References: |
4554 | + //! Orbital Coordinate Systems, Part II |
4555 | + //! Dr. T.S. Kelso |
4556 | + //! http://www.celestrak.com/columns/v02n02/ |
4557 | + //! @param[in] ai_epoch Epoch for the ECI reference system calculation |
4558 | + //! @param[out] ao_position Observer position vector |
4559 | + //! @param[out] ao_vel Observer velocity vector |
4560 | + //! gVector Vector including X,Y,Z ECI Coordinates |
4561 | + void getECIPosition(gTime ai_epoch, gVector& ao_position, gVector& ao_vel); |
4562 | + |
4563 | + // Operation calculateLook |
4564 | + //! @brief This operation compute the Azimuth, Elevation and Range of |
4565 | + //! a satellite from the observer site. |
4566 | + //! @param[in] ai_Sat Sat TEME object to be looked. |
4567 | + //! @param[in] ai_epoch Epoch for the ECI reference system calculation |
4568 | + //! @return gVector Vector including Az, El, Range coordinates |
4569 | + //! References: |
4570 | + //! Orbital Coordinate Systems, Part II |
4571 | + //! Dr. T.S. Kelso |
4572 | + //! http://www.celestrak.com/columns/v02n02/ |
4573 | + gVector calculateLook(gSatTEME ai_Sat, gTime ai_epoch); |
4574 | + |
4575 | +private: //## implementation |
4576 | + |
4577 | + double m_latitude; //meassured in degrees |
4578 | + double m_longitude; //meassured in degrees |
4579 | + double m_attitude; |
4580 | + |
4581 | +}; |
4582 | + |
4583 | +#endif // _GOBSERVER_HPP_ |
4584 | |
4585 | === added file 'plugins/Satellites/src/gsatellite/gSatTEME.cpp' |
4586 | --- plugins/Satellites/src/gsatellite/gSatTEME.cpp 1970-01-01 00:00:00 +0000 |
4587 | +++ plugins/Satellites/src/gsatellite/gSatTEME.cpp 2010-11-04 00:01:48 +0000 |
4588 | @@ -0,0 +1,156 @@ |
4589 | +/*************************************************************************** |
4590 | + * Name: gSatTEME.cpp |
4591 | + * |
4592 | + * Description: gSatTEME class implementation. |
4593 | + * This class abstract all the SGP4 complexity. It uses the |
4594 | + * David. A. Vallado code for SGP4 Calculation. |
4595 | + * |
4596 | + * Reference: |
4597 | + * Revisiting Spacetrack Report #3 AIAA 2006-6753 |
4598 | + * Vallado, David A., Paul Crawford, Richard Hujsak, and T.S. |
4599 | + * Kelso, "Revisiting Spacetrack Report #3," |
4600 | + * presented at the AIAA/AAS Astrodynamics Specialist |
4601 | + * Conference, Keystone, CO, 2006 August 21–24. |
4602 | + * http://celestrak.com/publications/AIAA/2006-6753/ |
4603 | + ***************************************************************************/ |
4604 | + |
4605 | +/*************************************************************************** |
4606 | + * Copyright (C) 2004 by J.L. Canales * |
4607 | + * ph03696@homeserver * |
4608 | + * * |
4609 | + * This program is free software; you can redistribute it and/or modify * |
4610 | + * it under the terms of the GNU General Public License as published by * |
4611 | + * the Free Software Foundation; either version 2 of the License, or * |
4612 | + * (at your option) any later version. * |
4613 | + * * |
4614 | + * This program is distributed in the hope that it will be useful, * |
4615 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4616 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4617 | + * GNU General Public License for more details. * |
4618 | + * * |
4619 | + * You should have received a copy of the GNU General Public License * |
4620 | + * along with this program; if not, write to the * |
4621 | + * Free Software Foundation, Inc., * |
4622 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4623 | + ***************************************************************************/ |
4624 | + |
4625 | +// GKepFile |
4626 | +#include "gSatTEME.hpp" |
4627 | +#include <iostream> |
4628 | +#include <iomanip> |
4629 | + |
4630 | +#include "stdsat.h" |
4631 | +#include "mathUtils.hpp" |
4632 | + |
4633 | +#include "sgp4io.h" |
4634 | + |
4635 | +#define CONSTANTS_SET wgs72 |
4636 | +#define TYPERUN_SET 'c' |
4637 | +#define OPSMODE_SET 'i' |
4638 | +#define TYPEINPUT_SET 'm' |
4639 | + |
4640 | +#define LATITUDE 0 |
4641 | +#define LONGITUDE 1 |
4642 | +#define ALTITUDE 2 |
4643 | + |
4644 | +// Constructors |
4645 | +gSatTEME::gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2) |
4646 | +{ |
4647 | + |
4648 | + double startmfe, stopmfe, deltamin; |
4649 | + double ro[3]; |
4650 | + double vo[3]; |
4651 | + |
4652 | + m_Position.resize(3); |
4653 | + m_Vel.resize(3); |
4654 | + |
4655 | + m_SatName = pstrName; |
4656 | + |
4657 | + //set gravitational constants |
4658 | + getgravconst(CONSTANTS_SET, tumin, mu, radiusearthkm, xke, j2, j3, j4, j3oj2); |
4659 | + |
4660 | + //Parsing TLE_Files and sat variables setting |
4661 | + twoline2rv(pstrTleLine1, pstrTleLine2, TYPERUN_SET, TYPEINPUT_SET, OPSMODE_SET, CONSTANTS_SET, |
4662 | + startmfe, stopmfe, deltamin, satrec); |
4663 | + |
4664 | + // call the propagator to get the initial state vector value |
4665 | + sgp4(CONSTANTS_SET, satrec, 0.0, ro, vo); |
4666 | + |
4667 | + m_Position[ 0]= ro[ 0]; |
4668 | + m_Position[ 1]= ro[ 1]; |
4669 | + m_Position[ 2]= ro[ 2]; |
4670 | + m_Vel[ 0] = vo[ 0]; |
4671 | + m_Vel[ 1] = vo[ 1]; |
4672 | + m_Vel[ 2] = vo[ 2]; |
4673 | +} |
4674 | + |
4675 | +void gSatTEME::setEpoch(gTime ai_time) |
4676 | +{ |
4677 | + |
4678 | + gTime kepEpoch(satrec.jdsatepoch); |
4679 | + gTimeSpan tSince = ai_time - kepEpoch; |
4680 | + |
4681 | + double ro[3]; |
4682 | + double vo[3]; |
4683 | + double dtsince = tSince.getDblSeconds()/KSEC_PER_MIN; |
4684 | + // call the propagator to get the initial state vector value |
4685 | + sgp4(CONSTANTS_SET, satrec, dtsince, ro, vo); |
4686 | + |
4687 | + m_Position[ 0]= ro[ 0]; |
4688 | + m_Position[ 1]= ro[ 1]; |
4689 | + m_Position[ 2]= ro[ 2]; |
4690 | + m_Vel[ 0] = vo[ 0]; |
4691 | + m_Vel[ 1] = vo[ 1]; |
4692 | + m_Vel[ 2] = vo[ 2]; |
4693 | +} |
4694 | + |
4695 | +void gSatTEME::setEpoch(double ai_minSinceKepEpoch) |
4696 | +{ |
4697 | + |
4698 | + double ro[3]; |
4699 | + double vo[3]; |
4700 | + // call the propagator to get the initial state vector value |
4701 | + sgp4(CONSTANTS_SET, satrec, ai_minSinceKepEpoch, ro, vo); |
4702 | + |
4703 | + m_Position[ 0]= ro[ 0]; |
4704 | + m_Position[ 1]= ro[ 1]; |
4705 | + m_Position[ 2]= ro[ 2]; |
4706 | + m_Vel[ 0] = vo[ 0]; |
4707 | + m_Vel[ 1] = vo[ 1]; |
4708 | + m_Vel[ 2] = vo[ 2]; |
4709 | +} |
4710 | + |
4711 | +gVector gSatTEME::getSubPoint(gTime ai_Time) |
4712 | +{ |
4713 | + |
4714 | + gVector resultVector(3); // (0) Latitude, (1) Longitude, (2) altitude |
4715 | + double theta, r, e2, phi, c; |
4716 | + |
4717 | + theta = AcTan(m_Position[1], m_Position[0]); // radians |
4718 | + resultVector[ LONGITUDE] = fmod((theta - ai_Time.toThetaGMST()), K2PI); //radians |
4719 | + |
4720 | + |
4721 | + r = sqrt(Sqr(m_Position[0]) + Sqr(m_Position[1])); |
4722 | + e2 = __f*(2 - __f); |
4723 | + resultVector[ LATITUDE] = AcTan(m_Position[2],r); /*radians*/ |
4724 | + |
4725 | + do |
4726 | + { |
4727 | + phi = resultVector[ LATITUDE]; |
4728 | + c = 1/sqrt(1 - e2*Sqr(sin(phi))); |
4729 | + resultVector[ LATITUDE] = AcTan(m_Position[2] + KEARTHRADIUS*c*e2*sin(phi),r); |
4730 | + } |
4731 | + while(fabs(resultVector[ LATITUDE] - phi) >= 1E-10); |
4732 | + |
4733 | + resultVector[ ALTITUDE] = r/cos(resultVector[ LATITUDE]) - KEARTHRADIUS*c;/*kilometers*/ |
4734 | + |
4735 | + if(resultVector[ LATITUDE] > (KPI/2.0)) resultVector[ LATITUDE] -= K2PI; |
4736 | + |
4737 | + resultVector[LATITUDE] = resultVector[LATITUDE]/KDEG2RAD; |
4738 | + resultVector[LONGITUDE] = resultVector[LONGITUDE]/KDEG2RAD; |
4739 | + if(resultVector[LONGITUDE] < -180.0) resultVector[LONGITUDE] +=360; |
4740 | + else if(resultVector[LONGITUDE] > 180.0) resultVector[LONGITUDE] -= 360; |
4741 | + |
4742 | + |
4743 | + return resultVector; |
4744 | +} |
4745 | |
4746 | === added file 'plugins/Satellites/src/gsatellite/gSatTEME.hpp' |
4747 | --- plugins/Satellites/src/gsatellite/gSatTEME.hpp 1970-01-01 00:00:00 +0000 |
4748 | +++ plugins/Satellites/src/gsatellite/gSatTEME.hpp 2010-11-04 00:01:48 +0000 |
4749 | @@ -0,0 +1,128 @@ |
4750 | +/*************************************************************************** |
4751 | + * Name: gSatTeme.hpp |
4752 | + * |
4753 | + * Description: gSatTEME classes declaration. |
4754 | + * This class abstract all the SGP4 complexity. It uses the |
4755 | + * revised David. A. Vallado code for SGP4 Calculation. |
4756 | + * |
4757 | + * Reference: |
4758 | + * Revisiting Spacetrack Report #3 AIAA 2006-6753 |
4759 | + * Vallado, David A., Paul Crawford, Richard Hujsak, and T.S. |
4760 | + * Kelso, "Revisiting Spacetrack Report #3," |
4761 | + * presented at the AIAA/AAS Astrodynamics Specialist |
4762 | + * Conference, Keystone, CO, 2006 August 21–24. |
4763 | + * http://celestrak.com/publications/AIAA/2006-6753/ |
4764 | + ***************************************************************************/ |
4765 | + |
4766 | +/*************************************************************************** |
4767 | + * Copyright (C) 2006 by J.L. Canales * |
4768 | + * jlcanales@users.sourceforge.net * |
4769 | + * * |
4770 | + * This program is free software; you can redistribute it and/or modify * |
4771 | + * it under the terms of the GNU General Public License as published by * |
4772 | + * the Free Software Foundation; either version 2 of the License, or * |
4773 | + * (at your option) any later version. * |
4774 | + * * |
4775 | + * This program is distributed in the hope that it will be useful, * |
4776 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4777 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4778 | + * GNU General Public License for more details. * |
4779 | + * * |
4780 | + * You should have received a copy of the GNU General Public License * |
4781 | + * along with this program; if not, write to the * |
4782 | + * Free Software Foundation, Inc., * |
4783 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4784 | + ***************************************************************************/ |
4785 | + |
4786 | +#ifndef _GSATTEME_HPP_ |
4787 | +#define _GSATTEME_HPP_ 1 |
4788 | + |
4789 | +#include "gTime.hpp" |
4790 | +#include "gVector.hpp" |
4791 | + |
4792 | +#include "sgp4unit.h" |
4793 | +#include "sgp4ext.h" |
4794 | + |
4795 | + |
4796 | +//! @class gSatTEME |
4797 | +//! @brief Sat position and velocity predictions over TEME reference system. |
4798 | +//! @details |
4799 | +//! Class to abstract all the SGP4 complexity. |
4800 | +//! It implementation wrap whit an object oriented class the revised David. A. Vallado |
4801 | +//! code for SGP4 Calculation. (Spacetrack report #6 revised AIAA-2006-6753-rev1) |
4802 | +class gSatTEME |
4803 | +{ |
4804 | +public: |
4805 | + |
4806 | + // Operation: gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2) |
4807 | + //! @brief Default class gSatTEME constructor |
4808 | + //! @param[in] pstrName Pointer to a null end string with the Sat. Name |
4809 | + //! @param[in] pstrTleLine1 Pointer to a null end string with the |
4810 | + //! first TLE Kep. data line |
4811 | + //! @param[in] pstrTleLine2 Pointer to a null end string with the |
4812 | + //! second TLE Kep. data line |
4813 | + gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2); |
4814 | + |
4815 | + // Operation: setEpoch( gTime ai_time) |
4816 | + //! @brief Set compute epoch for prediction |
4817 | + //! @param[in] ai_time gTime object storing the compute epoch time. |
4818 | + void setEpoch(gTime ai_time); |
4819 | + |
4820 | + // Operation: setEpoch( double ai_minSinceKepEpoch) |
4821 | + //! @brief Set compute epoch for prediction in minutes since Keplerian data Epoch |
4822 | + //! @param[in] ai_minSinceKepEpoch Time since Keplerian Epoch measured in minutes |
4823 | + //! and fraction of minutes. |
4824 | + void setEpoch(double ai_minSinceKepEpoch); |
4825 | + |
4826 | + // Operation: getPos() |
4827 | + //! @brief Get the TEME satellite position Vector |
4828 | + //! @return gVector |
4829 | + //! Satellite position vector. |
4830 | + //! x: position[0] |
4831 | + //! y: position[1] |
4832 | + //! z: position[2] |
4833 | + gVector getPos() |
4834 | + { |
4835 | + return m_Position; |
4836 | + } |
4837 | + |
4838 | + // Operation: getVel() |
4839 | + //! @brief Get the TEME satellite Velocity Vector |
4840 | + //! @return gVector Satellite Velocity Vector\n |
4841 | + //! x: Vel[0]\n |
4842 | + //! y: Vel[1]\n |
4843 | + //! z: Vel[2]\n |
4844 | + gVector getVel() |
4845 | + { |
4846 | + return m_Vel; |
4847 | + } |
4848 | + |
4849 | + // Operation: getSubPoint |
4850 | + //! @brief Get the Geographic satellite subpoint Vector |
4851 | + //! @details To implement this operation, next references has been used: |
4852 | + //! Orbital Coordinate Systems, Part III By Dr. T.S. Kelso |
4853 | + //! http://www.celestrak.com/columns/v02n03/ |
4854 | + //! @param[in] ai_Time Epoch time for subpoint calculation. (of course, this must be |
4855 | + //! refactorized to be computed in the setEpoch function) |
4856 | + //! @return gVector Geographical coordinates\n |
4857 | + //! Latitude: Coord[0] measured in degrees\n |
4858 | + //! Longitude: Coord[1] measured in degrees\n |
4859 | + //! Altitude: Coord[2] measured in Km.\n |
4860 | + gVector getSubPoint(gTime ai_Time); |
4861 | + |
4862 | + int getErrorCode() |
4863 | + { |
4864 | + return satrec.error; |
4865 | + } |
4866 | + |
4867 | +private: |
4868 | + // sgp4 proceses variables |
4869 | + double tumin, mu, radiusearthkm, xke, j2, j3, j4, j3oj2; |
4870 | + elsetrec satrec; |
4871 | + |
4872 | + std::string m_SatName; |
4873 | + gVector m_Position; |
4874 | + gVector m_Vel; |
4875 | +}; |
4876 | + |
4877 | +#endif // _GSATTEME_HPP_ |
4878 | |
4879 | === added file 'plugins/Satellites/src/gsatellite/gTime.cpp' |
4880 | --- plugins/Satellites/src/gsatellite/gTime.cpp 1970-01-01 00:00:00 +0000 |
4881 | +++ plugins/Satellites/src/gsatellite/gTime.cpp 2010-11-04 00:01:48 +0000 |
4882 | @@ -0,0 +1,347 @@ |
4883 | +/*************************************************************************** |
4884 | + * Name: gTime.cpp |
4885 | + * |
4886 | + * Description: |
4887 | + ***************************************************************************/ |
4888 | + |
4889 | +/*************************************************************************** |
4890 | + * Copyright (C) 2004 by JL Trabajo * |
4891 | + * ph03696@homeserver * |
4892 | + * * |
4893 | + * This program is free software; you can redistribute it and/or modify * |
4894 | + * it under the terms of the GNU General Public License as published by * |
4895 | + * the Free Software Foundation; either version 2 of the License, or * |
4896 | + * (at your option) any later version. * |
4897 | + * * |
4898 | + * This program is distributed in the hope that it will be useful, * |
4899 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4900 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4901 | + * GNU General Public License for more details. * |
4902 | + * * |
4903 | + * You should have received a copy of the GNU General Public License * |
4904 | + * along with this program; if not, write to the * |
4905 | + * Free Software Foundation, Inc., * |
4906 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4907 | + ***************************************************************************/ |
4908 | + |
4909 | + |
4910 | +#include <cassert> |
4911 | +// gtime |
4912 | +#include "gTime.hpp" |
4913 | +// GExcpt |
4914 | +#include "gException.hpp" |
4915 | +#include "stdsat.h" |
4916 | +#include <math.h> |
4917 | + |
4918 | +#include <stdio.h> |
4919 | +#include <stdlib.h> |
4920 | + |
4921 | +// Class GTimeSpan |
4922 | + |
4923 | +////////////////////////////////////////////////////////////////////////////// |
4924 | +// Referencies: |
4925 | +// Astronomical Formulae for Calculators. |
4926 | +// Jean Meeus |
4927 | +// Chapter 3: Julian Day and Calendar Date. PG's 23, 24, 25 |
4928 | +// |
4929 | +void gTime::setTime(int year, double day) |
4930 | +{ |
4931 | + assert((day >= 0.0) && (day < 367.0)); |
4932 | + |
4933 | + // Now calculate Julian date |
4934 | + |
4935 | + year--; |
4936 | + |
4937 | + int A = (year / 100); |
4938 | + int B = 2 - A + (A / 4); |
4939 | + |
4940 | + double JDforYear = (int)(365.25 * year) + |
4941 | + (int)(30.6001 * 14) + //MM = 1 then MM=12 + 1 for the expresion (30.6001 * (mm +1)) |
4942 | + 1720994.5 + B; |
4943 | + |
4944 | + m_time = JDforYear + day; |
4945 | +} |
4946 | + |
4947 | + |
4948 | +// Constructors |
4949 | + |
4950 | +gTime gTime::getCurrentTime() |
4951 | +{ |
4952 | + |
4953 | + time_t rawtime; |
4954 | + struct tm * timeinfo; |
4955 | + |
4956 | + time(&rawtime); |
4957 | + timeinfo = gmtime(&rawtime); |
4958 | + |
4959 | + return gTime(*timeinfo); |
4960 | +} |
4961 | + |
4962 | + |
4963 | + |
4964 | +gTime::gTime(int year, double day) |
4965 | +{ |
4966 | + setTime(year, day); |
4967 | +} |
4968 | + |
4969 | +gTime::gTime(double ai_jDays) |
4970 | +{ |
4971 | + m_time= ai_jDays; |
4972 | +} |
4973 | + |
4974 | +gTime::gTime(int nYear, int nMonth, int nDay, int nHour, int nMin, double nSec) |
4975 | +{ |
4976 | + // Calculate N, the day of the year (1..366) |
4977 | + int N; |
4978 | + int F1 = (int)((275.0 * nMonth) / 9.0); |
4979 | + int F2 = (int)((nMonth + 9.0) / 12.0); |
4980 | + |
4981 | + if(isLeapYear(nYear)) |
4982 | + { |
4983 | + // Leap year |
4984 | + N = F1 - F2 + nDay - 30; |
4985 | + } |
4986 | + else |
4987 | + { |
4988 | + // Common year |
4989 | + N = F1 - (2 * F2) + nDay - 30; |
4990 | + } |
4991 | + |
4992 | + double dDay = N + (nHour + (nMin + (nSec / 60.0)) / 60.0) / 24.0; |
4993 | + |
4994 | + |
4995 | + setTime(nYear, dDay); |
4996 | + |
4997 | +} |
4998 | + |
4999 | + |
5000 | +gTime::gTime(const gTime& timeSrc):m_time(timeSrc.m_time) |
I skimmed the code and I immediately saw a problem that needs to be fixed before proceeding with a merge.
It seems that you've used an old version of the source as the base for your modifications. As a result, they overwrite the changes I made to fix bug #616627: /bugs.launchpad .net/stellarium /+bug/616627
https:/
Here are the relevant revisions: bazaar. launchpad. net/~stellarium /stellarium/ trunk/revision/ 4756 bazaar. launchpad. net/~stellarium /stellarium/ trunk/revision/ 4757 (this is just an update of the TLEs) bazaar. launchpad. net/~stellarium /stellarium/ trunk/revision/ 4758
http://
http://
http://
The links are for information only, just use the most recent code.
After you merge, you can update the TLEs again, just make sure that no satellites have been dropped off the lists at celestrak.com or renamed (again :(). My patch provides a log message that reports how many satellites have been updated out of the total number.