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: |
12207 lines (+7211/-3735) 44 files modified
doc/builtinScriptFunctions.doxygen (+37/-0) doc/scripting.doxygen (+8/-1) plugins/Satellites/satellites.json (+1116/-909) plugins/Satellites/src/CMakeLists.txt (+26/-8) plugins/Satellites/src/Satellite.cpp (+208/-36) plugins/Satellites/src/Satellite.hpp (+43/-3) 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 (+11/-0) plugins/Satellites/src/gui/SatellitesDialog.hpp (+1/-0) plugins/Satellites/src/gui/satellitesDialog.ui (+10/-2) 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 |
---|---|---|---|
J.L. Canales (community) | Needs Resubmitting | ||
Bogdan Marinov | Needs Fixing | ||
Review via email: mp+38067@code.launchpad.net |
This proposal has been superseded by a proposal from 2010-10-30.
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
- 4766. By J.L. Canales
-
Bogdan Marinov review notes fixed. Code base actualized to Rev. N 4766
- 4767. By J.L. Canales
-
Fixed. Draw satellite skypath configuration desapear after TLE update
- 4768. By J.L. Canales
-
Satellite plugin: TLE data actualized
J.L. Canales (jlcanales-gasco) wrote : | # |
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 : | # |
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 : | # |
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 : | # |
I look forward to seeing your changes.
Matthew Gates (matthew-porpoisehead) wrote : | # |
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 : | # |
Actually... I created my own branch which is trunk with your changes merged and a few extras from me. http://
- 4769. By J.L. Canales
-
Sat. Plugin: Satellite skypath line color setup available in sattelites.json
- 4770. By J.L. Canales
-
Sat. Plugin: Satellite skypath line fading in and out at the end of the orbit lines
J.L. Canales (jlcanales-gasco) wrote : | # |
> 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.
- 4771. By J.L. Canales
-
merge: Matthew Gates Orbit lines fading solution
J.L. Canales (jlcanales-gasco) wrote : | # |
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 : | # |
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 : | # |
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 :-)
- 4772. By J.L. Canales
-
gSatellite code style adapted to stellarium rules
- 4773. By J.L. Canales
-
optimise satellite orbit drawing by making only a single call to drawFromArray for middle segments which are all the same color
- 4774. By J.L. Canales
-
Actualiced code base from trunk Rev. No 4776
- 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 | === added file 'doc/builtinScriptFunctions.doxygen' |
2 | --- doc/builtinScriptFunctions.doxygen 1970-01-01 00:00:00 +0000 |
3 | +++ doc/builtinScriptFunctions.doxygen 2010-10-30 00:49:41 +0000 |
4 | @@ -0,0 +1,37 @@ |
5 | +/* |
6 | + * Stellarium |
7 | + * Copyright (C) 2010 Matthew Gates |
8 | + * |
9 | + * This program is free software; you can redistribute it and/or |
10 | + * modify it under the terms of the GNU General Public License |
11 | + * as published by the Free Software Foundation; either version 2 |
12 | + * of the License, or (at your option) any later version. |
13 | + * |
14 | + * This program is distributed in the hope that it will be useful, |
15 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 | + * GNU General Public License for more details. |
18 | + * |
19 | + * You should have received a copy of the GNU General Public License |
20 | + * along with this program; if not, write to the Free Software |
21 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
22 | + */ |
23 | + |
24 | +/*! |
25 | + |
26 | +@page builtinScriptFunctions Built in Script Functions |
27 | + |
28 | +<B>waitFor(dt, spec="utc")</B> |
29 | + |
30 | +Waits until a specified simulation date/time. |
31 | + |
32 | +This function will take into account the rate (and direction) in which simulation |
33 | +time is passing. e.g. if a future date is specified and the time is moving backwards, |
34 | +the function will return immediately. If the time rate is 0, the function will not |
35 | +wait. This is to prevent infinite wait time. |
36 | + |
37 | +Parameters: |
38 | + - dt : the date string to use |
39 | + - spec : "local" or "utc". |
40 | + |
41 | +*/ |
42 | |
43 | === modified file 'doc/scripting.doxygen' |
44 | --- doc/scripting.doxygen 2010-05-19 06:40:34 +0000 |
45 | +++ doc/scripting.doxygen 2010-10-30 00:49:41 +0000 |
46 | @@ -1,6 +1,6 @@ |
47 | /* |
48 | * Stellarium |
49 | - * Copyright (C) 2009 Matthew Gates |
50 | + * Copyright (C) 2010 Matthew Gates |
51 | * |
52 | * This program is free software; you can redistribute it and/or |
53 | * modify it under the terms of the GNU General Public License |
54 | @@ -75,6 +75,13 @@ |
55 | - StelSkyDrawer |
56 | - StelSkyLayerMgr |
57 | |
58 | +@section built_in_script_functions Built in Script Functions |
59 | + |
60 | +In addition to the public slots of the classes described above, some functionality |
61 | +is provided by functions implemented within the scripting language. These are |
62 | +made available from the core object, and are similar in operation to the |
63 | +public slots of StelMainScriptAPI. See @ref builtinScriptFunctions for details. |
64 | + |
65 | @section script_console Script Console |
66 | |
67 | Note: The Script Console has been enabled by default since version 0.10.5. |
68 | |
69 | === modified file 'plugins/Satellites/satellites.json' |
70 | --- plugins/Satellites/satellites.json 2010-10-27 15:28:33 +0000 |
71 | +++ plugins/Satellites/satellites.json 2010-10-30 00:49:41 +0000 |
72 | @@ -1,187 +1,39 @@ |
73 | { |
74 | "creator": "Satellites plugin (update)", |
75 | "hintColor": [0, 0.5, 0.5], |
76 | + "orbitColor": [0, 0.5, 0.5], |
77 | "satellites": |
78 | { |
79 | "AAU CUBESAT": |
80 | { |
81 | "comms": [], |
82 | - "tle1": "1 27846U 03031G 10010.54313843 .00000017 00000-0 28199-4 0 6580", |
83 | - "tle2": "2 27846 98.7035 22.6880 0008761 245.5711 114.4553 14.21010978338790", |
84 | - "draw_orbit": false, |
85 | - "visible": false |
86 | - }, |
87 | - "PHASE 3B (AO-10)": |
88 | - { |
89 | - "description": "Amateur satellite", |
90 | - "groups": ["amateur", "non-operational"], |
91 | - "tle1": "1 14129U 83058B 09080.32998673 -.00000327 00000-0 10000-3 0 6360", |
92 | - "tle2": "2 14129 25.9652 165.8235 5982871 207.6161 100.7646 2.05871463165845", |
93 | - "draw_orbit": false, |
94 | - "visible": false |
95 | - }, |
96 | - "PACSAT (AO-16)": |
97 | - { |
98 | - "description": "Amateur satellite", |
99 | - "groups": ["amateur", "non-operational"], |
100 | - "tle1": "1 20439U 90005D 09080.85236265 .00000014 00000-0 20602-4 0 5632", |
101 | - "tle2": "2 20439 98.2700 53.2702 0011918 71.1776 289.0705 14.31818920 653", |
102 | - "draw_orbit": false, |
103 | + "groups": [], |
104 | + "orbitColor": [0, 0, 0], |
105 | + "orbitVisible": false, |
106 | + "tle1": "1 27846U 03031G 10300.91786855 .00000087 00000-0 60137-4 0 8600", |
107 | + "tle2": "2 27846 98.7017 308.8055 0009783 122.9220 237.2907 14.21060728380030", |
108 | "visible": false |
109 | }, |
110 | "ARSENE (AO-24)": |
111 | { |
112 | - "description": "Amateur satellite", |
113 | - "groups": ["amateur", "non-operational"], |
114 | - "tle1": "1 22654U 93031B 09078.43825483 -.00000132 00000-0 10000-3 0 2462", |
115 | - "tle2": "2 22654 5.1398 339.1447 2877460 155.4874 221.3758 1.42205192 77846", |
116 | - "draw_orbit": false, |
117 | - "visible": false |
118 | - }, |
119 | - "EYESAT-1 (AO-27)": |
120 | - { |
121 | - "comms": [ |
122 | - { |
123 | - "description": "uplink", |
124 | - "frequency": 145.85 |
125 | - }, |
126 | - { |
127 | - "description": "downlink", |
128 | - "frequency": 145.2 |
129 | - }], |
130 | - "description": "Amateur satellite", |
131 | - "groups": ["amateur"], |
132 | - "tle1": "1 22825U 93061C 09080.84794649 .00000017 00000-0 23242-4 0 2051", |
133 | - "tle2": "2 22825 98.4253 37.0634 0008629 156.2036 203.9551 14.29261103807439", |
134 | - "draw_orbit": false, |
135 | - "visible": true |
136 | - }, |
137 | - "PHASE 3D (AO-40)": |
138 | - { |
139 | - "comms": [ |
140 | - { |
141 | - "description": "Beacon", |
142 | - "frequency": 145.898 |
143 | - }], |
144 | - "description": "AMSAT-OSCAR 40 (Phase 3D)", |
145 | - "groups": ["amateur"], |
146 | - "tle1": "1 26609U 00072B 09080.26545799 -.00000301 00000-0 10000-3 0 2044", |
147 | - "tle2": "2 26609 8.9892 27.3596 7956558 186.7198 145.1448 1.25584591 38523", |
148 | - "draw_orbit": false, |
149 | - "visible": true |
150 | - }, |
151 | - "OSCAR 5 (AO-5)": |
152 | - { |
153 | - "description": "Amateur satellite", |
154 | - "groups": ["amateur", "non-operational"], |
155 | - "tle1": "1 04321U 70008B 09080.96250683 -.00000031 00000-0 10000-3 0 1420", |
156 | - "tle2": "2 04321 102.1329 90.4257 0027646 145.0891 215.1997 12.52156131789847", |
157 | - "draw_orbit": false, |
158 | - "visible": false |
159 | - }, |
160 | - "ECHO (AO-51)": |
161 | - { |
162 | - "comms": [ |
163 | - { |
164 | - "description": "uplink", |
165 | - "frequency": 145.92, |
166 | - "modulation": "FM/Voice" |
167 | - }, |
168 | - { |
169 | - "description": "downlink", |
170 | - "frequency": 435.15, |
171 | - "modulation": "FM/Voice" |
172 | - }], |
173 | - "description": "Amateur satellite", |
174 | - "groups": ["amateur"], |
175 | - "tle1": "1 28375U 04025K 09080.66057599 .00000001 00000-0 12813-4 0 3455", |
176 | - "tle2": "2 28375 98.0561 95.3557 0085140 31.1071 329.5121 14.40636066248352", |
177 | - "draw_orbit": false, |
178 | - "visible": true |
179 | - }, |
180 | - "OSCAR 6 (AO-6)": |
181 | - { |
182 | - "description": "Amateur satellite", |
183 | - "groups": ["amateur", "non-operational"], |
184 | - "tle1": "1 06236U 72082B 09080.97286453 -.00000027 00000-0 10000-3 0 1476", |
185 | - "tle2": "2 06236 101.4018 97.8648 0004124 61.3429 298.8059 12.53076701666485", |
186 | - "draw_orbit": false, |
187 | - "visible": false |
188 | - }, |
189 | - "OSCAR 7 (AO-7)": |
190 | - { |
191 | - "comms": [ |
192 | - { |
193 | - "description": "200mW Beacon used with Modes B & C", |
194 | - "frequency": 145.972 |
195 | - }, |
196 | - { |
197 | - "description": "downlink", |
198 | - "frequency": 145.95, |
199 | - "modulation": "Modes B & C" |
200 | - }, |
201 | - { |
202 | - "description": "uplink", |
203 | - "frequency": 145.9, |
204 | - "modulation": "Mode A" |
205 | - }, |
206 | - { |
207 | - "description": "downlink", |
208 | - "frequency": 29.45, |
209 | - "modulation": "Mode A" |
210 | - }, |
211 | - { |
212 | - "description": "200mW Beacon used with Mode A", |
213 | - "frequency": 29.502 |
214 | - }, |
215 | - { |
216 | - "frequency": 2304.1, |
217 | - "modulation": "40 mW Beacon - only when commanded" |
218 | - }, |
219 | - { |
220 | - "description": "uplink", |
221 | - "frequency": 432.15, |
222 | - "modulation": "Modes B & C" |
223 | - }], |
224 | - "description": "AMSAT-OSCAR 7 (Phase-IIB)", |
225 | - "groups": ["amateur"], |
226 | - "tle1": "1 07530U 74089B 09081.09982174 -.00000027 00000-0 10000-3 0 4327", |
227 | - "tle2": "2 07530 101.4356 108.9488 0012080 79.3798 280.8632 12.53575454571800", |
228 | - "draw_orbit": false, |
229 | - "visible": true |
230 | - }, |
231 | - "OSCAR 8 (AO-8)": |
232 | - { |
233 | - "description": "Amateur satellite", |
234 | - "groups": ["amateur", "non-operational"], |
235 | - "tle1": "1 10703U 78026B 09081.15228109 .00000030 00000-0 50534-4 0 4427", |
236 | - "tle2": "2 10703 98.8443 129.5050 0007638 50.2967 309.8869 13.98840358583855", |
237 | - "draw_orbit": false, |
238 | + "comms": [], |
239 | + "groups": ["amateur", "non-operational"], |
240 | + "orbitColor": [0, 0, 0], |
241 | + "orbitVisible": false, |
242 | + "tle1": "1 22654U 93031B 10296.29188703 -.00000103 00000-0 10000-3 0 4131", |
243 | + "tle2": "2 22654 4.6448 327.4414 2846429 190.3502 161.8369 1.42205681 86138", |
244 | "visible": false |
245 | }, |
246 | "CANX-1": |
247 | { |
248 | "comms": [], |
249 | - "tle1": "1 27847U 03031H 10010.55450479 .00000005 00000-0 22661-4 0 6786", |
250 | - "tle2": "2 27847 98.7031 22.6860 0008813 243.1062 116.9211 14.20990414338740", |
251 | - "draw_orbit": false, |
252 | + "groups": [], |
253 | + "orbitColor": [0, 0, 0], |
254 | + "orbitVisible": false, |
255 | + "tle1": "1 27847U 03031H 10301.49689319 .00000073 00000-0 53616-4 0 8814", |
256 | + "tle2": "2 27847 98.7006 309.3586 0009858 121.5158 238.6993 14.21038584380060", |
257 | "visible": false |
258 | }, |
259 | - "CUTE-1 (CO-55)": |
260 | - { |
261 | - "comms": [ |
262 | - { |
263 | - "description": "downlink", |
264 | - "frequency": 437.4, |
265 | - "modulation": "AFSK 1200 bps" |
266 | - }], |
267 | - "description": "Amateur satellite", |
268 | - "groups": ["amateur"], |
269 | - "tle1": "1 27844U 03031E 09080.51717845 .00000023 00000-0 31209-4 0 5380", |
270 | - "tle2": "2 27844 98.7159 90.9149 0010677 40.0025 320.1937 14.20627455296817", |
271 | - "draw_orbit": false, |
272 | - "visible": true |
273 | - }, |
274 | "CUBESAT XI-IV (CO-57)": |
275 | { |
276 | "comms": [ |
277 | @@ -190,11 +42,11 @@ |
278 | "frequency": 437.49, |
279 | "modulation": "AFSK 1200 bps" |
280 | }], |
281 | - "description": "Amateur satellite", |
282 | "groups": ["amateur"], |
283 | - "tle1": "1 27848U 03031J 09080.55297394 .00000015 00000-0 27156-4 0 4858", |
284 | - "tle2": "2 27848 98.7176 90.0128 0010577 41.9374 318.2624 14.20430987296783", |
285 | - "draw_orbit": false, |
286 | + "orbitColor": [0, 0, 0], |
287 | + "orbitVisible": false, |
288 | + "tle1": "1 27848U 03031J 10300.75686843 .00000118 00000-0 75342-4 0 9138", |
289 | + "tle2": "2 27848 98.7155 306.9596 0009645 148.6384 211.5372 14.20530353379862", |
290 | "visible": true |
291 | }, |
292 | "CUBESAT XI-V (CO-58)": |
293 | @@ -205,21 +57,27 @@ |
294 | "frequency": 437.345, |
295 | "modulation": "AFSK 1200 bps" |
296 | }], |
297 | - "description": "Amateur satellite", |
298 | "groups": ["amateur"], |
299 | - "tle1": "1 28895U 05043F 09080.73753781 .00000170 00000-0 45254-4 0 2627", |
300 | - "tle2": "2 28895 98.0694 333.7523 0016860 260.8704 99.0653 14.59751404180971", |
301 | - "draw_orbit": false, |
302 | + "orbitColor": [0, 0, 0], |
303 | + "orbitVisible": false, |
304 | + "tle1": "1 28895U 05043F 10301.90384514 .00000118 00000-0 33891-4 0 7168", |
305 | + "tle2": "2 28895 97.9923 181.8026 0017166 223.3057 136.6785 14.59954295266498", |
306 | "visible": true |
307 | }, |
308 | - "DOVE (DO-17)": |
309 | + "CUTE-1 (CO-55)": |
310 | { |
311 | - "description": "Amateur satellite", |
312 | - "groups": ["amateur", "non-operational"], |
313 | - "tle1": "1 20440U 90005E 09080.52227667 .00000009 00000-0 18438-4 0 2752", |
314 | - "tle2": "2 20440 98.2451 57.8863 0011973 67.7463 292.4996 14.32122011 741", |
315 | - "draw_orbit": false, |
316 | - "visible": false |
317 | + "comms": [ |
318 | + { |
319 | + "description": "downlink", |
320 | + "frequency": 437.4, |
321 | + "modulation": "AFSK 1200 bps" |
322 | + }], |
323 | + "groups": ["amateur"], |
324 | + "orbitColor": [0, 0, 0], |
325 | + "orbitVisible": false, |
326 | + "tle1": "1 27844U 03031E 10301.55293538 .00000112 00000-0 72257-4 0 9662", |
327 | + "tle2": "2 27844 98.7101 308.6233 0009948 142.0283 218.1605 14.20740927380020", |
328 | + "visible": true |
329 | }, |
330 | "DELFI-C3 (DO-64)": |
331 | { |
332 | @@ -229,1152 +87,1315 @@ |
333 | "frequency": 145.87, |
334 | "modulation": "BPSK 1200 bps" |
335 | }], |
336 | - "description": "Amateur satellite", |
337 | "groups": ["amateur"], |
338 | - "tle1": "1 32789U 08021G 09080.84012653 .00000106 00000-0 20301-4 0 3267", |
339 | - "tle2": "2 32789 97.9568 145.5256 0014665 318.8670 41.1422 14.81641404 48513", |
340 | - "draw_orbit": false, |
341 | + "orbitColor": [0, 0, 0], |
342 | + "orbitVisible": false, |
343 | + "tle1": "1 32789U 08021G 10301.97603882 .00001122 00000-0 14653-3 0 8232", |
344 | + "tle2": "2 32789 97.8873 5.5871 0015021 205.9532 154.0924 14.82393546135328", |
345 | "visible": true |
346 | }, |
347 | + "DOVE (DO-17)": |
348 | + { |
349 | + "comms": [], |
350 | + "groups": ["amateur", "non-operational"], |
351 | + "orbitColor": [0, 0, 0], |
352 | + "orbitVisible": false, |
353 | + "tle1": "1 20440U 90005E 10301.41284784 .00000048 00000-0 33180-4 0 7479", |
354 | + "tle2": "2 20440 98.3259 257.6780 0011703 121.3158 238.9186 14.32187224 84605", |
355 | + "visible": false |
356 | + }, |
357 | "DTUSAT": |
358 | { |
359 | "comms": [], |
360 | - "tle1": "1 27842U 03031C 10010.89561892 .00000007 00000-0 23258-4 0 7359", |
361 | - "tle2": "2 27842 98.7047 23.0441 0008526 245.7454 114.2832 14.21010898338847", |
362 | - "draw_orbit": false, |
363 | + "groups": [], |
364 | + "orbitColor": [0, 0, 0], |
365 | + "orbitVisible": false, |
366 | + "tle1": "1 27842U 03031C 10302.04462644 .00000081 00000-0 57327-4 0 9601", |
367 | + "tle2": "2 27842 98.7019 309.9250 0009996 120.0473 240.1690 14.21063113380192", |
368 | "visible": false |
369 | }, |
370 | + "ECHO (AO-51)": |
371 | + { |
372 | + "comms": [ |
373 | + { |
374 | + "description": "uplink", |
375 | + "frequency": 145.92, |
376 | + "modulation": "FM/Voice" |
377 | + }, |
378 | + { |
379 | + "description": "downlink", |
380 | + "frequency": 435.15, |
381 | + "modulation": "FM/Voice" |
382 | + }], |
383 | + "groups": ["amateur"], |
384 | + "orbitColor": [0, 0, 0], |
385 | + "orbitVisible": false, |
386 | + "tle1": "1 28375U 04025K 10301.07913539 .00000051 00000-0 27765-4 0 8107", |
387 | + "tle2": "2 28375 98.0736 287.0941 0085114 54.0307 306.8742 14.40705651332640", |
388 | + "visible": true |
389 | + }, |
390 | "ENVISAT": |
391 | { |
392 | "comms": [], |
393 | "groups": ["scientific"], |
394 | "hintColor": [0.400000005960464, 0.800000011920929, 1], |
395 | - "tle1": "1 27386U 02009A 10011.73639675 .00000071 00000-0 42510-4 0 6762", |
396 | - "tle2": "2 27386 98.5484 81.1001 0001030 91.3585 61.9740 14.32248909411344", |
397 | - "draw_orbit": true, |
398 | + "orbitColor": [0, 0, 0], |
399 | + "orbitVisible": true, |
400 | + "tle1": "1 27386U 02009A 10302.30705345 .00000433 00000-0 15968-3 0 5695", |
401 | + "tle2": "2 27386 98.5363 7.4906 0001057 108.6868 251.4502 14.37440949452946", |
402 | "visible": true |
403 | }, |
404 | - "JAS-1 (FO-12)": |
405 | - { |
406 | - "description": "Amateur satellite", |
407 | - "groups": ["amateur", "non-operational"], |
408 | - "tle1": "1 16909U 86061B 09080.94650626 -.00000083 00000-0 10000-3 0 5465", |
409 | - "tle2": "2 16909 50.0155 70.0871 0010887 345.8622 14.1906 12.44452849 28116", |
410 | - "draw_orbit": false, |
411 | - "visible": false |
412 | - }, |
413 | - "JAS-1B (FO-20)": |
414 | - { |
415 | - "description": "Amateur satellite", |
416 | - "groups": ["amateur", "non-operational"], |
417 | - "tle1": "1 20480U 90013C 09080.79147234 -.00000010 00000-0 50788-4 0 941", |
418 | - "tle2": "2 20480 99.0681 17.7100 0540652 8.2393 352.7149 12.83361326895695", |
419 | - "draw_orbit": false, |
420 | - "visible": false |
421 | - }, |
422 | - "JAS-2 (FO-29)": |
423 | + "EYESAT-1 (AO-27)": |
424 | { |
425 | "comms": [ |
426 | { |
427 | "description": "uplink", |
428 | - "frequency": 145.95, |
429 | - "modulation": "SSB/CW" |
430 | + "frequency": 145.85 |
431 | }, |
432 | { |
433 | "description": "downlink", |
434 | - "frequency": 435.85, |
435 | - "modulation": "SSB/CW" |
436 | + "frequency": 145.2 |
437 | }], |
438 | - "description": "Amateur satellite", |
439 | "groups": ["amateur"], |
440 | - "tle1": "1 24278U 96046B 09080.73870134 -.00000063 00000-0 -26229-4 0 41", |
441 | - "tle2": "2 24278 98.5666 326.4736 0350089 216.8408 140.8210 13.52942306621921", |
442 | - "draw_orbit": false, |
443 | + "orbitColor": [0, 0, 0], |
444 | + "orbitVisible": false, |
445 | + "tle1": "1 22825U 93061C 10301.86090994 .00000033 00000-0 29665-4 0 6612", |
446 | + "tle2": "2 22825 98.5013 246.4466 0007545 234.1411 125.9055 14.29313405891148", |
447 | "visible": true |
448 | }, |
449 | "GENESIS 1": |
450 | { |
451 | "comms": [], |
452 | - "tle1": "1 29252U 06029A 10011.52793667 .00000091 00000-0 19479-4 0 9551", |
453 | - "tle2": "2 29252 64.5138 48.6502 0005838 166.2231 193.9045 15.03489848192237", |
454 | - "draw_orbit": false, |
455 | + "groups": [], |
456 | + "orbitColor": [0, 0, 0], |
457 | + "orbitVisible": false, |
458 | + "tle1": "1 29252U 06029A 10301.24236459 .00000810 00000-0 71150-4 0 1806", |
459 | + "tle2": "2 29252 64.5138 201.6869 0033064 326.9862 32.9190 15.03780124235794", |
460 | "visible": true |
461 | }, |
462 | "GENESIS 2": |
463 | { |
464 | "comms": [], |
465 | - "tle1": "1 31789U 07028A 10011.52925320 .00000135 00000-0 23184-4 0 7041", |
466 | - "tle2": "2 31789 64.5059 80.0205 0048307 232.0058 127.6690 15.03160429139449", |
467 | - "draw_orbit": false, |
468 | + "groups": [], |
469 | + "orbitColor": [0, 0, 0], |
470 | + "orbitVisible": false, |
471 | + "tle1": "1 31789U 07028A 10301.30602734 .00000668 00000-0 61695-4 0 9244", |
472 | + "tle2": "2 31789 64.5057 233.2725 0015456 185.0663 175.0302 15.03452344183002", |
473 | "visible": true |
474 | }, |
475 | - "TECHSAT 1B (GO-32)": |
476 | - { |
477 | - "description": "Amateur satellite", |
478 | - "groups": ["amateur", "non-operational"], |
479 | - "tle1": "1 25397U 98043D 09080.75202847 -.00000043 00000-0 -91654-6 0 8508", |
480 | - "tle2": "2 25397 98.3353 107.7463 0001898 121.8466 238.2885 14.23155927555696", |
481 | - "draw_orbit": false, |
482 | - "visible": false |
483 | - }, |
484 | "GPS BIIA-10 (PRN 32)": |
485 | { |
486 | "comms": [], |
487 | - "tle1": "1 20959U 90103A 10010.99755647 -.00000036 00000-0 10000-3 0 5262", |
488 | - "tle2": "2 20959 55.0535 274.6290 0132765 299.3343 59.4131 2.00568641140074", |
489 | - "draw_orbit": false, |
490 | + "groups": [], |
491 | + "orbitColor": [0, 0, 0], |
492 | + "orbitVisible": false, |
493 | + "tle1": "1 20959U 90103A 10301.17033650 .00000001 00000-0 10000-3 0 8981", |
494 | + "tle2": "2 20959 54.8508 262.9106 0128049 307.5619 51.2764 2.00571453145897", |
495 | "visible": false |
496 | }, |
497 | "GPS BIIA-11 (PRN 24)": |
498 | { |
499 | "comms": [], |
500 | - "tle1": "1 21552U 91047A 10009.70414824 .00000092 00000-0 10000-3 0 5313", |
501 | - "tle2": "2 21552 54.4144 212.6800 0062160 326.3598 33.2642 2.00563397135632", |
502 | - "draw_orbit": false, |
503 | + "groups": [], |
504 | + "orbitColor": [0, 0, 0], |
505 | + "orbitVisible": false, |
506 | + "tle1": "1 21552U 91047A 10301.06970066 .00000018 00000-0 10000-3 0 8874", |
507 | + "tle2": "2 21552 54.3571 200.9750 0057951 338.3118 21.5157 2.00436716141476", |
508 | "visible": false |
509 | }, |
510 | "GPS BIIA-14 (PRN 26)": |
511 | { |
512 | "comms": [], |
513 | - "tle1": "1 22014U 92039A 10010.93278189 -.00000105 00000-0 10000-3 0 4649", |
514 | - "tle2": "2 22014 56.8181 333.2692 0195319 59.8919 302.0021 2.00570105121807", |
515 | - "draw_orbit": false, |
516 | + "groups": [], |
517 | + "orbitColor": [0, 0, 0], |
518 | + "orbitVisible": false, |
519 | + "tle1": "1 22014U 92039A 10299.97348574 -.00000038 00000-0 10000-3 0 7848", |
520 | + "tle2": "2 22014 56.6867 322.0414 0196227 63.7900 298.2637 2.00568038127602", |
521 | "visible": false |
522 | }, |
523 | "GPS BIIA-15 (PRN 27)": |
524 | { |
525 | "comms": [], |
526 | - "tle1": "1 22108U 92058A 10010.90400221 -.00000067 00000-0 10000-3 0 3539", |
527 | - "tle2": "2 22108 55.9801 26.5719 0219290 274.8295 82.7079 2.00561618126981", |
528 | - "draw_orbit": false, |
529 | + "groups": [], |
530 | + "orbitColor": [0, 0, 0], |
531 | + "orbitVisible": false, |
532 | + "tle1": "1 22108U 92058A 10301.07012426 -.00000061 00000-0 10000-3 0 6825", |
533 | + "tle2": "2 22108 56.1265 15.1080 0219146 282.0449 75.5558 2.00576285132801", |
534 | "visible": false |
535 | }, |
536 | "GPS BIIA-21 (PRN 09)": |
537 | { |
538 | "comms": [], |
539 | - "tle1": "1 22700U 93042A 10010.42349068 -.00000067 00000-0 10000-3 0 7005", |
540 | - "tle2": "2 22700 56.0930 27.9954 0203907 87.3193 275.0601 2.00570795121138", |
541 | - "draw_orbit": false, |
542 | + "groups": [], |
543 | + "orbitColor": [0, 0, 0], |
544 | + "orbitVisible": false, |
545 | + "tle1": "1 22700U 93042A 10300.60063047 -.00000060 00000-0 10000-3 0 227", |
546 | + "tle2": "2 22700 56.2590 16.5804 0168032 88.8279 273.1456 2.00561025126958", |
547 | "visible": false |
548 | }, |
549 | "GPS BIIA-23 (PRN 04)": |
550 | { |
551 | "comms": [], |
552 | - "tle1": "1 22877U 93068A 10010.06604071 .00000093 00000-0 10000-3 0 197", |
553 | - "tle2": "2 22877 53.8346 209.9413 0090336 32.3870 328.2140 2.00570796118779", |
554 | - "draw_orbit": false, |
555 | + "groups": [], |
556 | + "orbitColor": [0, 0, 0], |
557 | + "orbitVisible": false, |
558 | + "tle1": "1 22877U 93068A 10300.74029013 .00000022 00000-0 10000-3 0 3691", |
559 | + "tle2": "2 22877 53.7782 198.0703 0092885 37.1146 323.5923 2.00552150124602", |
560 | "visible": false |
561 | }, |
562 | "GPS BIIA-24 (PRN 06)": |
563 | { |
564 | "comms": [], |
565 | - "tle1": "1 23027U 94016A 10010.76960448 .00000006 00000-0 10000-3 0 283", |
566 | - "tle2": "2 23027 53.5254 146.9361 0060541 291.8296 67.4883 2.00564113116098", |
567 | - "draw_orbit": false, |
568 | + "groups": [], |
569 | + "orbitColor": [0, 0, 0], |
570 | + "orbitVisible": false, |
571 | + "tle1": "1 23027U 94016A 10301.43787208 .00000072 00000-0 10000-3 0 3399", |
572 | + "tle2": "2 23027 53.5644 134.9878 0063098 304.7648 54.7027 2.00565234121928", |
573 | "visible": false |
574 | }, |
575 | "GPS BIIA-25 (PRN 03)": |
576 | { |
577 | "comms": [], |
578 | - "tle1": "1 23833U 96019A 10011.28117265 -.00000009 00000-0 10000-3 0 2176", |
579 | - "tle2": "2 23833 53.1057 142.9368 0125981 55.7020 305.4397 2.00562273101088", |
580 | - "draw_orbit": false, |
581 | + "groups": [], |
582 | + "orbitColor": [0, 0, 0], |
583 | + "orbitVisible": false, |
584 | + "tle1": "1 23833U 96019A 10300.45786614 .00000069 00000-0 10000-3 0 5332", |
585 | + "tle2": "2 23833 53.1598 130.9064 0142163 56.9894 304.4139 2.00570127106884", |
586 | "visible": false |
587 | }, |
588 | "GPS BIIA-26 (PRN 10)": |
589 | { |
590 | "comms": [], |
591 | - "tle1": "1 23953U 96041A 10011.18603747 -.00000025 00000-0 10000-3 0 6866", |
592 | - "tle2": "2 23953 54.7294 271.0433 0088058 35.3384 325.3007 2.00592554 98874", |
593 | - "draw_orbit": false, |
594 | + "groups": [], |
595 | + "orbitColor": [0, 0, 0], |
596 | + "orbitVisible": false, |
597 | + "tle1": "1 23953U 96041A 10300.83095470 .00000001 00000-0 10000-3 0 280", |
598 | + "tle2": "2 23953 54.5206 259.2542 0093347 37.3286 323.3054 2.00580557104681", |
599 | "visible": false |
600 | }, |
601 | "GPS BIIA-27 (PRN 30)": |
602 | { |
603 | "comms": [], |
604 | - "tle1": "1 24320U 96056A 10010.55267325 -.00000068 00000-0 10000-3 0 4257", |
605 | - "tle2": "2 24320 54.6846 87.2451 0117066 83.4925 277.8682 2.00567811 97528", |
606 | - "draw_orbit": false, |
607 | + "groups": [], |
608 | + "orbitColor": [0, 0, 0], |
609 | + "orbitVisible": false, |
610 | + "tle1": "1 24320U 96056A 10300.76073036 .00000024 00000-0 00000+0 0 7570", |
611 | + "tle2": "2 24320 54.8841 75.4974 0129153 89.1011 272.3637 2.00368467103347", |
612 | "visible": false |
613 | }, |
614 | "GPS BIIA-28 (PRN 08)": |
615 | { |
616 | "comms": [], |
617 | - "tle1": "1 25030U 97067A 10010.28331492 -.00000064 00000-0 10000-3 0 1002", |
618 | - "tle2": "2 25030 56.8069 33.5854 0109830 177.7126 182.3861 2.00557057 89283", |
619 | - "draw_orbit": false, |
620 | + "groups": [], |
621 | + "orbitColor": [0, 0, 0], |
622 | + "orbitVisible": false, |
623 | + "tle1": "1 25030U 97067A 10300.46082717 -.00000055 00000-0 10000-3 0 4280", |
624 | + "tle2": "2 25030 56.9800 22.3810 0114857 181.8340 178.1709 2.00565936 95101", |
625 | "visible": false |
626 | }, |
627 | "GPS BIIR-02 (PRN 13)": |
628 | { |
629 | "comms": [], |
630 | - "tle1": "1 24876U 97035A 10011.15261365 -.00000105 00000-0 10000-3 0 1907", |
631 | - "tle2": "2 24876 56.9425 333.4309 0037352 94.7690 265.6519 2.00571727 91409", |
632 | - "draw_orbit": false, |
633 | + "groups": [], |
634 | + "orbitColor": [0, 0, 0], |
635 | + "orbitVisible": false, |
636 | + "tle1": "1 24876U 97035A 10300.82746512 -.00000037 00000-0 10000-3 0 5014", |
637 | + "tle2": "2 24876 56.8190 322.2355 0040820 104.7722 255.7262 2.00561646 97215", |
638 | "visible": false |
639 | }, |
640 | "GPS BIIR-03 (PRN 11)": |
641 | { |
642 | "comms": [], |
643 | - "tle1": "1 25933U 99055A 10010.92537465 .00000081 00000-0 10000-3 0 6410", |
644 | - "tle2": "2 25933 50.9220 196.7469 0102582 44.1197 316.7153 2.00557696 75219", |
645 | - "draw_orbit": false, |
646 | + "groups": [], |
647 | + "orbitColor": [0, 0, 0], |
648 | + "orbitVisible": false, |
649 | + "tle1": "1 25933U 99055A 10301.10513055 .00000027 00000-0 10000-3 0 9482", |
650 | + "tle2": "2 25933 50.8872 184.0730 0111220 49.1827 311.8654 2.00586073 81036", |
651 | "visible": false |
652 | }, |
653 | "GPS BIIR-04 (PRN 20)": |
654 | { |
655 | "comms": [], |
656 | - "tle1": "1 26360U 00025A 10011.52706440 -.00000016 00000-0 10000-3 0 7344", |
657 | - "tle2": "2 26360 53.7974 268.0575 0039769 72.6509 287.8497 2.00559568 70923", |
658 | - "draw_orbit": false, |
659 | + "groups": [], |
660 | + "orbitColor": [0, 0, 0], |
661 | + "orbitVisible": false, |
662 | + "tle1": "1 26360U 00025A 10300.69570086 .00000000 00000-0 10000-3 0 398", |
663 | + "tle2": "2 26360 53.6003 256.0337 0040795 71.7443 288.6921 2.00547813 76721", |
664 | "visible": false |
665 | }, |
666 | "GPS BIIR-05 (PRN 28)": |
667 | { |
668 | "comms": [], |
669 | - "tle1": "1 26407U 00040A 10010.36440597 -.00000066 00000-0 10000-3 0 6829", |
670 | - "tle2": "2 26407 55.5104 91.6427 0157978 246.2508 112.1090 2.00565206 69571", |
671 | - "draw_orbit": false, |
672 | + "groups": [], |
673 | + "orbitColor": [0, 0, 0], |
674 | + "orbitVisible": false, |
675 | + "tle1": "1 26407U 00040A 10301.53469852 .00000000 00000-0 10000-3 0 9882", |
676 | + "tle2": "2 26407 55.6937 80.1082 0165329 248.9835 109.2466 2.00562548 75417", |
677 | "visible": false |
678 | }, |
679 | "GPS BIIR-06 (PRN 14)": |
680 | { |
681 | "comms": [], |
682 | - "tle1": "1 26605U 00071A 10010.96064742 -.00000106 00000-0 10000-3 0 6884", |
683 | - "tle2": "2 26605 56.5635 332.2378 0052732 241.2746 118.1865 2.00562276 67186", |
684 | - "draw_orbit": false, |
685 | + "groups": [], |
686 | + "orbitColor": [0, 0, 0], |
687 | + "orbitVisible": false, |
688 | + "tle1": "1 26605U 00071A 10301.13987066 -.00000036 00000-0 10000-3 0 9985", |
689 | + "tle2": "2 26605 56.4295 320.9194 0059068 240.4602 118.9895 2.00574824 73009", |
690 | "visible": false |
691 | }, |
692 | "GPS BIIR-07 (PRN 18)": |
693 | { |
694 | "comms": [], |
695 | - "tle1": "1 26690U 01004A 10011.32818609 -.00000026 00000-0 10000-3 0 5740", |
696 | - "tle2": "2 26690 53.8131 271.1512 0110582 226.2030 132.9381 2.00565198 65607", |
697 | - "draw_orbit": false, |
698 | + "groups": [], |
699 | + "orbitColor": [0, 0, 0], |
700 | + "orbitVisible": false, |
701 | + "tle1": "1 26690U 01004A 10301.00551877 -.00000001 00000-0 10000-3 0 8777", |
702 | + "tle2": "2 26690 53.6003 259.1082 0120363 229.8105 129.1216 2.00556043 71411", |
703 | "visible": false |
704 | }, |
705 | "GPS BIIR-08 (PRN 16)": |
706 | { |
707 | "comms": [], |
708 | - "tle1": "1 27663U 03005A 10010.18241212 -.00000066 00000-0 10000-3 0 9453", |
709 | - "tle2": "2 27663 55.6126 91.1957 0054149 342.9474 16.8941 2.00562319 50933", |
710 | - "draw_orbit": false, |
711 | + "groups": [], |
712 | + "orbitColor": [0, 0, 0], |
713 | + "orbitVisible": false, |
714 | + "tle1": "1 27663U 03005A 10301.36090832 .00000036 00000-0 10000-3 0 2860", |
715 | + "tle2": "2 27663 55.7967 79.6869 0058044 349.2639 10.6053 2.00563683 56770", |
716 | "visible": false |
717 | }, |
718 | "GPS BIIR-09 (PRN 21)": |
719 | { |
720 | "comms": [], |
721 | - "tle1": "1 27704U 03010A 10010.75198163 .00000090 00000-0 10000-3 0 8437", |
722 | - "tle2": "2 27704 53.4558 210.5815 0154862 213.4823 145.5286 2.00557110 49738", |
723 | - "draw_orbit": false, |
724 | + "groups": [], |
725 | + "orbitColor": [0, 0, 0], |
726 | + "orbitVisible": false, |
727 | + "tle1": "1 27704U 03010A 10299.92552095 .00000026 00000-0 10000-3 0 1671", |
728 | + "tle2": "2 27704 53.4076 198.6608 0172053 221.0136 137.7605 2.00568532 55536", |
729 | "visible": false |
730 | }, |
731 | "GPS BIIR-10 (PRN 22)": |
732 | { |
733 | "comms": [], |
734 | - "tle1": "1 28129U 03058A 10010.87364204 -.00000030 00000-0 10000-3 0 4548", |
735 | - "tle2": "2 28129 53.6784 271.4646 0053797 253.0522 106.4165 2.00564472 44446", |
736 | - "draw_orbit": false, |
737 | + "groups": [], |
738 | + "orbitColor": [0, 0, 0], |
739 | + "orbitVisible": false, |
740 | + "tle1": "1 28129U 03058A 10301.04872722 -.00000002 00000-0 10000-3 0 7642", |
741 | + "tle2": "2 28129 53.4689 259.3656 0057247 250.7828 108.5881 2.00557705 50267", |
742 | "visible": false |
743 | }, |
744 | "GPS BIIR-11 (PRN 19)": |
745 | { |
746 | "comms": [], |
747 | - "tle1": "1 28190U 04009A 10011.32018064 .00000015 00000-0 10000-3 0 4007", |
748 | - "tle2": "2 28190 54.8708 154.0770 0060512 347.4292 12.3771 2.00562181 42623", |
749 | - "draw_orbit": false, |
750 | + "groups": [], |
751 | + "orbitColor": [0, 0, 0], |
752 | + "orbitVisible": false, |
753 | + "tle1": "1 28190U 04009A 10301.50046097 .00000072 00000-0 10000-3 0 7406", |
754 | + "tle2": "2 28190 54.9000 142.5675 0066538 355.8704 4.1637 2.00574577 48448", |
755 | "visible": false |
756 | }, |
757 | "GPS BIIR-12 (PRN 23)": |
758 | { |
759 | "comms": [], |
760 | - "tle1": "1 28361U 04023A 10011.11001436 -.00000108 00000-0 10000-3 0 2210", |
761 | - "tle2": "2 28361 55.5233 330.1407 0063091 175.1654 184.8914 2.00555994 40706", |
762 | - "draw_orbit": false, |
763 | + "groups": [], |
764 | + "orbitColor": [0, 0, 0], |
765 | + "orbitVisible": false, |
766 | + "tle1": "1 28361U 04023A 10301.28559030 -.00000036 00000-0 10000-3 0 5604", |
767 | + "tle2": "2 28361 55.3810 318.5203 0072448 180.5016 179.5309 2.00568475 46520", |
768 | "visible": false |
769 | }, |
770 | "GPS BIIR-13 (PRN 02)": |
771 | { |
772 | "comms": [], |
773 | - "tle1": "1 28474U 04045A 10010.60958177 .00000092 00000-0 10000-3 0 1103", |
774 | - "tle2": "2 28474 53.8831 208.8835 0092214 169.6917 190.5412 2.00553740 38050", |
775 | - "draw_orbit": false, |
776 | + "groups": [], |
777 | + "orbitColor": [0, 0, 0], |
778 | + "orbitVisible": false, |
779 | + "tle1": "1 28474U 04045A 10300.77942241 .00000022 00000-0 10000-3 0 4407", |
780 | + "tle2": "2 28474 53.8254 197.0502 0092613 180.6485 179.4129 2.00565881 43871", |
781 | "visible": false |
782 | }, |
783 | "GPS BIIRM-1 (PRN 17)": |
784 | { |
785 | "comms": [], |
786 | - "tle1": "1 28874U 05038A 10010.46611155 .00000020 00000-0 10000-3 0 3749", |
787 | - "tle2": "2 28874 55.0076 150.9355 0050579 211.6273 148.0313 2.00552416 31470", |
788 | - "draw_orbit": false, |
789 | + "groups": [], |
790 | + "orbitColor": [0, 0, 0], |
791 | + "orbitVisible": false, |
792 | + "tle1": "1 28874U 05038A 10300.63167212 .00000072 00000-0 10000-3 0 7178", |
793 | + "tle2": "2 28874 55.0369 139.4663 0058105 217.5165 142.1443 2.00563988 37298", |
794 | "visible": false |
795 | }, |
796 | "GPS BIIRM-2 (PRN 31)": |
797 | { |
798 | "comms": [], |
799 | - "tle1": "1 29486U 06042A 10011.06942763 -.00000065 00000-0 10000-3 0 6815", |
800 | - "tle2": "2 29486 55.8943 29.7669 0076878 294.8151 64.4195 2.00574313 24189", |
801 | - "draw_orbit": false, |
802 | + "groups": [], |
803 | + "orbitColor": [0, 0, 0], |
804 | + "orbitVisible": false, |
805 | + "tle1": "1 29486U 06042A 10300.25051077 -.00000059 00000-0 10000-3 0 318", |
806 | + "tle2": "2 29486 56.0510 18.3338 0076580 298.9210 60.3604 2.00551737 29988", |
807 | "visible": false |
808 | }, |
809 | "GPS BIIRM-3 (PRN 12)": |
810 | { |
811 | "comms": [], |
812 | - "tle1": "1 29601U 06052A 10010.51493068 -.00000066 00000-0 10000-3 0 7387", |
813 | - "tle2": "2 29601 55.5346 90.1935 0034161 324.4761 35.3273 2.00550794 23085", |
814 | - "draw_orbit": false, |
815 | + "groups": [], |
816 | + "orbitColor": [0, 0, 0], |
817 | + "orbitVisible": false, |
818 | + "tle1": "1 29601U 06052A 10300.68949439 .00000031 00000-0 10000-3 0 952", |
819 | + "tle2": "2 29601 55.7140 78.7061 0033602 337.9762 21.8540 2.00573430 28905", |
820 | "visible": false |
821 | }, |
822 | "GPS BIIRM-4 (PRN 15)": |
823 | { |
824 | "comms": [], |
825 | - "tle1": "1 32260U 07047A 10010.31555820 -.00000108 00000-0 00000+0 0 4705", |
826 | - "tle2": "2 32260 54.7160 328.8448 0023063 332.4507 27.4199 2.00560044 16474", |
827 | - "draw_orbit": false, |
828 | + "groups": [], |
829 | + "orbitColor": [0, 0, 0], |
830 | + "orbitVisible": false, |
831 | + "tle1": "1 32260U 07047A 10301.00379408 -.00000037 00000-0 00000+0 0 8086", |
832 | + "tle2": "2 32260 54.5620 316.9717 0026605 346.0435 13.9162 2.00545550 22300", |
833 | "visible": false |
834 | }, |
835 | "GPS BIIRM-5 (PRN 29)": |
836 | { |
837 | "comms": [], |
838 | - "tle1": "1 32384U 07062A 10010.63802324 .00000019 00000-0 10000-3 0 4994", |
839 | - "tle2": "2 32384 55.0131 151.4032 0032068 287.1304 72.4854 2.00578110 15209", |
840 | - "draw_orbit": false, |
841 | + "groups": [], |
842 | + "orbitColor": [0, 0, 0], |
843 | + "orbitVisible": false, |
844 | + "tle1": "1 32384U 07062A 10300.82009883 .00000072 00000-0 10000-3 0 8359", |
845 | + "tle2": "2 32384 55.0523 139.9388 0024871 291.4893 68.2676 2.00565959 21022", |
846 | "visible": false |
847 | }, |
848 | "GPS BIIRM-6 (PRN 07)": |
849 | { |
850 | "comms": [], |
851 | - "tle1": "1 32711U 08012A 10010.73574093 -.00000067 00000-0 10000-3 0 3661", |
852 | - "tle2": "2 32711 55.5876 29.8416 0032333 179.9404 180.1045 2.00557495 13415", |
853 | - "draw_orbit": false, |
854 | + "groups": [], |
855 | + "orbitColor": [0, 0, 0], |
856 | + "orbitVisible": false, |
857 | + "tle1": "1 32711U 08012A 10300.91601166 -.00000060 00000-0 10000-3 0 6672", |
858 | + "tle2": "2 32711 55.7503 18.2909 0041268 182.2061 177.8254 2.00562157 19238", |
859 | "visible": false |
860 | }, |
861 | + "HAMSAT (VO-52)": |
862 | + { |
863 | + "comms": [ |
864 | + { |
865 | + "description": "Beacon", |
866 | + "frequency": 145.86, |
867 | + "modulation": "CW" |
868 | + }], |
869 | + "groups": ["amateur"], |
870 | + "orbitColor": [0, 0, 0], |
871 | + "orbitVisible": false, |
872 | + "tle1": "1 28650U 05017B 10301.70204233 .00000454 00000-0 63624-4 0 6322", |
873 | + "tle2": "2 28650 97.6762 349.8118 0026562 197.3803 162.6532 14.81837321296466", |
874 | + "visible": true |
875 | + }, |
876 | "HST": |
877 | { |
878 | "comms": [], |
879 | - "tle1": "1 20580U 90037B 10009.85735511 .00000291 00000-0 94489-5 0 5019", |
880 | - "tle2": "2 20580 28.4685 193.3983 0003260 317.8077 42.2266 15.00875675880934", |
881 | - "draw_orbit": false, |
882 | + "groups": [], |
883 | + "orbitColor": [0, 0, 0], |
884 | + "orbitVisible": true, |
885 | + "tle1": "1 20580U 90037B 10300.09759300 .00000718 00000-0 41998-4 0 6685", |
886 | + "tle2": "2 20580 28.4686 98.6536 0003467 162.6448 197.4276 15.01074509924596", |
887 | "visible": true |
888 | }, |
889 | - "ITAMSAT (IO-26)": |
890 | - { |
891 | - "description": "Amateur satellite", |
892 | - "groups": ["amateur", "non-operational"], |
893 | - "tle1": "1 22826U 93061D 09080.85350470 -.00000006 00000-0 14293-4 0 9268", |
894 | - "tle2": "2 22826 98.4204 37.8560 0009197 152.3361 207.8319 14.29512039807534", |
895 | - "draw_orbit": false, |
896 | - "visible": false |
897 | - }, |
898 | "IRIDIUM 10": |
899 | { |
900 | - "description": "Iridium 10", |
901 | + "comms": [], |
902 | "groups": ["iridium", "communications"], |
903 | - "tle1": "1 24839U 97030D 09080.75603299 .00000198 00000-0 63641-4 0 5665", |
904 | - "tle2": "2 24839 86.4032 167.9110 0002345 85.8737 274.2720 14.34216304615619", |
905 | - "draw_orbit": false, |
906 | + "orbitColor": [0, 0, 0], |
907 | + "orbitVisible": false, |
908 | + "tle1": "1 24839U 97030D 10301.46267144 .00000007 00000-0 -45497-5 0 2584", |
909 | + "tle2": "2 24839 86.3911 283.1128 0002489 80.1516 279.9963 14.34216097699562", |
910 | "visible": false |
911 | }, |
912 | "IRIDIUM 11": |
913 | { |
914 | - "description": "Iridium 11", |
915 | + "comms": [], |
916 | "groups": ["iridium", "communications"], |
917 | - "tle1": "1 25578U 98074B 09080.96418723 .00000021 00000-0 -64075-8 0 5598", |
918 | - "tle2": "2 25578 86.5093 73.3425 0002585 79.6314 280.5189 14.54937843544862", |
919 | - "draw_orbit": false, |
920 | + "orbitColor": [0, 0, 0], |
921 | + "orbitVisible": false, |
922 | + "tle1": "1 25578U 98074B 10301.24589116 .00000272 00000-0 58203-4 0 2734", |
923 | + "tle2": "2 25578 86.5181 188.7611 0002357 77.8060 282.3396 14.54951368629966", |
924 | "visible": false |
925 | }, |
926 | "IRIDIUM 12": |
927 | { |
928 | - "description": "Iridium 12", |
929 | + "comms": [], |
930 | "groups": ["iridium", "communications"], |
931 | - "tle1": "1 24837U 97030B 09080.76871839 .00000162 00000-0 50797-4 0 5682", |
932 | - "tle2": "2 24837 86.4018 167.9072 0002316 83.3237 276.8222 14.34216073615601", |
933 | - "draw_orbit": false, |
934 | + "orbitColor": [0, 0, 0], |
935 | + "orbitVisible": false, |
936 | + "tle1": "1 24837U 97030B 10301.40558675 -.00000010 00000-0 -10565-4 0 2579", |
937 | + "tle2": "2 24837 86.3903 283.1426 0002512 84.4387 275.7108 14.34216340699546", |
938 | "visible": false |
939 | }, |
940 | "IRIDIUM 13": |
941 | { |
942 | - "description": "Iridium 13", |
943 | + "comms": [], |
944 | "groups": ["iridium", "communications"], |
945 | - "tle1": "1 24840U 97030E 09080.77506041 .00000178 00000-0 56458-4 0 5246", |
946 | - "tle2": "2 24840 86.4035 167.9756 0002404 88.5081 271.6386 14.34216342615608", |
947 | - "draw_orbit": false, |
948 | + "orbitColor": [0, 0, 0], |
949 | + "orbitVisible": false, |
950 | + "tle1": "1 24840U 97030E 10301.48170248 .00000002 00000-0 -63744-5 0 2148", |
951 | + "tle2": "2 24840 86.3913 283.1911 0002538 78.9591 281.1904 14.34216190699552", |
952 | "visible": false |
953 | }, |
954 | "IRIDIUM 14": |
955 | { |
956 | - "description": "Iridium 14", |
957 | + "comms": [], |
958 | "groups": ["iridium", "communications"], |
959 | - "tle1": "1 25777U 99032A 09080.96055310 .00000130 00000-0 25188-4 0 5243", |
960 | - "tle2": "2 25777 86.5126 41.6339 0001855 82.9817 277.1596 14.54935495519245", |
961 | - "draw_orbit": false, |
962 | + "orbitColor": [0, 0, 0], |
963 | + "orbitVisible": false, |
964 | + "tle1": "1 25777U 99032A 10301.51723412 .00000154 00000-0 30756-4 0 2427", |
965 | + "tle2": "2 25777 86.5153 156.9718 0002312 77.7386 282.4084 14.54947031604388", |
966 | "visible": false |
967 | }, |
968 | "IRIDIUM 15": |
969 | { |
970 | - "description": "Iridium 15", |
971 | + "comms": [], |
972 | "groups": ["iridium", "communications"], |
973 | - "tle1": "1 24869U 97034A 09080.83555834 .00000127 00000-0 38404-4 0 5876", |
974 | - "tle2": "2 24869 86.3996 199.4843 0002242 82.3271 277.8172 14.34217422612589", |
975 | - "draw_orbit": false, |
976 | + "orbitColor": [0, 0, 0], |
977 | + "orbitVisible": false, |
978 | + "tle1": "1 24869U 97034A 10301.47242563 -.00000024 00000-0 -15465-4 0 2873", |
979 | + "tle2": "2 24869 86.3926 314.8201 0002445 86.9290 273.2200 14.34219000696521", |
980 | "visible": false |
981 | }, |
982 | "IRIDIUM 16": |
983 | { |
984 | - "description": "Iridium 16", |
985 | + "comms": [], |
986 | "groups": ["iridium", "communications"], |
987 | - "tle1": "1 24841U 97030F 09080.74756006 .00000103 00000-0 28979-4 0 5472", |
988 | - "tle2": "2 24841 86.4115 168.5066 0004087 67.5298 292.6324 14.35274480615732", |
989 | - "draw_orbit": false, |
990 | + "orbitColor": [0, 0, 0], |
991 | + "orbitVisible": false, |
992 | + "tle1": "1 24841U 97030F 10301.49343822 .00000157 00000-0 47706-4 0 2532", |
993 | + "tle2": "2 24841 86.3990 283.8057 0001109 29.5848 330.5421 14.35369815699755", |
994 | "visible": false |
995 | }, |
996 | "IRIDIUM 17": |
997 | { |
998 | - "description": "Iridium 17", |
999 | + "comms": [], |
1000 | "groups": ["iridium", "communications"], |
1001 | - "tle1": "1 24870U 97034B 09080.86574228 .00000094 00000-0 26348-4 0 5551", |
1002 | - "tle2": "2 24870 86.3997 199.3860 0002450 74.3578 285.7893 14.34424293612609", |
1003 | - "draw_orbit": false, |
1004 | + "orbitColor": [0, 0, 0], |
1005 | + "orbitVisible": false, |
1006 | + "tle1": "1 24870U 97034B 10301.40154518 .00000156 00000-0 48296-4 0 2490", |
1007 | + "tle2": "2 24870 86.3935 314.6658 0002199 76.6525 283.4917 14.34512721696546", |
1008 | "visible": false |
1009 | }, |
1010 | "IRIDIUM 18": |
1011 | { |
1012 | - "description": "Iridium 18", |
1013 | + "comms": [], |
1014 | "groups": ["iridium", "communications"], |
1015 | - "tle1": "1 24872U 97034D 09080.86727066 .00000184 00000-0 58625-4 0 5567", |
1016 | - "tle2": "2 24872 86.4003 199.6099 0002454 81.7604 278.3867 14.34217527612589", |
1017 | - "draw_orbit": false, |
1018 | + "orbitColor": [0, 0, 0], |
1019 | + "orbitVisible": false, |
1020 | + "tle1": "1 24872U 97034D 10301.50413725 .00000004 00000-0 -56993-5 0 2443", |
1021 | + "tle2": "2 24872 86.3931 314.9668 0002380 81.5831 278.5648 14.34219073696523", |
1022 | "visible": false |
1023 | }, |
1024 | "IRIDIUM 19": |
1025 | { |
1026 | - "description": "Iridium 19", |
1027 | + "comms": [], |
1028 | "groups": ["iridium", "communications"], |
1029 | - "tle1": "1 24965U 97056A 09080.72718535 .00000100 00000-0 28631-4 0 5236", |
1030 | - "tle2": "2 24965 86.3996 136.4806 0002460 90.2603 269.8873 14.34219384601200", |
1031 | - "draw_orbit": false, |
1032 | + "orbitColor": [0, 0, 0], |
1033 | + "orbitVisible": false, |
1034 | + "tle1": "1 24965U 97056A 10301.50366897 .00000088 00000-0 24442-4 0 2104", |
1035 | + "tle2": "2 24965 86.3935 251.5975 0002482 84.1741 275.9721 14.34218772685165", |
1036 | "visible": false |
1037 | }, |
1038 | "IRIDIUM 2": |
1039 | { |
1040 | - "description": "Iridium 2", |
1041 | + "comms": [], |
1042 | "groups": ["iridium", "communications"], |
1043 | - "tle1": "1 25527U 98066A 09080.75555857 .00000044 00000-0 94123-6 0 8457", |
1044 | - "tle2": "2 25527 85.5654 330.3309 0011200 129.4966 230.7244 14.97948645565148", |
1045 | - "draw_orbit": false, |
1046 | + "orbitColor": [0, 0, 0], |
1047 | + "orbitVisible": false, |
1048 | + "tle1": "1 25527U 98066A 10301.18691019 .00001380 00000-0 11268-3 0 6125", |
1049 | + "tle2": "2 25527 85.5646 356.9509 0008409 198.8268 161.2649 14.98527668652791", |
1050 | "visible": false |
1051 | }, |
1052 | "IRIDIUM 20": |
1053 | { |
1054 | - "description": "Iridium 20", |
1055 | + "comms": [], |
1056 | "groups": ["iridium", "communications"], |
1057 | - "tle1": "1 25577U 98074A 09080.98033202 -.00000021 00000-0 -14422-4 0 3714", |
1058 | - "tle2": "2 25577 86.3904 73.1381 0002452 79.1409 281.0061 14.34214985537121", |
1059 | - "draw_orbit": false, |
1060 | + "orbitColor": [0, 0, 0], |
1061 | + "orbitVisible": false, |
1062 | + "tle1": "1 25577U 98074A 10301.40802733 -.00001014 00000-0 -36937-3 0 503", |
1063 | + "tle2": "2 25577 86.3993 188.4413 0002307 83.6228 276.5230 14.34213135621030", |
1064 | "visible": false |
1065 | }, |
1066 | "IRIDIUM 21": |
1067 | { |
1068 | - "description": "Iridium 21", |
1069 | + "comms": [], |
1070 | "groups": ["iridium", "communications"], |
1071 | - "tle1": "1 25778U 99032B 09080.93260961 .00000088 00000-0 24407-4 0 4289", |
1072 | - "tle2": "2 25778 86.3940 41.6568 0001858 135.0959 225.0387 14.34213303516794", |
1073 | - "draw_orbit": false, |
1074 | + "orbitColor": [0, 0, 0], |
1075 | + "orbitVisible": false, |
1076 | + "tle1": "1 25778U 99032B 10301.36016290 .00000109 00000-0 32005-4 0 1215", |
1077 | + "tle2": "2 25778 86.3966 157.0456 0004285 90.1310 270.0372 14.34223335600704", |
1078 | "visible": false |
1079 | }, |
1080 | "IRIDIUM 22": |
1081 | { |
1082 | - "description": "Iridium 22", |
1083 | + "comms": [], |
1084 | "groups": ["iridium", "communications"], |
1085 | - "tle1": "1 24907U 97043E 09080.93593228 .00000038 00000-0 64008-5 0 5443", |
1086 | - "tle2": "2 24907 86.3913 73.5164 0002428 76.7490 283.3976 14.34215296606512", |
1087 | - "draw_orbit": false, |
1088 | + "orbitColor": [0, 0, 0], |
1089 | + "orbitVisible": false, |
1090 | + "tle1": "1 24907U 97043E 10301.36362755 .00000137 00000-0 41923-4 0 2275", |
1091 | + "tle2": "2 24907 86.4005 188.8880 0002341 81.1379 279.0079 14.34216367690429", |
1092 | "visible": false |
1093 | }, |
1094 | "IRIDIUM 23": |
1095 | { |
1096 | - "description": "Iridium 23", |
1097 | + "comms": [], |
1098 | "groups": ["iridium", "communications"], |
1099 | - "tle1": "1 24906U 97043D 09080.94227688 .00000036 00000-0 58894-5 0 5744", |
1100 | - "tle2": "2 24906 86.3894 73.1318 0002472 82.1303 278.0178 14.34215338606511", |
1101 | - "draw_orbit": false, |
1102 | + "orbitColor": [0, 0, 0], |
1103 | + "orbitVisible": false, |
1104 | + "tle1": "1 24906U 97043D 10301.43972938 .00000175 00000-0 55359-4 0 2597", |
1105 | + "tle2": "2 24906 86.3999 188.3968 0002284 78.4691 281.6760 14.34218288690434", |
1106 | "visible": false |
1107 | }, |
1108 | "IRIDIUM 24": |
1109 | { |
1110 | - "description": "Iridium 24", |
1111 | + "comms": [], |
1112 | "groups": ["iridium", "communications"], |
1113 | - "tle1": "1 25105U 97082B 09080.88485856 .00000094 00000-0 24467-4 0 1226", |
1114 | - "tle2": "2 25105 86.3868 64.1686 0012063 143.9347 216.2672 14.38254916590102", |
1115 | - "draw_orbit": false, |
1116 | + "orbitColor": [0, 0, 0], |
1117 | + "orbitVisible": false, |
1118 | + "tle1": "1 25105U 97082B 10301.18083982 .00000179 00000-0 52087-4 0 7624", |
1119 | + "tle2": "2 25105 86.3964 177.7006 0013578 41.4370 318.7856 14.38367245674235", |
1120 | "visible": false |
1121 | }, |
1122 | "IRIDIUM 25": |
1123 | { |
1124 | - "description": "Iridium 25", |
1125 | + "comms": [], |
1126 | "groups": ["iridium", "communications"], |
1127 | - "tle1": "1 24904U 97043B 09080.95495998 .00000045 00000-0 90546-5 0 5564", |
1128 | - "tle2": "2 24904 86.3902 73.1904 0002447 79.4878 280.6605 14.34215301606501", |
1129 | - "draw_orbit": false, |
1130 | + "orbitColor": [0, 0, 0], |
1131 | + "orbitVisible": false, |
1132 | + "tle1": "1 24904U 97043B 10301.31288895 -.00000306 00000-0 -11639-3 0 2415", |
1133 | + "tle2": "2 24904 86.3986 188.5237 0002349 81.6978 278.4538 14.34214579690408", |
1134 | "visible": false |
1135 | }, |
1136 | "IRIDIUM 26": |
1137 | { |
1138 | - "description": "Iridium 26", |
1139 | + "comms": [], |
1140 | "groups": ["iridium", "communications"], |
1141 | - "tle1": "1 24903U 97043A 09080.92325319 .00000061 00000-0 14603-4 0 6635", |
1142 | - "tle2": "2 24903 86.3905 73.2530 0002433 79.3191 280.8286 14.34215067606530", |
1143 | - "draw_orbit": false, |
1144 | + "orbitColor": [0, 0, 0], |
1145 | + "orbitVisible": false, |
1146 | + "tle1": "1 24903U 97043A 10301.28117716 -.00000455 00000-0 -16970-3 0 3502", |
1147 | + "tle2": "2 24903 86.3991 188.5961 0002453 79.9332 280.2207 14.34214020690435", |
1148 | "visible": false |
1149 | }, |
1150 | "IRIDIUM 28": |
1151 | { |
1152 | - "description": "Iridium 28", |
1153 | + "comms": [], |
1154 | "groups": ["iridium", "communications"], |
1155 | - "tle1": "1 24948U 97051E 09080.72766345 -.00000012 00000-0 -11441-4 0 3800", |
1156 | - "tle2": "2 24948 86.3924 105.0922 0002660 74.1790 285.9694 14.34248276603049", |
1157 | - "draw_orbit": false, |
1158 | + "orbitColor": [0, 0, 0], |
1159 | + "orbitVisible": false, |
1160 | + "tle1": "1 24948U 97051E 10301.33479639 .00000180 00000-0 57176-4 0 864", |
1161 | + "tle2": "2 24948 86.3985 220.2483 0001878 79.3904 280.7492 14.34341723686986", |
1162 | "visible": false |
1163 | }, |
1164 | "IRIDIUM 29": |
1165 | { |
1166 | - "description": "Iridium 29", |
1167 | + "comms": [], |
1168 | "groups": ["iridium", "communications"], |
1169 | - "tle1": "1 24944U 97051A 09080.73641357 -.00000048 00000-0 -24213-4 0 5196", |
1170 | - "tle2": "2 24944 86.3928 104.9291 0002412 84.1606 275.9868 14.34217590603056", |
1171 | - "draw_orbit": false, |
1172 | + "orbitColor": [0, 0, 0], |
1173 | + "orbitVisible": false, |
1174 | + "tle1": "1 24944U 97051A 10301.30362042 -.00000646 00000-0 -23779-3 0 1935", |
1175 | + "tle2": "2 24944 86.3978 220.1102 0002370 78.2191 281.9265 14.34214060686989", |
1176 | "visible": false |
1177 | }, |
1178 | "IRIDIUM 3": |
1179 | { |
1180 | - "description": "Iridium 3", |
1181 | + "comms": [], |
1182 | "groups": ["iridium", "communications"], |
1183 | - "tle1": "1 25431U 98048A 09080.92959394 .00000063 00000-0 15480-4 0 4481", |
1184 | - "tle2": "2 25431 86.3903 73.3431 0002965 84.2311 275.9229 14.34215319554292", |
1185 | - "draw_orbit": false, |
1186 | + "orbitColor": [0, 0, 0], |
1187 | + "orbitVisible": false, |
1188 | + "tle1": "1 25431U 98048A 10301.28751827 -.00001140 00000-0 -41424-3 0 1335", |
1189 | + "tle2": "2 25431 86.3996 188.7028 0002503 69.5365 290.6101 14.34213818638197", |
1190 | "visible": false |
1191 | }, |
1192 | "IRIDIUM 30": |
1193 | { |
1194 | - "description": "Iridium 30", |
1195 | + "comms": [], |
1196 | "groups": ["iridium", "communications"], |
1197 | - "tle1": "1 24949U 97051F 09080.60956429 -.00000118 00000-0 -49226-4 0 5599", |
1198 | - "tle2": "2 24949 86.3918 105.0480 0002502 87.1679 272.9801 14.34216956603032", |
1199 | - "draw_orbit": false, |
1200 | + "orbitColor": [0, 0, 0], |
1201 | + "orbitVisible": false, |
1202 | + "tle1": "1 24949U 97051F 10301.31630586 -.00000935 00000-0 -34102-3 0 2521", |
1203 | + "tle2": "2 24949 86.3982 220.1828 0002394 80.5741 279.5722 14.34212081686989", |
1204 | "visible": false |
1205 | }, |
1206 | "IRIDIUM 31": |
1207 | { |
1208 | - "description": "Iridium 31", |
1209 | + "comms": [], |
1210 | "groups": ["iridium", "communications"], |
1211 | - "tle1": "1 24950U 97051G 09080.95206580 .00000006 00000-0 -50967-5 0 5472", |
1212 | - "tle2": "2 24950 86.3926 104.8960 0002452 82.6436 277.5040 14.34217229603094", |
1213 | - "draw_orbit": false, |
1214 | + "orbitColor": [0, 0, 0], |
1215 | + "orbitVisible": false, |
1216 | + "tle1": "1 24950U 97051G 10301.44950136 -.00001083 00000-0 -39397-3 0 2226", |
1217 | + "tle2": "2 24950 86.3981 220.1240 0002426 81.3268 278.8198 14.34210867687011", |
1218 | "visible": false |
1219 | }, |
1220 | "IRIDIUM 32": |
1221 | { |
1222 | - "description": "Iridium 32", |
1223 | + "comms": [], |
1224 | "groups": ["iridium", "communications"], |
1225 | - "tle1": "1 24945U 97051B 09080.82521335 -.00000034 00000-0 -19243-4 0 5260", |
1226 | - "tle2": "2 24945 86.3920 104.9062 0002420 86.0555 274.0934 14.34217114603087", |
1227 | - "draw_orbit": false, |
1228 | + "orbitColor": [0, 0, 0], |
1229 | + "orbitVisible": false, |
1230 | + "tle1": "1 24945U 97051B 10301.39241707 -.00000905 00000-0 -33044-3 0 2114", |
1231 | + "tle2": "2 24945 86.3976 220.0911 0002352 78.3319 281.8123 14.34212503687015", |
1232 | "visible": false |
1233 | }, |
1234 | "IRIDIUM 33": |
1235 | { |
1236 | - "description": "Iridium 33", |
1237 | + "comms": [], |
1238 | "groups": ["iridium", "communications"], |
1239 | - "tle1": "1 24946U 97051C 09079.48224177 .00000050 00000-0 11256-4 0 5548", |
1240 | - "tle2": "2 24946 86.3829 105.5030 0007498 339.0307 21.0569 14.32470536602871", |
1241 | - "draw_orbit": false, |
1242 | + "orbitColor": [0, 0, 0], |
1243 | + "orbitVisible": false, |
1244 | + "tle1": "1 24946U 97051C 10301.30780396 .00000103 00000-0 30874-4 0 3307", |
1245 | + "tle2": "2 24946 86.3895 220.2555 0006786 199.2047 160.8908 14.32545186686906", |
1246 | "visible": false |
1247 | }, |
1248 | "IRIDIUM 34": |
1249 | { |
1250 | - "description": "Iridium 34", |
1251 | + "comms": [], |
1252 | "groups": ["iridium", "communications"], |
1253 | - "tle1": "1 24969U 97056E 09080.66375773 .00000143 00000-0 44096-4 0 5214", |
1254 | - "tle2": "2 24969 86.3985 136.5744 0002407 86.3781 273.7691 14.34219875601171", |
1255 | - "draw_orbit": false, |
1256 | + "orbitColor": [0, 0, 0], |
1257 | + "orbitVisible": false, |
1258 | + "tle1": "1 24969U 97056E 10301.37047500 .00000133 00000-0 40499-4 0 2044", |
1259 | + "tle2": "2 24969 86.3933 251.7300 0002471 80.8760 279.2726 14.34219098685123", |
1260 | "visible": false |
1261 | }, |
1262 | "IRIDIUM 35": |
1263 | { |
1264 | - "description": "Iridium 35", |
1265 | + "comms": [], |
1266 | "groups": ["iridium", "communications"], |
1267 | - "tle1": "1 24966U 97056B 09080.73987018 .00000085 00000-0 23358-4 0 5695", |
1268 | - "tle2": "2 24966 86.3976 136.5004 0002426 88.2177 271.9296 14.34219553601183", |
1269 | - "draw_orbit": false, |
1270 | + "orbitColor": [0, 0, 0], |
1271 | + "orbitVisible": false, |
1272 | + "tle1": "1 24966U 97056B 10301.51635596 -.00000385 00000-0 -14474-3 0 2533", |
1273 | + "tle2": "2 24966 86.3937 251.6122 0002532 80.6792 279.4757 14.34211428685143", |
1274 | "visible": false |
1275 | }, |
1276 | "IRIDIUM 36": |
1277 | { |
1278 | - "description": "Iridium 36", |
1279 | + "comms": [], |
1280 | "groups": ["iridium", "communications"], |
1281 | - "tle1": "1 24967U 97056C 09080.65710171 -.00000019 00000-0 -13689-4 0 4998", |
1282 | - "tle2": "2 24967 86.3983 136.6024 0002458 82.4670 277.6800 14.34287200601317", |
1283 | - "draw_orbit": false, |
1284 | + "orbitColor": [0, 0, 0], |
1285 | + "orbitVisible": false, |
1286 | + "tle1": "1 24967U 97056C 10301.39302625 .00000131 00000-0 39626-4 0 1997", |
1287 | + "tle2": "2 24967 86.3966 251.7390 0002309 86.5090 273.6383 14.34359852685271", |
1288 | "visible": false |
1289 | }, |
1290 | "IRIDIUM 37": |
1291 | { |
1292 | - "description": "Iridium 37", |
1293 | + "comms": [], |
1294 | "groups": ["iridium", "communications"], |
1295 | - "tle1": "1 24968U 97056D 09080.71450005 .00000098 00000-0 28096-4 0 5346", |
1296 | - "tle2": "2 24968 86.3999 136.6077 0002361 87.7484 272.3982 14.34219477601186", |
1297 | - "draw_orbit": false, |
1298 | + "orbitColor": [0, 0, 0], |
1299 | + "orbitVisible": false, |
1300 | + "tle1": "1 24968U 97056D 10301.35144457 .00000056 00000-0 12992-4 0 2210", |
1301 | + "tle2": "2 24968 86.3939 251.7957 0002427 84.6546 275.4959 14.34213228685126", |
1302 | "visible": false |
1303 | }, |
1304 | "IRIDIUM 38": |
1305 | { |
1306 | - "description": "Iridium 38", |
1307 | + "comms": [], |
1308 | "groups": ["iridium", "communications"], |
1309 | - "tle1": "1 25043U 97069E 09080.84584675 .00000189 00000-0 59905-4 0 5412", |
1310 | - "tle2": "2 25043 86.3999 198.9627 0003100 65.2494 294.9020 14.34689502595081", |
1311 | - "draw_orbit": false, |
1312 | + "orbitColor": [0, 0, 0], |
1313 | + "orbitVisible": false, |
1314 | + "tle1": "1 25043U 97069E 10301.48572705 .00000131 00000-0 39291-4 0 2310", |
1315 | + "tle2": "2 25043 86.3930 314.0819 0001612 70.0722 290.0660 14.34770701679053", |
1316 | "visible": false |
1317 | }, |
1318 | "IRIDIUM 39": |
1319 | { |
1320 | - "description": "Iridium 39", |
1321 | + "comms": [], |
1322 | "groups": ["iridium", "communications"], |
1323 | - "tle1": "1 25042U 97069D 09080.81653387 .00000186 00000-0 59194-4 0 5120", |
1324 | - "tle2": "2 25042 86.4012 199.6847 0002432 78.6189 281.5268 14.34217041594973", |
1325 | - "draw_orbit": false, |
1326 | + "orbitColor": [0, 0, 0], |
1327 | + "orbitVisible": false, |
1328 | + "tle1": "1 25042U 97069D 10301.38362828 .00000037 00000-0 61418-5 0 2065", |
1329 | + "tle2": "2 25042 86.3939 315.1128 0002183 83.4944 276.6508 14.34218237678909", |
1330 | "visible": false |
1331 | }, |
1332 | "IRIDIUM 4": |
1333 | { |
1334 | - "description": "Iridium 4", |
1335 | + "comms": [], |
1336 | "groups": ["iridium", "communications"], |
1337 | - "tle1": "1 24796U 97020E 09080.70815717 .00000117 00000-0 34873-4 0 5689", |
1338 | - "tle2": "2 24796 86.3992 136.4182 0002479 84.7507 275.3970 14.34219551621866", |
1339 | - "draw_orbit": false, |
1340 | + "orbitColor": [0, 0, 0], |
1341 | + "orbitVisible": false, |
1342 | + "tle1": "1 24796U 97020E 10301.48464559 .00000171 00000-0 53914-4 0 2512", |
1343 | + "tle2": "2 24796 86.3930 251.5109 0002496 78.1753 281.9709 14.34218964705824", |
1344 | "visible": false |
1345 | }, |
1346 | "IRIDIUM 40": |
1347 | { |
1348 | - "description": "Iridium 40", |
1349 | + "comms": [], |
1350 | "groups": ["iridium", "communications"], |
1351 | - "tle1": "1 25041U 97069C 09080.87997502 .00000177 00000-0 56017-4 0 5384", |
1352 | - "tle2": "2 25041 86.4003 199.5053 0002277 80.7998 279.3453 14.34217086595004", |
1353 | - "draw_orbit": false, |
1354 | + "orbitColor": [0, 0, 0], |
1355 | + "orbitVisible": false, |
1356 | + "tle1": "1 25041U 97069C 10301.51682757 .00000049 00000-0 10364-4 0 2285", |
1357 | + "tle2": "2 25041 86.3934 314.8434 0002403 85.3762 274.7711 14.34219119678942", |
1358 | "visible": false |
1359 | }, |
1360 | "IRIDIUM 41": |
1361 | { |
1362 | - "description": "Iridium 41", |
1363 | + "comms": [], |
1364 | "groups": ["iridium", "communications"], |
1365 | - "tle1": "1 25040U 97069B 09080.85461500 .00000190 00000-0 60760-4 0 5122", |
1366 | - "tle2": "2 25040 86.4003 199.5463 0002248 80.0849 280.0599 14.34216855594983", |
1367 | - "draw_orbit": false, |
1368 | + "orbitColor": [0, 0, 0], |
1369 | + "orbitVisible": false, |
1370 | + "tle1": "1 25040U 97069B 10301.49145091 .00000021 00000-0 37710-6 0 2024", |
1371 | + "tle2": "2 25040 86.3928 314.8920 0002308 74.9331 285.2131 14.34219357678929", |
1372 | "visible": false |
1373 | }, |
1374 | "IRIDIUM 42": |
1375 | { |
1376 | - "description": "Iridium 42", |
1377 | + "comms": [], |
1378 | "groups": ["iridium", "communications"], |
1379 | - "tle1": "1 25077U 97077A 09080.94340195 .00000110 00000-0 32067-4 0 5274", |
1380 | - "tle2": "2 25077 86.3994 199.5528 0002240 84.0668 276.0780 14.34216755590856", |
1381 | - "draw_orbit": false, |
1382 | + "orbitColor": [0, 0, 0], |
1383 | + "orbitVisible": false, |
1384 | + "tle1": "1 25077U 97077A 10301.51048518 .00000012 00000-0 -27886-5 0 2238", |
1385 | + "tle2": "2 25077 86.3933 314.9318 0002374 85.5992 274.5489 14.34219003674786", |
1386 | "visible": false |
1387 | }, |
1388 | "IRIDIUM 43": |
1389 | { |
1390 | - "description": "Iridium 43", |
1391 | + "comms": [], |
1392 | "groups": ["iridium", "communications"], |
1393 | - "tle1": "1 25039U 97069A 09080.86094029 .00000205 00000-0 66131-4 0 5236", |
1394 | - "tle2": "2 25039 86.4004 199.6307 0002233 83.8211 276.3235 14.34217273594988", |
1395 | - "draw_orbit": false, |
1396 | + "orbitColor": [0, 0, 0], |
1397 | + "orbitVisible": false, |
1398 | + "tle1": "1 25039U 97069A 10301.49779840 .00000009 00000-0 -39060-5 0 2135", |
1399 | + "tle2": "2 25039 86.3934 314.9917 0002408 81.0220 279.1261 14.34219096678924", |
1400 | "visible": false |
1401 | }, |
1402 | "IRIDIUM 44": |
1403 | { |
1404 | - "description": "Iridium 44", |
1405 | + "comms": [], |
1406 | "groups": ["iridium", "communications"], |
1407 | - "tle1": "1 25078U 97077B 09080.71935762 .00000118 00000-0 33304-4 0 717", |
1408 | - "tle2": "2 25078 86.4006 195.3112 0003942 66.7305 293.4317 14.36538090591378", |
1409 | - "draw_orbit": false, |
1410 | + "orbitColor": [0, 0, 0], |
1411 | + "orbitVisible": false, |
1412 | + "tle1": "1 25078U 97077B 10301.43391839 .00000158 00000-0 46896-4 0 7053", |
1413 | + "tle2": "2 25078 86.3948 309.6718 0001443 21.3821 338.7429 14.36659332675461", |
1414 | "visible": false |
1415 | }, |
1416 | "IRIDIUM 45": |
1417 | { |
1418 | - "description": "Iridium 45", |
1419 | + "comms": [], |
1420 | "groups": ["iridium", "communications"], |
1421 | - "tle1": "1 25104U 97082A 09080.96130432 -.00000044 00000-0 -22820-4 0 4750", |
1422 | - "tle2": "2 25104 86.3894 73.2144 0002470 84.6910 275.4577 14.34215008589056", |
1423 | - "draw_orbit": false, |
1424 | + "orbitColor": [0, 0, 0], |
1425 | + "orbitVisible": false, |
1426 | + "tle1": "1 25104U 97082A 10301.24946346 -.00001076 00000-0 -39134-3 0 1554", |
1427 | + "tle2": "2 25104 86.3988 188.5603 0002315 82.0799 278.0695 14.34212715672948", |
1428 | "visible": false |
1429 | }, |
1430 | "IRIDIUM 46": |
1431 | { |
1432 | - "description": "Iridium 46", |
1433 | + "comms": [], |
1434 | "groups": ["iridium", "communications"], |
1435 | - "tle1": "1 24905U 97043C 09080.96764942 .00000030 00000-0 35050-5 0 5691", |
1436 | - "tle2": "2 24905 86.3912 73.4590 0002447 80.6193 279.5279 14.34215070606519", |
1437 | - "draw_orbit": false, |
1438 | + "orbitColor": [0, 0, 0], |
1439 | + "orbitVisible": false, |
1440 | + "tle1": "1 24905U 97043C 10301.25580518 -.00000150 00000-0 -60680-4 0 2649", |
1441 | + "tle2": "2 24905 86.4001 188.8750 0002431 82.1446 278.0076 14.34215312690408", |
1442 | "visible": false |
1443 | }, |
1444 | "IRIDIUM 47": |
1445 | { |
1446 | - "description": "Iridium 47", |
1447 | + "comms": [], |
1448 | "groups": ["iridium", "communications"], |
1449 | - "tle1": "1 25106U 97082C 09080.97398853 .00000111 00000-0 32561-4 0 4695", |
1450 | - "tle2": "2 25106 86.3898 73.1510 0002484 79.6182 280.5287 14.34215564589050", |
1451 | - "draw_orbit": false, |
1452 | + "orbitColor": [0, 0, 0], |
1453 | + "orbitVisible": false, |
1454 | + "tle1": "1 25106U 97082C 10301.54122237 -.00000281 00000-0 -10746-3 0 1504", |
1455 | + "tle2": "2 25106 86.4001 188.3780 0002427 77.6559 282.4918 14.34214589672981", |
1456 | "visible": false |
1457 | }, |
1458 | "IRIDIUM 49": |
1459 | { |
1460 | - "description": "Iridium 49", |
1461 | + "comms": [], |
1462 | "groups": ["iridium", "communications"], |
1463 | - "tle1": "1 25108U 97082E 09080.98667654 .00000065 00000-0 16281-4 0 4875", |
1464 | - "tle2": "2 25108 86.3903 73.1642 0002478 78.6020 281.5453 14.34215226589060", |
1465 | - "draw_orbit": false, |
1466 | + "orbitColor": [0, 0, 0], |
1467 | + "orbitVisible": false, |
1468 | + "tle1": "1 25108U 97082E 10301.27483287 -.00001099 00000-0 -39961-3 0 1699", |
1469 | + "tle2": "2 25108 86.3989 188.5250 0002347 83.1310 277.0152 14.34214115672951", |
1470 | "visible": false |
1471 | }, |
1472 | "IRIDIUM 5": |
1473 | { |
1474 | - "description": "Iridium 5", |
1475 | + "comms": [], |
1476 | "groups": ["iridium", "communications"], |
1477 | - "tle1": "1 24795U 97020D 09080.75255433 .00000063 00000-0 15294-4 0 6795", |
1478 | - "tle2": "2 24795 86.3980 136.7732 0002993 61.1224 299.0272 14.34219542621938", |
1479 | - "draw_orbit": false, |
1480 | + "orbitColor": [0, 0, 0], |
1481 | + "orbitVisible": false, |
1482 | + "tle1": "1 24795U 97020D 10301.38957589 .00000124 00000-0 37398-4 0 3955", |
1483 | + "tle2": "2 24795 86.3931 251.9381 0001043 80.5962 279.5368 14.34217681705870", |
1484 | "visible": false |
1485 | }, |
1486 | "IRIDIUM 50": |
1487 | { |
1488 | - "description": "Iridium 50", |
1489 | + "comms": [], |
1490 | "groups": ["iridium", "communications"], |
1491 | - "tle1": "1 25172U 98010D 09080.79408766 .00000199 00000-0 63929-4 0 5098", |
1492 | - "tle2": "2 25172 86.4035 168.0271 0002291 84.7609 275.3846 14.34216501580429", |
1493 | - "draw_orbit": false, |
1494 | + "orbitColor": [0, 0, 0], |
1495 | + "orbitVisible": false, |
1496 | + "tle1": "1 25172U 98010D 10301.50072644 .00000034 00000-0 52070-5 0 2010", |
1497 | + "tle2": "2 25172 86.3915 283.2603 0002516 84.0356 276.1131 14.34216379664372", |
1498 | "visible": false |
1499 | }, |
1500 | "IRIDIUM 51": |
1501 | { |
1502 | - "description": "Iridium 51", |
1503 | + "comms": [], |
1504 | "groups": ["iridium", "communications"], |
1505 | - "tle1": "1 25262U 98018A 09080.96019622 .00000083 00000-0 18843-4 0 6047", |
1506 | - "tle2": "2 25262 86.4521 136.5459 0002506 88.2627 271.8861 14.42963543578794", |
1507 | - "draw_orbit": false, |
1508 | + "orbitColor": [0, 0, 0], |
1509 | + "orbitVisible": false, |
1510 | + "tle1": "1 25262U 98018A 10301.38405275 .00000217 00000-0 58884-4 0 2981", |
1511 | + "tle2": "2 25262 86.4450 251.8827 0002519 77.4188 282.7311 14.42949049663219", |
1512 | "visible": false |
1513 | }, |
1514 | "IRIDIUM 52": |
1515 | { |
1516 | - "description": "Iridium 52", |
1517 | + "comms": [], |
1518 | "groups": ["iridium", "communications"], |
1519 | - "tle1": "1 25169U 98010A 09080.73700209 .00000123 00000-0 36961-4 0 2624", |
1520 | - "tle2": "2 25169 86.4038 168.0762 0002354 85.6372 274.5081 14.34216423580436", |
1521 | - "draw_orbit": false, |
1522 | + "orbitColor": [0, 0, 0], |
1523 | + "orbitVisible": false, |
1524 | + "tle1": "1 25169U 98010A 10301.51340845 -.00000026 00000-0 -16458-4 0 9512", |
1525 | + "tle2": "2 25169 86.3919 283.2800 0002428 86.1036 274.0443 14.34216393664392", |
1526 | "visible": false |
1527 | }, |
1528 | "IRIDIUM 53": |
1529 | { |
1530 | - "description": "Iridium 53", |
1531 | + "comms": [], |
1532 | "groups": ["iridium", "communications"], |
1533 | - "tle1": "1 25173U 98010E 09080.74334661 .00000213 00000-0 68921-4 0 4965", |
1534 | - "tle2": "2 25173 86.4038 168.0584 0002328 85.4274 274.7179 14.34216418580426", |
1535 | - "draw_orbit": false, |
1536 | + "orbitColor": [0, 0, 0], |
1537 | + "orbitVisible": false, |
1538 | + "tle1": "1 25173U 98010E 10301.38021403 -.00000015 00000-0 -12587-4 0 1854", |
1539 | + "tle2": "2 25173 86.3913 283.3189 0002495 82.8733 277.2753 14.34216408664366", |
1540 | "visible": false |
1541 | }, |
1542 | "IRIDIUM 54": |
1543 | { |
1544 | - "description": "Iridium 54", |
1545 | + "comms": [], |
1546 | "groups": ["iridium", "communications"], |
1547 | - "tle1": "1 25171U 98010C 09080.83214435 .00000162 00000-0 50776-4 0 4950", |
1548 | - "tle2": "2 25171 86.4034 168.0396 0002357 83.7922 276.3539 14.34216177580592", |
1549 | - "draw_orbit": false, |
1550 | + "orbitColor": [0, 0, 0], |
1551 | + "orbitVisible": false, |
1552 | + "tle1": "1 25171U 98010C 10301.39924441 -.00000011 00000-0 -11061-4 0 1769", |
1553 | + "tle2": "2 25171 86.3919 283.3345 0002424 83.5338 276.6130 14.34216421664520", |
1554 | "visible": false |
1555 | }, |
1556 | "IRIDIUM 55": |
1557 | { |
1558 | - "description": "Iridium 55", |
1559 | + "comms": [], |
1560 | "groups": ["iridium", "communications"], |
1561 | - "tle1": "1 25272U 98019A 09080.65396145 -.00000055 00000-0 -26585-4 0 4460", |
1562 | - "tle2": "2 25272 86.3929 104.9099 0002443 82.6744 277.4726 14.34217346574706", |
1563 | - "draw_orbit": false, |
1564 | + "orbitColor": [0, 0, 0], |
1565 | + "orbitVisible": false, |
1566 | + "tle1": "1 25272U 98019A 10301.29093539 -.00000972 00000-0 -35442-3 0 1320", |
1567 | + "tle2": "2 25272 86.3977 220.0601 0002338 82.5159 277.6284 14.34211332658646", |
1568 | "visible": false |
1569 | }, |
1570 | "IRIDIUM 56": |
1571 | { |
1572 | - "description": "Iridium 56", |
1573 | + "comms": [], |
1574 | "groups": ["iridium", "communications"], |
1575 | - "tle1": "1 25170U 98010B 09080.93996768 .00000090 00000-0 25013-4 0 4042", |
1576 | - "tle2": "2 25170 86.4019 168.0354 0002303 83.3803 276.7656 14.34215986580448", |
1577 | - "draw_orbit": false, |
1578 | + "orbitColor": [0, 0, 0], |
1579 | + "orbitVisible": false, |
1580 | + "tle1": "1 25170U 98010B 10301.43729637 -.00000028 00000-0 -17004-4 0 5746", |
1581 | + "tle2": "2 25170 86.3908 283.3687 0002487 85.4859 274.6628 14.34216414664368", |
1582 | "visible": false |
1583 | }, |
1584 | "IRIDIUM 57": |
1585 | { |
1586 | - "description": "Iridium 57", |
1587 | + "comms": [], |
1588 | "groups": ["iridium", "communications"], |
1589 | - "tle1": "1 25273U 98019B 09080.97743384 .00000010 00000-0 -34515-5 0 4842", |
1590 | - "tle2": "2 25273 86.3938 104.9487 0002488 81.4053 278.7428 14.34217528574757", |
1591 | - "draw_orbit": false, |
1592 | + "orbitColor": [0, 0, 0], |
1593 | + "orbitVisible": false, |
1594 | + "tle1": "1 25273U 98019B 10301.33533499 -.00001235 00000-0 -44805-3 0 1775", |
1595 | + "tle2": "2 25273 86.3978 220.2411 0002411 79.3416 280.8052 14.34209304658657", |
1596 | "visible": false |
1597 | }, |
1598 | "IRIDIUM 58": |
1599 | { |
1600 | - "description": "Iridium 58", |
1601 | + "comms": [], |
1602 | "groups": ["iridium", "communications"], |
1603 | - "tle1": "1 25274U 98019C 09080.56516741 -.00000072 00000-0 -32690-4 0 2919", |
1604 | - "tle2": "2 25274 86.3927 105.2286 0002529 81.2320 278.9159 14.34216858574699", |
1605 | - "draw_orbit": false, |
1606 | + "orbitColor": [0, 0, 0], |
1607 | + "orbitVisible": false, |
1608 | + "tle1": "1 25274U 98019C 10301.34167667 -.00001005 00000-0 -36595-3 0 9834", |
1609 | + "tle2": "2 25274 86.3983 220.3638 0002407 77.7622 282.3841 14.34211663658656", |
1610 | "visible": false |
1611 | }, |
1612 | "IRIDIUM 59": |
1613 | { |
1614 | - "description": "Iridium 59", |
1615 | + "comms": [], |
1616 | "groups": ["iridium", "communications"], |
1617 | - "tle1": "1 25275U 98019D 09080.92035227 -.00000093 00000-0 -40264-4 0 1373", |
1618 | - "tle2": "2 25275 86.3948 105.0965 0002450 63.6517 296.4931 14.34216674574745", |
1619 | - "draw_orbit": false, |
1620 | + "orbitColor": [0, 0, 0], |
1621 | + "orbitVisible": false, |
1622 | + "tle1": "1 25275U 98019D 10301.48755396 -.00000215 00000-0 -83874-4 0 8195", |
1623 | + "tle2": "2 25275 86.3977 220.2862 0002621 62.6138 297.5324 14.34212109658673", |
1624 | "visible": false |
1625 | }, |
1626 | "IRIDIUM 6": |
1627 | { |
1628 | - "description": "Iridium 6", |
1629 | + "comms": [], |
1630 | "groups": ["iridium", "communications"], |
1631 | - "tle1": "1 24794U 97020C 09080.68913056 .00000120 00000-0 35767-4 0 3460", |
1632 | - "tle2": "2 24794 86.4005 136.6398 0002655 84.7222 275.4275 14.34219576621845", |
1633 | - "draw_orbit": false, |
1634 | + "orbitColor": [0, 0, 0], |
1635 | + "orbitVisible": false, |
1636 | + "tle1": "1 24794U 97020C 10301.32607453 .00000055 00000-0 12715-4 0 338", |
1637 | + "tle2": "2 24794 86.3937 251.8254 0002324 72.0200 288.1255 14.34218653705788", |
1638 | "visible": false |
1639 | }, |
1640 | "IRIDIUM 60": |
1641 | { |
1642 | - "description": "Iridium 60", |
1643 | + "comms": [], |
1644 | "groups": ["iridium", "communications"], |
1645 | - "tle1": "1 25276U 98019E 09080.57785244 -.00000075 00000-0 -33997-4 0 5140", |
1646 | - "tle2": "2 25276 86.3925 104.9765 0002456 85.4836 274.6635 14.34216941574699", |
1647 | - "draw_orbit": false, |
1648 | + "orbitColor": [0, 0, 0], |
1649 | + "orbitVisible": false, |
1650 | + "tle1": "1 25276U 98019E 10301.28459325 -.00000994 00000-0 -36204-3 0 2144", |
1651 | + "tle2": "2 25276 86.3968 220.0866 0002365 82.9570 277.1859 14.34211540658648", |
1652 | "visible": false |
1653 | }, |
1654 | "IRIDIUM 61": |
1655 | { |
1656 | - "description": "Iridium 61", |
1657 | + "comms": [], |
1658 | "groups": ["iridium", "communications"], |
1659 | - "tle1": "1 25263U 98018B 09080.65107557 .00000022 00000-0 88117-6 0 4504", |
1660 | - "tle2": "2 25263 86.4005 136.6114 0002427 83.6921 276.4543 14.34219094575509", |
1661 | - "draw_orbit": false, |
1662 | + "orbitColor": [0, 0, 0], |
1663 | + "orbitVisible": false, |
1664 | + "tle1": "1 25263U 98018B 10301.35780410 .00000113 00000-0 33114-4 0 1428", |
1665 | + "tle2": "2 25263 86.3928 251.7666 0002448 80.9880 279.1602 14.34218616659452", |
1666 | "visible": false |
1667 | }, |
1668 | "IRIDIUM 62": |
1669 | { |
1670 | - "description": "Iridium 62", |
1671 | + "comms": [], |
1672 | "groups": ["iridium", "communications"], |
1673 | - "tle1": "1 25285U 98021A 09080.95798294 .00000157 00000-0 49153-4 0 4806", |
1674 | - "tle2": "2 25285 86.3937 41.6021 0002403 80.9094 279.2370 14.34213398573703", |
1675 | - "draw_orbit": false, |
1676 | + "orbitColor": [0, 0, 0], |
1677 | + "orbitVisible": false, |
1678 | + "tle1": "1 25285U 98021A 10301.17622834 .00000069 00000-0 17456-4 0 1792", |
1679 | + "tle2": "2 25285 86.3970 157.0768 0002305 82.5068 277.6381 14.34223177657589", |
1680 | "visible": false |
1681 | }, |
1682 | "IRIDIUM 63": |
1683 | { |
1684 | - "description": "Iridium 63", |
1685 | + "comms": [], |
1686 | "groups": ["iridium", "communications"], |
1687 | - "tle1": "1 25286U 98021B 09080.96432934 .00000129 00000-0 39109-4 0 4926", |
1688 | - "tle2": "2 25286 86.3940 41.6827 0002432 80.3005 279.8464 14.34213273573702", |
1689 | - "draw_orbit": false, |
1690 | + "orbitColor": [0, 0, 0], |
1691 | + "orbitVisible": false, |
1692 | + "tle1": "1 25286U 98021B 10301.53141413 .00000143 00000-0 44086-4 0 1918", |
1693 | + "tle2": "2 25286 86.3968 157.0252 0002277 82.8855 277.2605 14.34223540657635", |
1694 | "visible": false |
1695 | }, |
1696 | "IRIDIUM 64": |
1697 | { |
1698 | - "description": "Iridium 64", |
1699 | + "comms": [], |
1700 | "groups": ["iridium", "communications"], |
1701 | - "tle1": "1 25287U 98021C 09080.97067364 .00000097 00000-0 27550-4 0 4403", |
1702 | - "tle2": "2 25287 86.3941 41.6185 0002444 79.6780 280.4691 14.34213124573687", |
1703 | - "draw_orbit": false, |
1704 | + "orbitColor": [0, 0, 0], |
1705 | + "orbitVisible": false, |
1706 | + "tle1": "1 25287U 98021C 10301.53775312 .00000146 00000-0 45003-4 0 1384", |
1707 | + "tle2": "2 25287 86.3969 156.9492 0002225 78.7498 281.3965 14.34223729657613", |
1708 | "visible": false |
1709 | }, |
1710 | "IRIDIUM 65": |
1711 | { |
1712 | - "description": "Iridium 65", |
1713 | + "comms": [], |
1714 | "groups": ["iridium", "communications"], |
1715 | - "tle1": "1 25288U 98021D 09080.97701561 .00000123 00000-0 36733-4 0 4883", |
1716 | - "tle2": "2 25288 86.3937 41.5700 0002779 77.2145 282.9359 14.34213117573708", |
1717 | - "draw_orbit": false, |
1718 | + "orbitColor": [0, 0, 0], |
1719 | + "orbitVisible": false, |
1720 | + "tle1": "1 25288U 98021D 10301.54410206 .00000118 00000-0 35048-4 0 1741", |
1721 | + "tle2": "2 25288 86.3961 156.8925 0002160 70.7095 289.4345 14.34223186657639", |
1722 | "visible": false |
1723 | }, |
1724 | "IRIDIUM 66": |
1725 | { |
1726 | - "description": "Iridium 66", |
1727 | + "comms": [], |
1728 | "groups": ["iridium", "communications"], |
1729 | - "tle1": "1 25289U 98021E 09080.91358909 .00000122 00000-0 36428-4 0 4444", |
1730 | - "tle2": "2 25289 86.3935 41.5254 0002463 80.4519 279.6944 14.34213230573699", |
1731 | - "draw_orbit": false, |
1732 | + "orbitColor": [0, 0, 0], |
1733 | + "orbitVisible": false, |
1734 | + "tle1": "1 25289U 98021E 10301.55043804 .00000160 00000-0 49961-4 0 1262", |
1735 | + "tle2": "2 25289 86.3966 156.8141 0002326 77.3563 282.7910 14.34223829657630", |
1736 | "visible": false |
1737 | }, |
1738 | "IRIDIUM 67": |
1739 | { |
1740 | - "description": "Iridium 67", |
1741 | + "comms": [], |
1742 | "groups": ["iridium", "communications"], |
1743 | - "tle1": "1 25290U 98021F 09080.91993107 .00000097 00000-0 27599-4 0 2674", |
1744 | - "tle2": "2 25290 86.3939 41.6124 0002412 79.5456 280.6007 14.34213091573704", |
1745 | - "draw_orbit": false, |
1746 | + "orbitColor": [0, 0, 0], |
1747 | + "orbitVisible": false, |
1748 | + "tle1": "1 25290U 98021F 10301.55678822 .00000157 00000-0 49065-4 0 9571", |
1749 | + "tle2": "2 25290 86.3966 156.9105 0002292 81.8706 278.2758 14.34222482657649", |
1750 | "visible": false |
1751 | }, |
1752 | "IRIDIUM 68": |
1753 | { |
1754 | - "description": "Iridium 68", |
1755 | + "comms": [], |
1756 | "groups": ["iridium", "communications"], |
1757 | - "tle1": "1 25291U 98021G 09080.92627825 .00000159 00000-0 49798-4 0 4808", |
1758 | - "tle2": "2 25291 86.3939 41.6734 0002409 78.9035 281.2421 14.34213167573671", |
1759 | - "draw_orbit": false, |
1760 | + "orbitColor": [0, 0, 0], |
1761 | + "orbitVisible": false, |
1762 | + "tle1": "1 25291U 98021G 10301.21428558 .00000022 00000-0 93324-6 0 1701", |
1763 | + "tle2": "2 25291 86.3975 157.1273 0002379 80.9438 279.2019 14.34222910657565", |
1764 | "visible": false |
1765 | }, |
1766 | "IRIDIUM 69": |
1767 | { |
1768 | - "description": "Iridium 69", |
1769 | + "comms": [], |
1770 | "groups": ["iridium", "communications"], |
1771 | - "tle1": "1 25319U 98026A 09080.49486789 .00000092 00000-0 24359-4 0 3146", |
1772 | - "tle2": "2 25319 86.3922 69.9726 0004196 68.2945 291.8696 14.37077443570581", |
1773 | - "draw_orbit": false, |
1774 | + "orbitColor": [0, 0, 0], |
1775 | + "orbitVisible": false, |
1776 | + "tle1": "1 25319U 98026A 10301.20092608 .00000175 00000-0 52209-4 0 9992", |
1777 | + "tle2": "2 25319 86.4028 184.2023 0001667 27.0848 333.0433 14.37186299654700", |
1778 | "visible": false |
1779 | }, |
1780 | "IRIDIUM 7": |
1781 | { |
1782 | - "description": "Iridium 7", |
1783 | + "comms": [], |
1784 | "groups": ["iridium", "communications"], |
1785 | - "tle1": "1 24793U 97020B 09080.69547303 .00000099 00000-0 28351-4 0 5488", |
1786 | - "tle2": "2 24793 86.4007 136.6478 0002405 86.1825 273.9642 14.34219478621845", |
1787 | - "draw_orbit": false, |
1788 | + "orbitColor": [0, 0, 0], |
1789 | + "orbitVisible": false, |
1790 | + "tle1": "1 24793U 97020B 10301.40220610 .00000141 00000-0 43379-4 0 2318", |
1791 | + "tle2": "2 24793 86.3940 251.8136 0002461 78.4314 281.7157 14.34218416705796", |
1792 | "visible": false |
1793 | }, |
1794 | "IRIDIUM 70": |
1795 | { |
1796 | - "description": "Iridium 70", |
1797 | + "comms": [], |
1798 | "groups": ["iridium", "communications"], |
1799 | - "tle1": "1 25342U 98032A 09080.95163750 .00000131 00000-0 39568-4 0 5009", |
1800 | - "tle2": "2 25342 86.3942 41.7657 0002391 79.7340 280.4119 14.34213490567784", |
1801 | - "draw_orbit": false, |
1802 | + "orbitColor": [0, 0, 0], |
1803 | + "orbitVisible": false, |
1804 | + "tle1": "1 25342U 98032A 10301.51872847 .00000058 00000-0 13786-4 0 1900", |
1805 | + "tle2": "2 25342 86.3972 157.1287 0002384 75.3883 284.7578 14.34223132651711", |
1806 | "visible": false |
1807 | }, |
1808 | "IRIDIUM 71": |
1809 | { |
1810 | - "description": "Iridium 71", |
1811 | + "comms": [], |
1812 | "groups": ["iridium", "communications"], |
1813 | - "tle1": "1 25320U 98026B 09080.50288721 .00000073 00000-0 17612-4 0 528", |
1814 | - "tle2": "2 25320 86.3912 67.4298 0003490 107.5106 252.6473 14.37667721570864", |
1815 | - "draw_orbit": false, |
1816 | + "orbitColor": [0, 0, 0], |
1817 | + "orbitVisible": false, |
1818 | + "tle1": "1 25320U 98026B 10301.38830995 .00000167 00000-0 48786-4 0 7008", |
1819 | + "tle2": "2 25320 86.4015 181.2578 0003918 53.2779 306.8772 14.37762656655044", |
1820 | "visible": false |
1821 | }, |
1822 | "IRIDIUM 72": |
1823 | { |
1824 | - "description": "Iridium 72", |
1825 | + "comms": [], |
1826 | "groups": ["iridium", "communications"], |
1827 | - "tle1": "1 25343U 98032B 09080.93895920 .00000118 00000-0 35034-4 0 4894", |
1828 | - "tle2": "2 25343 86.3940 41.5784 0002432 76.1741 283.9715 14.34213267567786", |
1829 | - "draw_orbit": false, |
1830 | + "orbitColor": [0, 0, 0], |
1831 | + "orbitVisible": false, |
1832 | + "tle1": "1 25343U 98032B 10301.36650689 .00000036 00000-0 57202-5 0 1786", |
1833 | + "tle2": "2 25343 86.3968 156.9630 0002284 83.2424 276.9033 14.34222857651693", |
1834 | "visible": false |
1835 | }, |
1836 | "IRIDIUM 73": |
1837 | { |
1838 | - "description": "Iridium 73", |
1839 | + "comms": [], |
1840 | "groups": ["iridium", "communications"], |
1841 | - "tle1": "1 25344U 98032C 09080.78187609 .00000124 00000-0 28464-4 0 3655", |
1842 | - "tle2": "2 25344 86.4423 32.4179 0003011 59.8565 300.2935 14.47114841572085", |
1843 | - "draw_orbit": false, |
1844 | + "orbitColor": [0, 0, 0], |
1845 | + "orbitVisible": false, |
1846 | + "tle1": "1 25344U 98032C 10301.50767954 .00000224 00000-0 55764-4 0 684", |
1847 | + "tle2": "2 25344 86.4424 145.7382 0001667 87.6700 272.4703 14.47231315656795", |
1848 | "visible": false |
1849 | }, |
1850 | "IRIDIUM 74": |
1851 | { |
1852 | - "description": "Iridium 74", |
1853 | + "comms": [], |
1854 | "groups": ["iridium", "communications"], |
1855 | - "tle1": "1 25345U 98032D 09080.98077926 .00000138 00000-0 35328-4 0 5135", |
1856 | - "tle2": "2 25345 86.4451 41.7016 0002432 79.4303 280.7170 14.42945639568815", |
1857 | - "draw_orbit": false, |
1858 | + "orbitColor": [0, 0, 0], |
1859 | + "orbitVisible": false, |
1860 | + "tle1": "1 25345U 98032D 10301.19597976 .00000138 00000-0 35333-4 0 2063", |
1861 | + "tle2": "2 25345 86.4476 157.2241 0002407 81.1807 278.9657 14.42972666653203", |
1862 | "visible": false |
1863 | }, |
1864 | "IRIDIUM 75": |
1865 | { |
1866 | - "description": "Iridium 75", |
1867 | + "comms": [], |
1868 | "groups": ["iridium", "communications"], |
1869 | - "tle1": "1 25346U 98032E 09080.94529799 .00000116 00000-0 34491-4 0 5150", |
1870 | - "tle2": "2 25346 86.3944 41.7207 0002402 79.7335 280.4124 14.34213264568357", |
1871 | - "draw_orbit": false, |
1872 | + "orbitColor": [0, 0, 0], |
1873 | + "orbitVisible": false, |
1874 | + "tle1": "1 25346U 98032E 10301.16354397 .00000141 00000-0 43140-4 0 2068", |
1875 | + "tle2": "2 25346 86.3971 157.2134 0002294 79.7958 280.3486 14.34223438652234", |
1876 | "visible": false |
1877 | }, |
1878 | "IRIDIUM 76": |
1879 | { |
1880 | - "description": "Iridium 76", |
1881 | + "comms": [], |
1882 | "groups": ["iridium", "communications"], |
1883 | - "tle1": "1 25432U 98048B 09080.94861862 .00000054 00000-0 12145-4 0 3738", |
1884 | - "tle2": "2 25432 86.3906 73.1863 0002300 98.0699 262.0767 14.34215369554286", |
1885 | - "draw_orbit": false, |
1886 | + "orbitColor": [0, 0, 0], |
1887 | + "orbitVisible": false, |
1888 | + "tle1": "1 25432U 98048B 10301.44608460 -.00000329 00000-0 -12444-3 0 616", |
1889 | + "tle2": "2 25432 86.3996 188.4685 0003065 78.4615 281.6922 14.34214482638206", |
1890 | "visible": false |
1891 | }, |
1892 | "IRIDIUM 77": |
1893 | { |
1894 | - "description": "Iridium 77", |
1895 | + "comms": [], |
1896 | "groups": ["iridium", "communications"], |
1897 | - "tle1": "1 25471U 98051E 09080.82923891 .00000100 00000-0 28744-4 0 6088", |
1898 | - "tle2": "2 25471 86.3997 199.4609 0003163 99.7025 260.4521 14.34216514556700", |
1899 | - "draw_orbit": false, |
1900 | + "orbitColor": [0, 0, 0], |
1901 | + "orbitVisible": false, |
1902 | + "tle1": "1 25471U 98051E 10301.53585330 -.00000042 00000-0 -22019-4 0 2987", |
1903 | + "tle2": "2 25471 86.3933 314.7363 0003080 66.1707 293.9816 14.34218805640653", |
1904 | "visible": false |
1905 | }, |
1906 | "IRIDIUM 8": |
1907 | { |
1908 | - "description": "Iridium 8", |
1909 | + "comms": [], |
1910 | "groups": ["iridium", "communications"], |
1911 | - "tle1": "1 24792U 97020A 09080.70181317 .00000069 00000-0 17647-4 0 5504", |
1912 | - "tle2": "2 24792 86.3985 136.5160 0002379 81.7440 278.4023 14.34219493621849", |
1913 | - "draw_orbit": false, |
1914 | + "orbitColor": [0, 0, 0], |
1915 | + "orbitVisible": false, |
1916 | + "tle1": "1 24792U 97020A 10301.33878008 .00000175 00000-0 55255-4 0 2367", |
1917 | + "tle2": "2 24792 86.3929 251.6847 0002468 83.0522 277.0969 14.34218759705787", |
1918 | "visible": false |
1919 | }, |
1920 | "IRIDIUM 80": |
1921 | { |
1922 | - "description": "Iridium 80", |
1923 | + "comms": [], |
1924 | "groups": ["iridium", "communications"], |
1925 | - "tle1": "1 25469U 98051C 09080.96243436 .00000071 00000-0 18286-4 0 4399", |
1926 | - "tle2": "2 25469 86.4008 199.5241 0002317 83.5362 276.6098 14.34216358551528", |
1927 | - "draw_orbit": false, |
1928 | + "orbitColor": [0, 0, 0], |
1929 | + "orbitVisible": false, |
1930 | + "tle1": "1 25469U 98051C 10301.45974671 .00000026 00000-0 23231-5 0 1296", |
1931 | + "tle2": "2 25469 86.3934 314.9459 0002420 84.6040 275.5434 14.34218863635448", |
1932 | "visible": false |
1933 | }, |
1934 | "IRIDIUM 81": |
1935 | { |
1936 | - "description": "Iridium 81", |
1937 | + "comms": [], |
1938 | "groups": ["iridium", "communications"], |
1939 | - "tle1": "1 25468U 98051B 09080.84189280 .00000175 00000-0 55498-4 0 4370", |
1940 | - "tle2": "2 25468 86.4000 199.4552 0002193 77.7791 282.3646 14.34217895551504", |
1941 | - "draw_orbit": false, |
1942 | + "orbitColor": [0, 0, 0], |
1943 | + "orbitVisible": false, |
1944 | + "tle1": "1 25468U 98051B 10301.33921626 .00000059 00000-0 14111-4 0 1229", |
1945 | + "tle2": "2 25468 86.3933 314.8350 0002397 90.0757 270.0723 14.34221465635425", |
1946 | "visible": false |
1947 | }, |
1948 | "IRIDIUM 82": |
1949 | { |
1950 | - "description": "Iridium 82", |
1951 | + "comms": [], |
1952 | "groups": ["iridium", "communications"], |
1953 | - "tle1": "1 25467U 98051A 09080.84826518 .00000139 00000-0 42421-4 0 6061", |
1954 | - "tle2": "2 25467 86.3999 199.5966 0003026 75.7695 284.3832 14.34216930555283", |
1955 | - "draw_orbit": false, |
1956 | + "orbitColor": [0, 0, 0], |
1957 | + "orbitVisible": false, |
1958 | + "tle1": "1 25467U 98051A 10301.48511420 .00000014 00000-0 -21688-5 0 2996", |
1959 | + "tle2": "2 25467 86.3932 314.9807 0001788 65.6330 294.5064 14.34218947639221", |
1960 | "visible": false |
1961 | }, |
1962 | "IRIDIUM 83": |
1963 | { |
1964 | - "description": "Iridium 83", |
1965 | + "comms": [], |
1966 | "groups": ["iridium", "communications"], |
1967 | - "tle1": "1 25531U 98066E 09080.92094038 .00000145 00000-0 44885-4 0 4298", |
1968 | - "tle2": "2 25531 86.4034 167.8505 0002327 86.2880 273.8578 14.34216119543038", |
1969 | - "draw_orbit": false, |
1970 | + "orbitColor": [0, 0, 0], |
1971 | + "orbitVisible": false, |
1972 | + "tle1": "1 25531U 98066E 10301.48804132 .00000035 00000-0 56045-5 0 1344", |
1973 | + "tle2": "2 25531 86.3909 283.1112 0002508 84.1587 275.9902 14.34216451626963", |
1974 | "visible": false |
1975 | }, |
1976 | "IRIDIUM 84": |
1977 | { |
1978 | - "description": "Iridium 84", |
1979 | + "comms": [], |
1980 | "groups": ["iridium", "communications"], |
1981 | - "tle1": "1 25530U 98066D 09080.74968891 .00000167 00000-0 52727-4 0 3189", |
1982 | - "tle2": "2 25530 86.4031 167.9111 0002365 84.5906 275.5553 14.34216529545657", |
1983 | - "draw_orbit": false, |
1984 | + "orbitColor": [0, 0, 0], |
1985 | + "orbitVisible": false, |
1986 | + "tle1": "1 25530U 98066D 10301.38654792 -.00000022 00000-0 -15073-4 0 35", |
1987 | + "tle2": "2 25530 86.3904 283.1224 0002478 80.5376 279.6109 14.34216504629594", |
1988 | "visible": false |
1989 | }, |
1990 | "IRIDIUM 86": |
1991 | { |
1992 | - "description": "Iridium 86", |
1993 | + "comms": [], |
1994 | "groups": ["iridium", "communications"], |
1995 | - "tle1": "1 25528U 98066B 09080.78774334 .00000154 00000-0 47880-4 0 6551", |
1996 | - "tle2": "2 25528 86.4010 167.7890 0003121 91.2601 268.8949 14.34216774548021", |
1997 | - "draw_orbit": false, |
1998 | + "orbitColor": [0, 0, 0], |
1999 | + "orbitVisible": false, |
2000 | + "tle1": "1 25528U 98066B 10301.49439995 -.00000076 00000-0 -34290-4 0 3494", |
2001 | + "tle2": "2 25528 86.3905 282.9585 0002584 64.3260 295.8203 14.34214517631971", |
2002 | "visible": false |
2003 | }, |
2004 | "IRIDIUM 90": |
2005 | { |
2006 | - "description": "Iridium 90", |
2007 | + "comms": [], |
2008 | "groups": ["iridium", "communications"], |
2009 | - "tle1": "1 27373U 02005B 09080.75759552 .00000204 00000-0 54978-4 0 9905", |
2010 | - "tle2": "2 27373 86.4545 167.7383 0002768 294.7036 65.3870 14.42961102377382", |
2011 | - "draw_orbit": false, |
2012 | + "orbitColor": [1.33587057158802e-32, 1.33611037243559e-32, 1.33635017328316e-32], |
2013 | + "orbitVisible": false, |
2014 | + "tle1": "1 27373U 02005B 10301.38944945 .00000018 00000-0 -61500-6 0 6928", |
2015 | + "tle2": "2 27373 86.4418 283.0115 0006587 122.1221 238.0642 14.42944996461831", |
2016 | "visible": false |
2017 | }, |
2018 | "IRIDIUM 91": |
2019 | { |
2020 | - "description": "Iridium 91", |
2021 | + "comms": [], |
2022 | "groups": ["iridium", "communications"], |
2023 | - "tle1": "1 27372U 02005A 09080.97109062 -.00000020 00000-0 -14335-4 0 297", |
2024 | - "tle2": "2 27372 86.3944 105.0683 0004458 24.2179 335.9227 14.34217272380315", |
2025 | - "draw_orbit": false, |
2026 | + "orbitColor": [0, 0, 0], |
2027 | + "orbitVisible": false, |
2028 | + "tle1": "1 27372U 02005A 10301.32898421 -.00000869 00000-0 -31743-3 0 7196", |
2029 | + "tle2": "2 27372 86.3994 220.4433 0001622 210.6079 149.5009 14.34212504464217", |
2030 | "visible": false |
2031 | }, |
2032 | "IRIDIUM 911": |
2033 | { |
2034 | - "description": "Iridium 911", |
2035 | + "comms": [], |
2036 | "groups": ["iridium", "communications"], |
2037 | - "tle1": "1 24842U 97030G 09080.72568503 .00000103 00000-0 24569-4 0 2539", |
2038 | - "tle2": "2 24842 86.4523 170.7526 0015237 358.4789 1.6370 14.43158132618677", |
2039 | - "draw_orbit": false, |
2040 | + "orbitColor": [0, 0, 0], |
2041 | + "orbitVisible": false, |
2042 | + "tle1": "1 24842U 97030G 10301.39019954 .00000179 00000-0 47092-4 0 9100", |
2043 | + "tle2": "2 24842 86.4409 285.8639 0013360 202.2380 157.8254 14.43279006703147", |
2044 | "visible": false |
2045 | }, |
2046 | "IRIDIUM 914": |
2047 | { |
2048 | - "description": "Iridium 914", |
2049 | + "comms": [], |
2050 | "groups": ["iridium", "communications"], |
2051 | - "tle1": "1 24836U 97030A 09080.76183671 .00000072 00000-0 17532-4 0 1698", |
2052 | - "tle2": "2 24836 86.3996 160.9874 0000845 77.3318 282.7979 14.37427546616467", |
2053 | - "draw_orbit": false, |
2054 | - "draw_orbit": false, |
2055 | + "orbitColor": [0, 0, 0], |
2056 | + "orbitVisible": false, |
2057 | + "tle1": "1 24836U 97030A 10301.47064822 .00000123 00000-0 34337-4 0 8180", |
2058 | + "tle2": "2 24836 86.3878 274.7253 0003518 99.8978 260.2622 14.37508507700605", |
2059 | "visible": false |
2060 | }, |
2061 | "IRIDIUM 920": |
2062 | { |
2063 | - "description": "Iridium 920", |
2064 | + "comms": [], |
2065 | "groups": ["iridium", "communications"], |
2066 | - "tle1": "1 24871U 97034C 09080.95778183 -.00000024 00000-0 -14712-4 0 1999", |
2067 | - "tle2": "2 24871 86.4029 192.6800 0013043 137.8990 222.3210 14.38055586613699", |
2068 | - "draw_orbit": false, |
2069 | + "orbitColor": [0, 0, 0], |
2070 | + "orbitVisible": false, |
2071 | + "tle1": "1 24871U 97034C 10301.47784503 .00000156 00000-0 44992-4 0 8654", |
2072 | + "tle2": "2 24871 86.3924 306.5829 0013278 34.5535 325.6538 14.38145628697843", |
2073 | "visible": false |
2074 | }, |
2075 | "IRIDIUM 921": |
2076 | { |
2077 | - "description": "Iridium 921", |
2078 | + "comms": [], |
2079 | "groups": ["iridium", "communications"], |
2080 | - "tle1": "1 24873U 97034E 09080.91559410 .00000320 00000-0 24960-4 0 5208", |
2081 | - "tle2": "2 24873 86.3865 31.4638 0010185 126.4679 233.7489 14.97110247636150", |
2082 | - "draw_orbit": false, |
2083 | + "orbitColor": [0, 0, 0], |
2084 | + "orbitVisible": false, |
2085 | + "tle1": "1 24873U 97034E 10301.42548635 .00000748 00000-0 61428-4 0 2503", |
2086 | + "tle2": "2 24873 86.3825 120.3525 0007896 173.3973 186.7336 14.97579698723763", |
2087 | "visible": false |
2088 | }, |
2089 | "IRIDIUM 94": |
2090 | { |
2091 | - "description": "Iridium 94", |
2092 | + "comms": [], |
2093 | "groups": ["iridium", "communications"], |
2094 | - "tle1": "1 27374U 02005C 09080.75273894 -.00000019 00000-0 -75926-5 0 618", |
2095 | - "tle2": "2 27374 86.5746 104.7593 0002666 84.3214 275.8306 14.66608250380349", |
2096 | - "draw_orbit": false, |
2097 | + "orbitColor": [0, 0, 0], |
2098 | + "orbitVisible": false, |
2099 | + "tle1": "1 27374U 02005C 10301.52437384 .00000386 00000-0 65943-4 0 7997", |
2100 | + "tle2": "2 27374 86.5797 219.8733 0002532 81.5994 278.5499 14.66262166466187", |
2101 | "visible": false |
2102 | }, |
2103 | "IRIDIUM 95": |
2104 | { |
2105 | - "description": "Iridium 95", |
2106 | + "comms": [], |
2107 | "groups": ["iridium", "communications"], |
2108 | - "tle1": "1 27375U 02005D 09080.66030253 -.00000059 00000-0 -28000-4 0 84", |
2109 | - "tle2": "2 27375 86.3944 105.0032 0002427 89.9724 270.1749 14.34217381379558", |
2110 | - "draw_orbit": false, |
2111 | + "orbitColor": [0, 0, 0], |
2112 | + "orbitVisible": false, |
2113 | + "tle1": "1 27375U 02005D 10301.36704777 -.00001097 00000-0 -39903-3 0 6945", |
2114 | + "tle2": "2 27375 86.3990 220.2275 0002513 83.6665 276.4819 14.34210058463509", |
2115 | "visible": false |
2116 | }, |
2117 | "IRIDIUM 96": |
2118 | { |
2119 | - "description": "Iridium 96", |
2120 | + "comms": [], |
2121 | "groups": ["iridium", "communications"], |
2122 | - "tle1": "1 27376U 02005E 09080.56026923 -.00000015 00000-0 -69572-5 0 546", |
2123 | - "tle2": "2 27376 86.5756 104.7982 0002697 80.6016 279.5497 14.66608347380313", |
2124 | - "draw_orbit": false, |
2125 | + "orbitColor": [0, 0, 0], |
2126 | + "orbitVisible": false, |
2127 | + "tle1": "1 27376U 02005E 10301.32586491 .00000427 00000-0 73309-4 0 7868", |
2128 | + "tle2": "2 27376 86.5797 219.8961 0002513 78.1701 281.9792 14.66261825466151", |
2129 | "visible": false |
2130 | }, |
2131 | "IRIDIUM 97": |
2132 | { |
2133 | - "description": "Iridium 97", |
2134 | + "comms": [], |
2135 | "groups": ["iridium", "communications"], |
2136 | - "tle1": "1 27450U 02031A 09080.67644149 .00000069 00000-0 17482-4 0 9207", |
2137 | - "tle2": "2 27450 86.4000 136.7814 0003464 21.9907 338.1435 14.34219520358872", |
2138 | - "draw_orbit": false, |
2139 | + "orbitColor": [0, 0, 0], |
2140 | + "orbitVisible": false, |
2141 | + "tle1": "1 27450U 02031A 10301.52269454 .00000150 00000-0 46368-4 0 6013", |
2142 | + "tle2": "2 27450 86.3936 251.8511 0001794 177.8890 182.2321 14.34219456442849", |
2143 | "visible": false |
2144 | }, |
2145 | "IRIDIUM 98": |
2146 | { |
2147 | - "description": "Iridium 98", |
2148 | + "comms": [], |
2149 | "groups": ["iridium", "communications"], |
2150 | - "tle1": "1 27451U 02031B 09080.85265633 .00000211 00000-0 57105-4 0 9389", |
2151 | - "tle2": "2 27451 86.4540 199.6827 0005377 49.1145 311.0517 14.42947974358258", |
2152 | - "draw_orbit": false, |
2153 | + "orbitColor": [0, 0, 0], |
2154 | + "orbitVisible": false, |
2155 | + "tle1": "1 27451U 02031B 10301.48412638 .00000083 00000-0 18806-4 0 6496", |
2156 | + "tle2": "2 27451 86.4467 315.2431 0001379 229.4044 130.7062 14.42954671442709", |
2157 | "visible": false |
2158 | }, |
2159 | "ISS (ZARYA)": |
2160 | @@ -1408,81 +1429,117 @@ |
2161 | "description": "ARISS packet uplink", |
2162 | "frequency": 145.825 |
2163 | }], |
2164 | + "groups": [], |
2165 | "hintColor": [0.899999976158142, 0.899999976158142, 0.899999976158142], |
2166 | - "tle1": "1 25544U 98067A 10011.92371058 .00012181 00000-0 76107-4 0 3541", |
2167 | - "tle2": "2 25544 51.6465 313.4924 0007635 171.1951 233.5729 15.77327898638859", |
2168 | - "draw_orbit": true, |
2169 | + "orbitColor": [0, 0, 0], |
2170 | + "orbitVisible": true, |
2171 | + "tle1": "1 25544U 98067A 10302.36561338 .00017353 00000-0 13399-3 0 1686", |
2172 | + "tle2": "2 25544 51.6470 264.0662 0008627 133.4449 11.1436 15.72003660684578", |
2173 | + "visible": true |
2174 | + }, |
2175 | + "ITAMSAT (IO-26)": |
2176 | + { |
2177 | + "comms": [], |
2178 | + "groups": ["amateur", "non-operational"], |
2179 | + "orbitColor": [0, 0, 0], |
2180 | + "orbitVisible": false, |
2181 | + "tle1": "1 22826U 93061D 10301.97235919 .00000031 00000-0 28853-4 0 3997", |
2182 | + "tle2": "2 22826 98.4957 247.1079 0008234 226.7778 133.2713 14.29571240891272", |
2183 | + "visible": false |
2184 | + }, |
2185 | + "JAS-1 (FO-12)": |
2186 | + { |
2187 | + "comms": [], |
2188 | + "groups": ["amateur", "non-operational"], |
2189 | + "orbitColor": [0, 0, 0], |
2190 | + "orbitVisible": false, |
2191 | + "tle1": "1 16909U 86061B 10301.81520572 -.00000083 00000-0 10000-3 0 8008", |
2192 | + "tle2": "2 16909 50.0140 68.9849 0011238 37.6411 322.5189 12.44454413101068", |
2193 | + "visible": false |
2194 | + }, |
2195 | + "JAS-1B (FO-20)": |
2196 | + { |
2197 | + "comms": [], |
2198 | + "groups": ["amateur", "non-operational"], |
2199 | + "orbitColor": [0, 0, 0], |
2200 | + "orbitVisible": false, |
2201 | + "tle1": "1 20480U 90013C 10301.57246602 -.00000016 00000-0 26752-4 0 6029", |
2202 | + "tle2": "2 20480 99.0171 133.7011 0540746 121.5591 243.9482 12.83366127970837", |
2203 | + "visible": false |
2204 | + }, |
2205 | + "JAS-2 (FO-29)": |
2206 | + { |
2207 | + "comms": [ |
2208 | + { |
2209 | + "description": "uplink", |
2210 | + "frequency": 145.95, |
2211 | + "modulation": "SSB/CW" |
2212 | + }, |
2213 | + { |
2214 | + "description": "downlink", |
2215 | + "frequency": 435.85, |
2216 | + "modulation": "SSB/CW" |
2217 | + }], |
2218 | + "groups": ["amateur"], |
2219 | + "orbitColor": [0, 0, 0], |
2220 | + "orbitVisible": false, |
2221 | + "tle1": "1 24278U 96046B 10301.66195490 .00000024 00000-0 57446-4 0 4253", |
2222 | + "tle2": "2 24278 98.5182 112.3778 0351102 137.5077 225.3818 13.52953723701152", |
2223 | "visible": true |
2224 | }, |
2225 | "KITSAT 1 (KO-23)": |
2226 | { |
2227 | - "description": "Amateur satellite", |
2228 | + "comms": [], |
2229 | "groups": ["amateur", "non-operational"], |
2230 | - "tle1": "1 22077U 92052B 09080.68175229 -.00000037 00000-0 10000-3 0 6995", |
2231 | - "tle2": "2 22077 66.0847 149.9211 0013023 300.4010 59.5723 12.86447618780266", |
2232 | - "draw_orbit": false, |
2233 | + "orbitColor": [0, 0, 0], |
2234 | + "orbitVisible": false, |
2235 | + "tle1": "1 22077U 92052B 10301.69375558 -.00000037 00000-0 10000-3 0 805", |
2236 | + "tle2": "2 22077 66.0880 2.5985 0003219 352.4177 7.6789 12.86454782855643", |
2237 | "visible": false |
2238 | }, |
2239 | "KITSAT 2 (KO-25)": |
2240 | { |
2241 | - "description": "Amateur satellite", |
2242 | + "comms": [], |
2243 | "groups": ["amateur", "non-operational"], |
2244 | - "tle1": "1 22828U 93061F 09080.83613139 -.00000007 00000-0 13561-4 0 1385", |
2245 | - "tle2": "2 22828 98.4126 37.7648 0010637 129.0987 231.1150 14.29813121775804", |
2246 | - "draw_orbit": false, |
2247 | + "orbitColor": [0, 0, 0], |
2248 | + "orbitVisible": false, |
2249 | + "tle1": "1 22828U 93061F 10301.06364579 .00000062 00000-0 40708-4 0 5982", |
2250 | + "tle2": "2 22828 98.4900 246.0066 0009608 201.4547 158.6238 14.29863591859434", |
2251 | "visible": false |
2252 | }, |
2253 | "LUSAT (LO-19)": |
2254 | { |
2255 | - "description": "Amateur satellite", |
2256 | - "groups": ["amateur", "non-operational"], |
2257 | - "tle1": "1 20442U 90005G 09080.85379851 .00000101 00000-0 52762-4 0 4846", |
2258 | - "tle2": "2 20442 98.2328 60.8676 0012920 67.8229 292.4325 14.32055802 813", |
2259 | - "draw_orbit": false, |
2260 | - "visible": false |
2261 | - }, |
2262 | - "UNAMSAT-2 (MO-30)": |
2263 | - { |
2264 | - "description": "Amateur satellite", |
2265 | - "groups": ["amateur", "non-operational"], |
2266 | - "tle1": "1 24305U 96052B 09080.47219106 .00000009 00000-0 -65784-5 0 696", |
2267 | - "tle2": "2 24305 82.9323 58.9099 0030942 136.0160 224.3468 13.73567811628634", |
2268 | - "draw_orbit": false, |
2269 | - "visible": false |
2270 | - }, |
2271 | - "TIUNGSAT-1 (MO-46)": |
2272 | - { |
2273 | - "description": "Amateur satellite", |
2274 | - "groups": ["amateur", "non-operational"], |
2275 | - "tle1": "1 26548U 00057D 09080.87169003 -.00000081 00000-0 87572-5 0 3491", |
2276 | - "tle2": "2 26548 64.5595 350.9689 0050062 285.2131 74.3419 14.83347625459005", |
2277 | - "draw_orbit": false, |
2278 | - "visible": false |
2279 | + "comms": [], |
2280 | + "groups": ["amateur", "non-operational"], |
2281 | + "orbitColor": [0, 0, 0], |
2282 | + "orbitVisible": false, |
2283 | + "tle1": "1 20442U 90005G 10301.84364414 .00000038 00000-0 29355-4 0 9398", |
2284 | + "tle2": "2 20442 98.3130 259.8718 0012739 121.7305 238.5120 14.32109553 84689", |
2285 | + "visible": false |
2286 | + }, |
2287 | + "MOZHAYETS 4 (RS-22)": |
2288 | + { |
2289 | + "comms": [ |
2290 | + { |
2291 | + "description": "downlink", |
2292 | + "frequency": 435.352, |
2293 | + "modulation": "CW" |
2294 | + }], |
2295 | + "groups": ["amateur"], |
2296 | + "orbitColor": [0, 0, 0], |
2297 | + "orbitVisible": false, |
2298 | + "tle1": "1 27939U 03042A 10302.06642910 .00000227 00000-0 52443-4 0 6735", |
2299 | + "tle2": "2 27939 97.8700 161.7284 0013634 1.4874 358.6385 14.63469503378538", |
2300 | + "visible": true |
2301 | }, |
2302 | "NCUBE-2": |
2303 | { |
2304 | "comms": [], |
2305 | - "tle1": "1 28897U 05043H 10010.64548338 .00000118 00000-0 34050-4 0 457", |
2306 | - "tle2": "2 28897 98.0343 260.0372 0018237 60.5035 299.7985 14.60015933216294", |
2307 | - "draw_orbit": false, |
2308 | - "visible": false |
2309 | - }, |
2310 | - "PCSAT (NO-44)": |
2311 | - { |
2312 | - "description": "Amateur satellite", |
2313 | - "groups": ["amateur", "non-operational"], |
2314 | - "tle1": "1 26931U 01043C 09080.69111513 -.00000245 00000-0 -63501-4 0 1278", |
2315 | - "tle2": "2 26931 67.0529 289.7584 0005178 260.4427 99.6072 14.29549665390074", |
2316 | - "draw_orbit": false, |
2317 | - "visible": false |
2318 | - }, |
2319 | - "SAPPHIRE (NO-45)": |
2320 | - { |
2321 | - "description": "Amateur satellite", |
2322 | - "groups": ["amateur", "non-operational"], |
2323 | - "tle1": "1 26932U 01043D 09080.93767055 -.00000067 00000-0 60390-5 0 1347", |
2324 | - "tle2": "2 26932 67.0506 289.0527 0006019 240.4193 119.6306 14.29604170390158", |
2325 | - "draw_orbit": false, |
2326 | + "groups": [], |
2327 | + "orbitColor": [0, 0, 0], |
2328 | + "orbitVisible": false, |
2329 | + "tle1": "1 28897U 05043H 10301.21380730 .00000281 00000-0 67563-4 0 2822", |
2330 | + "tle2": "2 28897 97.9915 181.0256 0016236 227.0454 132.9375 14.60143919258699", |
2331 | "visible": false |
2332 | }, |
2333 | "NOAA 15": |
2334 | @@ -1493,11 +1550,11 @@ |
2335 | "frequency": 137.5, |
2336 | "modulation": "AM/APT" |
2337 | }], |
2338 | - "description": "NOAA Weather Satellite 15", |
2339 | "groups": ["scientific", "weather"], |
2340 | - "tle1": "1 25338U 98030A 09080.90089393 -.00000044 00000-0 -26503-6 0 8619", |
2341 | - "tle2": "2 25338 98.5808 72.0445 0009840 316.2506 43.7883 14.24749834564348", |
2342 | - "draw_orbit": true, |
2343 | + "orbitColor": [0, 0, 0], |
2344 | + "orbitVisible": true, |
2345 | + "tle1": "1 25338U 98030A 10301.29622088 .00000039 00000-0 35343-4 0 5746", |
2346 | + "tle2": "2 25338 98.6330 285.9285 0011477 50.6187 309.6026 14.24862396647703", |
2347 | "visible": true |
2348 | }, |
2349 | "NOAA 17": |
2350 | @@ -1508,11 +1565,11 @@ |
2351 | "frequency": 137.62, |
2352 | "modulation": "AM/APT" |
2353 | }], |
2354 | - "description": "NOAA Weather Satellite 17", |
2355 | "groups": ["scientific", "weather"], |
2356 | - "tle1": "1 27453U 02032A 09080.80573152 -.00000085 00000-0 -18637-4 0 3444", |
2357 | - "tle2": "2 27453 98.4939 142.8491 0011919 24.2008 335.9717 14.24048587350311", |
2358 | - "draw_orbit": true, |
2359 | + "orbitColor": [0, 0, 0], |
2360 | + "orbitVisible": true, |
2361 | + "tle1": "1 27453U 02032A 10301.34155174 .00000013 00000-0 23508-4 0 406", |
2362 | + "tle2": "2 27453 98.4151 346.3131 0012727 107.3453 252.9128 14.24202947433659", |
2363 | "visible": true |
2364 | }, |
2365 | "NOAA 18": |
2366 | @@ -1523,55 +1580,177 @@ |
2367 | "frequency": 137.1, |
2368 | "modulation": "AM/APT" |
2369 | }], |
2370 | - "description": "NOAA Weather Satellite 18", |
2371 | "groups": ["scientific", "weather"], |
2372 | - "tle1": "1 28654U 05018A 09080.77119997 .00000000 00000-0 24577-4 0 8343", |
2373 | - "tle2": "2 28654 98.8994 24.7197 0013458 248.9605 111.0150 14.11241530197625", |
2374 | - "draw_orbit": true, |
2375 | + "orbitColor": [0, 0, 0], |
2376 | + "orbitVisible": true, |
2377 | + "tle1": "1 28654U 05018A 10301.36432412 -.00000103 00000-0 -31919-4 0 5303", |
2378 | + "tle2": "2 28654 98.9662 247.3312 0015092 40.2479 319.9812 14.11400503280228", |
2379 | "visible": true |
2380 | }, |
2381 | "OPAL (OO-38)": |
2382 | { |
2383 | - "description": "Amateur satellite", |
2384 | + "comms": [], |
2385 | "groups": ["amateur", "non-operational"], |
2386 | - "tle1": "1 26063U 00004C 09080.77017786 -.00000011 00000-0 16522-4 0 4630", |
2387 | - "tle2": "2 26063 100.1939 211.4200 0036983 147.0349 213.3150 14.35858482479406", |
2388 | - "draw_orbit": false, |
2389 | + "orbitColor": [0, 0, 0], |
2390 | + "orbitVisible": false, |
2391 | + "tle1": "1 26063U 00004C 10301.79139841 .00000023 00000-0 28053-4 0 9388", |
2392 | + "tle2": "2 26063 100.1955 184.9222 0036493 298.1072 61.6434 14.35911320563504", |
2393 | "visible": false |
2394 | }, |
2395 | "OSCAR 3 (OSCAR III)": |
2396 | { |
2397 | - "description": "Amateur satellite", |
2398 | - "groups": ["amateur", "non-operational"], |
2399 | - "tle1": "1 01293U 65016F 09080.92578501 .00000079 00000-0 82795-4 0 4881", |
2400 | - "tle2": "2 01293 70.0694 359.9998 0020227 281.6686 78.2153 14.04694421247559", |
2401 | - "draw_orbit": false, |
2402 | + "comms": [], |
2403 | + "groups": ["amateur", "non-operational"], |
2404 | + "orbitColor": [0, 0, 0], |
2405 | + "orbitVisible": false, |
2406 | + "tle1": "1 01293U 65016F 10301.16504886 .00000182 00000-0 14627-3 0 9293", |
2407 | + "tle2": "2 01293 70.0742 175.0957 0020293 230.4062 129.5239 14.04822768329742", |
2408 | + "visible": false |
2409 | + }, |
2410 | + "OSCAR 5 (AO-5)": |
2411 | + { |
2412 | + "comms": [], |
2413 | + "groups": ["amateur", "non-operational"], |
2414 | + "orbitColor": [0, 0, 0], |
2415 | + "orbitVisible": false, |
2416 | + "tle1": "1 04321U 70008B 10301.91710438 -.00000031 00000-0 10000-3 0 3895", |
2417 | + "tle2": "2 04321 102.1008 327.0014 0027516 116.1671 244.2233 12.52160958863180", |
2418 | + "visible": false |
2419 | + }, |
2420 | + "OSCAR 6 (AO-6)": |
2421 | + { |
2422 | + "comms": [], |
2423 | + "groups": ["amateur", "non-operational"], |
2424 | + "orbitColor": [0, 0, 0], |
2425 | + "orbitVisible": false, |
2426 | + "tle1": "1 06236U 72082B 10300.62660884 -.00000027 00000-0 10000-3 0 3796", |
2427 | + "tle2": "2 06236 101.3975 298.8583 0004330 359.0525 1.0536 12.53083162739710", |
2428 | + "visible": false |
2429 | + }, |
2430 | + "OSCAR 7 (AO-7)": |
2431 | + { |
2432 | + "comms": [ |
2433 | + { |
2434 | + "description": "200mW Beacon used with Modes B & C", |
2435 | + "frequency": 145.972 |
2436 | + }, |
2437 | + { |
2438 | + "description": "downlink", |
2439 | + "frequency": 145.95, |
2440 | + "modulation": "Modes B & C" |
2441 | + }, |
2442 | + { |
2443 | + "description": "uplink", |
2444 | + "frequency": 145.9, |
2445 | + "modulation": "Mode A" |
2446 | + }, |
2447 | + { |
2448 | + "description": "downlink", |
2449 | + "frequency": 29.45, |
2450 | + "modulation": "Mode A" |
2451 | + }, |
2452 | + { |
2453 | + "description": "200mW Beacon used with Mode A", |
2454 | + "frequency": 29.502 |
2455 | + }, |
2456 | + { |
2457 | + "frequency": 2304.1, |
2458 | + "modulation": "40 mW Beacon - only when commanded" |
2459 | + }, |
2460 | + { |
2461 | + "description": "uplink", |
2462 | + "frequency": 432.15, |
2463 | + "modulation": "Modes B & C" |
2464 | + }], |
2465 | + "groups": ["amateur"], |
2466 | + "orbitColor": [0, 0, 0], |
2467 | + "orbitVisible": false, |
2468 | + "tle1": "1 07530U 74089B 10301.95788337 -.00000027 00000-0 10000-3 0 9149", |
2469 | + "tle2": "2 07530 101.3995 312.6222 0012265 12.5206 347.6162 12.53580065645217", |
2470 | + "visible": true |
2471 | + }, |
2472 | + "OSCAR 8 (AO-8)": |
2473 | + { |
2474 | + "comms": [], |
2475 | + "groups": ["amateur", "non-operational"], |
2476 | + "orbitColor": [0, 0, 0], |
2477 | + "orbitVisible": false, |
2478 | + "tle1": "1 10703U 78026B 10302.09716984 .00000360 00000-0 27885-3 0 9772", |
2479 | + "tle2": "2 10703 98.7639 332.1837 0005434 220.9322 139.1432 13.98878843665771", |
2480 | + "visible": false |
2481 | + }, |
2482 | + "PACSAT (AO-16)": |
2483 | + { |
2484 | + "comms": [], |
2485 | + "groups": ["amateur", "non-operational"], |
2486 | + "orbitColor": [0, 0, 0], |
2487 | + "orbitVisible": false, |
2488 | + "tle1": "1 20439U 90005D 10301.79742930 .00000042 00000-0 31108-4 0 295", |
2489 | + "tle2": "2 20439 98.3505 254.5613 0011591 126.5263 233.6991 14.31880226 84503", |
2490 | + "visible": false |
2491 | + }, |
2492 | + "PAN SAT (PO-34)": |
2493 | + { |
2494 | + "comms": [], |
2495 | + "groups": ["amateur", "non-operational"], |
2496 | + "orbitColor": [0, 0, 0], |
2497 | + "orbitVisible": false, |
2498 | + "tle1": "1 25520U 98064B 10301.70201388 .00000947 00000-0 36144-4 0 6084", |
2499 | + "tle2": "2 25520 28.4585 155.8089 0005085 340.3000 19.7375 15.17716130664451", |
2500 | + "visible": false |
2501 | + }, |
2502 | + "PCSAT (NO-44)": |
2503 | + { |
2504 | + "comms": [], |
2505 | + "groups": ["amateur", "non-operational"], |
2506 | + "orbitColor": [0, 0, 0], |
2507 | + "orbitVisible": false, |
2508 | + "tle1": "1 26931U 01043C 10302.17766215 -.00000115 00000-0 -12460-4 0 5936", |
2509 | + "tle2": "2 26931 67.0531 218.7490 0005616 271.5946 88.4492 14.29617215473904", |
2510 | "visible": false |
2511 | }, |
2512 | "PEHUENSAT 1 (PO-63)": |
2513 | { |
2514 | "comms": [], |
2515 | - "tle1": "1 29712U 07001D 09129.76442331 .00000438 00000-0 63872-4 0 4664", |
2516 | - "tle2": "2 29712 97.8314 187.0851 0015285 43.5600 316.6810 14.80531783125782", |
2517 | - "draw_orbit": false, |
2518 | - "visible": false |
2519 | + "groups": [], |
2520 | + "orbitColor": [0, 0, 0], |
2521 | + "orbitVisible": false, |
2522 | + "tle1": "1 29712U 07001D 10301.18895127 .00001391 00000-0 18424-3 0 3692", |
2523 | + "tle2": "2 29712 97.7673 349.0635 0015087 91.9833 268.3076 14.81366235205172", |
2524 | + "visible": false |
2525 | + }, |
2526 | + "PHASE 3B (AO-10)": |
2527 | + { |
2528 | + "comms": [], |
2529 | + "groups": ["amateur", "non-operational"], |
2530 | + "orbitColor": [0, 0, 0], |
2531 | + "orbitVisible": false, |
2532 | + "tle1": "1 14129U 83058B 10301.48429116 -.00000086 00000-0 10000-3 0 7774", |
2533 | + "tle2": "2 14129 26.7917 67.8588 6039053 9.7099 357.9616 2.05867874177912", |
2534 | + "visible": false |
2535 | + }, |
2536 | + "PHASE 3D (AO-40)": |
2537 | + { |
2538 | + "comms": [ |
2539 | + { |
2540 | + "description": "Beacon", |
2541 | + "frequency": 145.898 |
2542 | + }], |
2543 | + "groups": ["amateur"], |
2544 | + "orbitColor": [0, 0, 0], |
2545 | + "orbitVisible": false, |
2546 | + "tle1": "1 26609U 00072B 10299.42141595 -.00000068 00000-0 10000-3 0 4325", |
2547 | + "tle2": "2 26609 8.7380 307.8723 7952988 1.7527 359.9938 1.25586613 45867", |
2548 | + "visible": true |
2549 | }, |
2550 | "POSAT (PO-28)": |
2551 | { |
2552 | - "description": "Amateur satellite", |
2553 | - "groups": ["amateur", "non-operational"], |
2554 | - "tle1": "1 22829U 93061G 09080.84418226 -.00000012 00000-0 11647-4 0 1746", |
2555 | - "tle2": "2 22829 98.4087 38.9001 0010531 125.5741 234.6455 14.30211190807812", |
2556 | - "draw_orbit": false, |
2557 | - "visible": false |
2558 | - }, |
2559 | - "PAN SAT (PO-34)": |
2560 | - { |
2561 | - "description": "Amateur satellite", |
2562 | - "groups": ["amateur", "non-operational"], |
2563 | - "tle1": "1 25520U 98064B 09080.51367299 .00000409 00000-0 10351-4 0 2091", |
2564 | - "tle2": "2 25520 28.4596 121.9419 0005186 71.4910 288.6250 15.17311364575324", |
2565 | - "draw_orbit": false, |
2566 | + "comms": [], |
2567 | + "groups": ["amateur", "non-operational"], |
2568 | + "orbitColor": [0, 0, 0], |
2569 | + "orbitVisible": false, |
2570 | + "tle1": "1 22829U 93061G 10302.02792415 .00000101 00000-0 55301-4 0 6131", |
2571 | + "tle2": "2 22829 98.4857 248.1374 0009510 193.5771 166.5159 14.30264274891603", |
2572 | "visible": false |
2573 | }, |
2574 | "RADIO ROSTO (RS-15)": |
2575 | @@ -1595,70 +1774,41 @@ |
2576 | "frequency": 145.878, |
2577 | "modulation": "Mode A" |
2578 | }], |
2579 | - "description": "Radio Sputnik (RS) 15", |
2580 | - "groups": ["amateur"], |
2581 | - "tle1": "1 23439U 94085A 09080.97335086 -.00000039 00000-0 10000-3 0 2029", |
2582 | - "tle2": "2 23439 64.8130 45.8464 0146514 68.4113 293.2342 11.27553256586281", |
2583 | - "draw_orbit": false, |
2584 | - "visible": true |
2585 | - }, |
2586 | - "MOZHAYETS 4 (RS-22)": |
2587 | - { |
2588 | - "comms": [ |
2589 | - { |
2590 | - "description": "downlink", |
2591 | - "frequency": 435.352, |
2592 | - "modulation": "CW" |
2593 | - }], |
2594 | - "description": "Amateur satellite", |
2595 | - "groups": ["amateur"], |
2596 | - "tle1": "1 27939U 03042A 09080.74176473 .00000091 00000-0 26556-4 0 7452", |
2597 | - "tle2": "2 27939 97.9578 318.7317 0014519 50.9541 309.2958 14.63301923292787", |
2598 | - "draw_orbit": false, |
2599 | - "visible": true |
2600 | - }, |
2601 | - "SEASAT 1": |
2602 | + "groups": ["amateur"], |
2603 | + "orbitColor": [0, 0, 0], |
2604 | + "orbitVisible": false, |
2605 | + "tle1": "1 23439U 94085A 10300.89335058 -.00000039 00000-0 10000-3 0 3454", |
2606 | + "tle2": "2 23439 64.8172 179.9334 0163415 320.8699 38.0499 11.27554569652230", |
2607 | + "visible": true |
2608 | + }, |
2609 | + "SAPPHIRE (NO-45)": |
2610 | { |
2611 | "comms": [], |
2612 | - "tle1": "1 10967U 78064A 10011.48877880 -.00000066 00000-0 21494-4 0 146", |
2613 | - "tle2": "2 10967 108.0202 37.9154 0003096 275.7432 84.3363 14.42175802655204", |
2614 | - "draw_orbit": false, |
2615 | - "visible": true |
2616 | - }, |
2617 | - "SEDSAT 1 (SO-33)": |
2618 | - { |
2619 | - "description": "Amateur satellite", |
2620 | - "groups": ["amateur", "non-operational"], |
2621 | - "tle1": "1 25509U 98061B 09080.68393431 .00000028 00000-0 -80808-5 0 4141", |
2622 | - "tle2": "2 25509 31.4336 187.2850 0354956 293.3308 63.0343 14.28246349543312", |
2623 | - "draw_orbit": false, |
2624 | - "visible": false |
2625 | - }, |
2626 | - "SUNSAT (SO-35)": |
2627 | - { |
2628 | - "description": "Amateur satellite", |
2629 | - "groups": ["amateur", "non-operational"], |
2630 | - "tle1": "1 25636U 99008C 09080.57259666 -.00000022 00000-0 18215-5 0 2632", |
2631 | - "tle2": "2 25636 96.4526 285.7652 0148832 138.9281 222.3233 14.43457619530468", |
2632 | - "draw_orbit": false, |
2633 | + "groups": ["amateur", "non-operational"], |
2634 | + "orbitColor": [0, 0, 0], |
2635 | + "orbitVisible": false, |
2636 | + "tle1": "1 26932U 01043D 10300.93680270 .00000207 00000-0 11303-3 0 6008", |
2637 | + "tle2": "2 26932 67.0569 222.0623 0003987 282.5276 77.5383 14.29652157473776", |
2638 | "visible": false |
2639 | }, |
2640 | "SAUDISAT 1A (SO-41)": |
2641 | { |
2642 | - "description": "Amateur satellite", |
2643 | + "comms": [], |
2644 | "groups": ["amateur", "non-operational"], |
2645 | - "tle1": "1 26545U 00057A 09081.15361688 .00000047 00000-0 25135-4 0 2129", |
2646 | - "tle2": "2 26545 64.5602 25.7522 0053775 291.6905 67.8477 14.80571352458315", |
2647 | - "draw_orbit": false, |
2648 | + "orbitColor": [0, 0, 0], |
2649 | + "orbitVisible": false, |
2650 | + "tle1": "1 26545U 00057A 10302.21213510 .00000238 00000-0 49391-4 0 6636", |
2651 | + "tle2": "2 26545 64.5593 19.7278 0028002 198.2244 161.7864 14.80754992545086", |
2652 | "visible": false |
2653 | }, |
2654 | "SAUDISAT 1B (SO-42)": |
2655 | { |
2656 | - "description": "Amateur satellite", |
2657 | + "comms": [], |
2658 | "groups": ["amateur", "non-operational"], |
2659 | - "tle1": "1 26549U 00057E 09080.84595995 -.00000003 00000-0 19202-4 0 2905", |
2660 | - "tle2": "2 26549 64.5580 42.8624 0056981 296.2253 63.3012 14.79427179457945", |
2661 | - "draw_orbit": false, |
2662 | + "orbitColor": [0, 0, 0], |
2663 | + "orbitVisible": false, |
2664 | + "tle1": "1 26549U 00057E 10301.27703190 .00000252 00000-0 52462-4 0 7554", |
2665 | + "tle2": "2 26549 64.5588 42.0123 0033543 196.2105 163.7950 14.79603796544554", |
2666 | "visible": false |
2667 | }, |
2668 | "SAUDISAT 1C (SO-50)": |
2669 | @@ -1674,73 +1824,151 @@ |
2670 | "frequency": 436.795, |
2671 | "modulation": "FM" |
2672 | }], |
2673 | - "description": "Amateur satellite", |
2674 | "groups": ["amateur"], |
2675 | - "tle1": "1 27607U 02058C 09080.71748238 -.00000074 00000-0 10658-4 0 8438", |
2676 | - "tle2": "2 27607 64.5592 290.7496 0076162 224.5615 134.9353 14.71420878335808", |
2677 | - "draw_orbit": false, |
2678 | - "visible": true |
2679 | + "orbitColor": [0, 0, 0], |
2680 | + "orbitVisible": false, |
2681 | + "tle1": "1 27607U 02058C 10301.61448115 .00000083 00000-0 34786-4 0 3045", |
2682 | + "tle2": "2 27607 64.5581 311.2303 0045303 21.9147 338.3881 14.71594408422011", |
2683 | + "visible": true |
2684 | + }, |
2685 | + "SEASAT 1": |
2686 | + { |
2687 | + "comms": [], |
2688 | + "groups": [], |
2689 | + "orbitColor": [0, 0, 0], |
2690 | + "orbitVisible": false, |
2691 | + "tle1": "1 10967U 78064A 10301.42156452 .00000021 00000-0 47716-4 0 2504", |
2692 | + "tle2": "2 10967 108.0170 282.5360 0003008 244.5472 115.5366 14.42233989697001", |
2693 | + "visible": true |
2694 | + }, |
2695 | + "SEDSAT 1 (SO-33)": |
2696 | + { |
2697 | + "comms": [], |
2698 | + "groups": ["amateur", "non-operational"], |
2699 | + "orbitColor": [0, 0, 0], |
2700 | + "orbitVisible": false, |
2701 | + "tle1": "1 25509U 98061B 10301.54597441 .00000218 00000-0 32855-4 0 8244", |
2702 | + "tle2": "2 25509 31.4315 114.3559 0352948 15.8890 345.2447 14.28335354627136", |
2703 | + "visible": false |
2704 | + }, |
2705 | + "SSETI EXPRESS (XO-53)": |
2706 | + { |
2707 | + "comms": [], |
2708 | + "groups": ["amateur", "non-operational"], |
2709 | + "orbitColor": [0, 0, 0], |
2710 | + "orbitVisible": false, |
2711 | + "tle1": "1 28894U 05043E 10302.16153439 .00000121 00000-0 34690-4 0 9025", |
2712 | + "tle2": "2 28894 97.9880 181.3536 0016597 225.9524 134.0317 14.59762730266645", |
2713 | + "visible": false |
2714 | + }, |
2715 | + "SUNSAT (SO-35)": |
2716 | + { |
2717 | + "comms": [], |
2718 | + "groups": ["amateur", "non-operational"], |
2719 | + "orbitColor": [0, 0, 0], |
2720 | + "orbitVisible": false, |
2721 | + "tle1": "1 25636U 99008C 10301.17920158 .00000094 00000-0 31863-4 0 7442", |
2722 | + "tle2": "2 25636 96.4810 11.4219 0149458 85.2411 276.5846 14.43522153614944", |
2723 | + "visible": false |
2724 | + }, |
2725 | + "TECHSAT 1B (GO-32)": |
2726 | + { |
2727 | + "comms": [], |
2728 | + "groups": ["amateur", "non-operational"], |
2729 | + "orbitColor": [0, 0, 0], |
2730 | + "orbitVisible": false, |
2731 | + "tle1": "1 25397U 98043D 10301.04803974 .00000064 00000-0 46175-4 0 3171", |
2732 | + "tle2": "2 25397 98.3171 301.2061 0000536 187.5333 172.5857 14.23188315638945", |
2733 | + "visible": false |
2734 | + }, |
2735 | + "TIUNGSAT-1 (MO-46)": |
2736 | + { |
2737 | + "comms": [], |
2738 | + "groups": ["amateur", "non-operational"], |
2739 | + "orbitColor": [0, 0, 0], |
2740 | + "orbitVisible": false, |
2741 | + "tle1": "1 26548U 00057D 10301.43415163 .00000269 00000-0 50374-4 0 8347", |
2742 | + "tle2": "2 26548 64.5572 338.3968 0020896 204.3629 155.6463 14.83575119545869", |
2743 | + "visible": false |
2744 | }, |
2745 | "TMSAT-1 (TO-31)": |
2746 | { |
2747 | - "description": "Amateur satellite", |
2748 | + "comms": [], |
2749 | "groups": ["amateur", "non-operational"], |
2750 | - "tle1": "1 25396U 98043C 09080.64556542 -.00000075 00000-0 -14722-4 0 3609", |
2751 | - "tle2": "2 25396 98.3414 113.1366 0003330 117.6494 242.5017 14.23773358555849", |
2752 | - "draw_orbit": false, |
2753 | + "orbitColor": [0, 0, 0], |
2754 | + "orbitVisible": false, |
2755 | + "tle1": "1 25396U 98043C 10301.66959165 .00000015 00000-0 24496-4 0 8311", |
2756 | + "tle2": "2 25396 98.3083 307.8110 0001932 195.3696 164.7419 14.23816641639233", |
2757 | "visible": false |
2758 | }, |
2759 | "UARS": |
2760 | { |
2761 | "comms": [], |
2762 | - "tle1": "1 21701U 91063B 10011.56517379 .00007948 00000-0 10185-3 0 8632", |
2763 | - "tle2": "2 21701 56.9701 169.1612 0067526 215.9750 143.6756 15.57588661 11660", |
2764 | - "draw_orbit": false, |
2765 | + "groups": [], |
2766 | + "orbitColor": [0, 0, 0], |
2767 | + "orbitVisible": false, |
2768 | + "tle1": "1 21701U 91063B 10302.26036846 .00018353 00000-0 16692-3 0 1147", |
2769 | + "tle2": "2 21701 56.9712 322.6612 0063129 75.5188 285.2865 15.65524459 57060", |
2770 | "visible": true |
2771 | }, |
2772 | + "UNAMSAT-2 (MO-30)": |
2773 | + { |
2774 | + "comms": [], |
2775 | + "groups": ["amateur", "non-operational"], |
2776 | + "orbitColor": [0, 0, 0], |
2777 | + "orbitVisible": false, |
2778 | + "tle1": "1 24305U 96052B 10301.64417402 .00000050 00000-0 37693-4 0 5644", |
2779 | + "tle2": "2 24305 82.9375 345.3896 0029043 310.0764 49.7849 13.73589184709104", |
2780 | + "visible": false |
2781 | + }, |
2782 | + "UOSAT 12 (UO-36)": |
2783 | + { |
2784 | + "comms": [], |
2785 | + "groups": ["amateur", "non-operational"], |
2786 | + "orbitColor": [0, 0, 0], |
2787 | + "orbitVisible": false, |
2788 | + "tle1": "1 25693U 99021A 10301.41097796 -.00000043 00000-0 13897-4 0 3404", |
2789 | + "tle2": "2 25693 64.5608 25.1028 0045010 293.3862 66.2479 14.78829481621518", |
2790 | + "visible": false |
2791 | + }, |
2792 | "UOSAT 2 (UO-11)": |
2793 | { |
2794 | - "description": "Amateur satellite", |
2795 | + "comms": [], |
2796 | "groups": ["amateur", "non-operational"], |
2797 | - "tle1": "1 14781U 84021B 09080.64423839 .00000051 00000-0 14037-4 0 9177", |
2798 | - "tle2": "2 14781 98.1180 124.2766 0008009 259.6956 100.3325 14.79700400344880", |
2799 | - "draw_orbit": false, |
2800 | + "orbitColor": [0, 0, 0], |
2801 | + "orbitVisible": false, |
2802 | + "tle1": "1 14781U 84021B 10301.36196208 -.00000161 00000-0 -14259-4 0 3760", |
2803 | + "tle2": "2 14781 98.0387 353.3855 0009139 161.9114 198.2405 14.79849098431506", |
2804 | "visible": false |
2805 | }, |
2806 | "UOSAT 3 (UO-14)": |
2807 | { |
2808 | - "description": "Amateur satellite", |
2809 | + "comms": [], |
2810 | "groups": ["amateur", "non-operational"], |
2811 | - "tle1": "1 20437U 90005B 09080.89917087 -.00000002 00000-0 14954-4 0 8782", |
2812 | - "tle2": "2 20437 98.3297 42.5381 0011721 66.3877 293.8534 14.31539355 562", |
2813 | - "draw_orbit": false, |
2814 | + "orbitColor": [0, 0, 0], |
2815 | + "orbitVisible": false, |
2816 | + "tle1": "1 20437U 90005B 10300.91152494 -.00000056 00000-0 -51411-5 0 3454", |
2817 | + "tle2": "2 20437 98.4072 246.6446 0011266 129.9527 230.2667 14.31589070 84265", |
2818 | "visible": false |
2819 | }, |
2820 | "UOSAT 4 (UO-15)": |
2821 | { |
2822 | - "description": "Amateur satellite", |
2823 | + "comms": [], |
2824 | "groups": ["amateur", "non-operational"], |
2825 | - "tle1": "1 20438U 90005C 09080.90778475 -.00000010 00000-0 12128-4 0 3731", |
2826 | - "tle2": "2 20438 98.3890 35.1941 0010802 94.4649 265.7767 14.30441006999994", |
2827 | - "draw_orbit": false, |
2828 | + "orbitColor": [0, 0, 0], |
2829 | + "orbitVisible": false, |
2830 | + "tle1": "1 20438U 90005C 10301.79041733 .00000022 00000-0 24893-4 0 8454", |
2831 | + "tle2": "2 20438 98.4607 242.8951 0010217 160.3752 199.7827 14.30479448 83759", |
2832 | "visible": false |
2833 | }, |
2834 | "UOSAT 5 (UO-22)": |
2835 | { |
2836 | - "description": "Amateur satellite", |
2837 | - "groups": ["amateur", "non-operational"], |
2838 | - "tle1": "1 21575U 91050B 09080.89099734 .00000050 00000-0 29842-4 0 5115", |
2839 | - "tle2": "2 21575 98.4357 31.0711 0006470 282.9876 77.0586 14.39667965928143", |
2840 | - "draw_orbit": false, |
2841 | - "visible": false |
2842 | - }, |
2843 | - "UOSAT 12 (UO-36)": |
2844 | - { |
2845 | - "description": "Amateur satellite", |
2846 | - "groups": ["amateur", "non-operational"], |
2847 | - "tle1": "1 25693U 99021A 09080.89685166 -.00000052 00000-0 12065-4 0 8740", |
2848 | - "tle2": "2 25693 64.5601 24.0115 0014988 205.2445 154.7951 14.78742116534931", |
2849 | - "draw_orbit": false, |
2850 | + "comms": [], |
2851 | + "groups": ["amateur", "non-operational"], |
2852 | + "orbitColor": [0, 0, 0], |
2853 | + "orbitVisible": false, |
2854 | + "tle1": "1 21575U 91050B 10301.83741544 .00000072 00000-0 37052-4 0 9705", |
2855 | + "tle2": "2 21575 98.5098 250.6008 0007023 332.9581 27.1235 14.39741581 12450", |
2856 | "visible": false |
2857 | }, |
2858 | "UWE-1": |
2859 | @@ -1751,42 +1979,21 @@ |
2860 | "frequency": 437.505, |
2861 | "modulation": "AFSK, 9600 baud" |
2862 | }], |
2863 | - "tle1": "1 28892U 05043C 10011.41208966 .00000105 00000-0 31411-4 0 5277", |
2864 | - "tle2": "2 28892 98.0328 260.2408 0018374 58.0630 302.2350 14.59806760224221", |
2865 | - "draw_orbit": false, |
2866 | + "groups": [], |
2867 | + "orbitColor": [0, 0, 0], |
2868 | + "orbitVisible": false, |
2869 | + "tle1": "1 28892U 05043C 10302.15932038 .00000277 00000-0 67049-4 0 7666", |
2870 | + "tle2": "2 28892 97.9897 181.2370 0016475 223.3607 136.6293 14.59933347266640", |
2871 | "visible": false |
2872 | }, |
2873 | - "HAMSAT (VO-52)": |
2874 | - { |
2875 | - "comms": [ |
2876 | - { |
2877 | - "description": "Beacon", |
2878 | - "frequency": 145.86, |
2879 | - "modulation": "CW" |
2880 | - }], |
2881 | - "description": "Amateur satellite", |
2882 | - "groups": ["amateur"], |
2883 | - "tle1": "1 28650U 05017B 09080.72416803 -.00000248 00000-0 -24823-4 0 1847", |
2884 | - "tle2": "2 28650 97.7510 145.1610 0026425 317.3448 42.5717 14.81561809209694", |
2885 | - "draw_orbit": false, |
2886 | - "visible": true |
2887 | - }, |
2888 | "WEBERSAT (WO-18)": |
2889 | { |
2890 | - "description": "Amateur satellite", |
2891 | - "groups": ["amateur", "non-operational"], |
2892 | - "tle1": "1 20441U 90005F 09080.86048996 .00000029 00000-0 26273-4 0 7816", |
2893 | - "tle2": "2 20441 98.2526 56.8316 0012586 69.9267 290.3272 14.31886901 720", |
2894 | - "draw_orbit": false, |
2895 | - "visible": false |
2896 | - }, |
2897 | - "SSETI EXPRESS (XO-53)": |
2898 | - { |
2899 | - "description": "Amateur satellite", |
2900 | - "groups": ["amateur", "non-operational"], |
2901 | - "tle1": "1 28894U 05043E 09080.73492122 .00000020 00000-0 13815-4 0 4180", |
2902 | - "tle2": "2 28894 98.0668 333.5116 0016556 264.1886 95.7421 14.59659039181098", |
2903 | - "draw_orbit": false, |
2904 | + "comms": [], |
2905 | + "groups": ["amateur", "non-operational"], |
2906 | + "orbitColor": [0, 0, 0], |
2907 | + "orbitVisible": false, |
2908 | + "tle1": "1 20441U 90005F 10301.84779390 .00000035 00000-0 28489-4 0 2555", |
2909 | + "tle2": "2 20441 98.3319 257.0049 0012093 124.2979 235.9352 14.31947554 84589", |
2910 | "visible": false |
2911 | } |
2912 | }, |
2913 | |
2914 | === modified file 'plugins/Satellites/src/CMakeLists.txt' |
2915 | --- plugins/Satellites/src/CMakeLists.txt 2010-05-10 08:59:49 +0000 |
2916 | +++ plugins/Satellites/src/CMakeLists.txt 2010-10-30 00:49:41 +0000 |
2917 | @@ -1,15 +1,33 @@ |
2918 | -INCLUDE_DIRECTORIES(. sgp4sdp4 gui ${CMAKE_BINARY_DIR}/plugins/Satellites/src ${CMAKE_BINARY_DIR}/plugins/Satellites/src/gui) |
2919 | +INCLUDE_DIRECTORIES(. gsatellite gui ${CMAKE_BINARY_DIR}/plugins/Satellites/src ${CMAKE_BINARY_DIR}/plugins/Satellites/src/gui) |
2920 | |
2921 | LINK_DIRECTORIES(/src) |
2922 | |
2923 | SET(Satellites_SRCS |
2924 | - sgp4sdp4/sgp4sdp4.c |
2925 | - sgp4sdp4/sgp4sdp4.h |
2926 | - sgp4sdp4/sgp_in.c |
2927 | - sgp4sdp4/sgp_math.c |
2928 | - sgp4sdp4/sgp_obs.c |
2929 | - sgp4sdp4/sgp_time.c |
2930 | - sgp4sdp4/solar.c |
2931 | + gsatellite/gException.hpp |
2932 | + gsatellite/gMatrix.cpp |
2933 | + gsatellite/gMatrix.hpp |
2934 | + gsatellite/gMatrixTempl.hpp |
2935 | + gsatellite/gObserver.cpp |
2936 | + gsatellite/gObserver.hpp |
2937 | + gsatellite/gSatTEME.cpp |
2938 | + gsatellite/gSatTEME.hpp |
2939 | + gsatellite/mathUtils.cpp |
2940 | + gsatellite/mathUtils.hpp |
2941 | + gsatellite/gTime.cpp |
2942 | + gsatellite/gTime.hpp |
2943 | + gsatellite/gTimeSpan.cpp |
2944 | + gsatellite/gVector.cpp |
2945 | + gsatellite/gVector.hpp |
2946 | + gsatellite/gVectorTempl.hpp |
2947 | + gsatellite/sgp4ext.cpp |
2948 | + gsatellite/sgp4ext.h |
2949 | + gsatellite/sgp4io.cpp |
2950 | + gsatellite/sgp4io.h |
2951 | + gsatellite/sgp4unit.cpp |
2952 | + gsatellite/sgp4unit.h |
2953 | + gsatellite/stdsat.h |
2954 | + |
2955 | + |
2956 | Satellite.hpp |
2957 | Satellite.cpp |
2958 | Satellites.hpp |
2959 | |
2960 | === modified file 'plugins/Satellites/src/Satellite.cpp' |
2961 | --- plugins/Satellites/src/Satellite.cpp 2010-10-27 15:20:46 +0000 |
2962 | +++ plugins/Satellites/src/Satellite.cpp 2010-10-30 00:49:41 +0000 |
2963 | @@ -27,12 +27,22 @@ |
2964 | #include "StelTexture.hpp" |
2965 | #include "VecMath.hpp" |
2966 | #include "StelUtils.hpp" |
2967 | -#include "sgp4sdp4/sgp4sdp4.h" |
2968 | + |
2969 | + |
2970 | +#include "gsatellite/gSatTEME.hpp" |
2971 | +#include "gsatellite/gObserver.hpp" |
2972 | +#include "gsatellite/gTime.hpp" |
2973 | +#include "gsatellite/gVector.hpp" |
2974 | |
2975 | #include <QTextStream> |
2976 | #include <QRegExp> |
2977 | #include <QDebug> |
2978 | #include <QVariant> |
2979 | +#include <QtOpenGL> |
2980 | +#include <QSettings> |
2981 | + |
2982 | +#include <cmath> |
2983 | +#include <cstdlib> |
2984 | |
2985 | // static data members - will be initialised in the Satallites class (the StelObjectMgr) |
2986 | StelTextureSP Satellite::hintTexture; |
2987 | @@ -47,13 +57,15 @@ |
2988 | if (!map.contains("designation") || !map.contains("tle1") || !map.contains("tle2")) |
2989 | return; |
2990 | |
2991 | - |
2992 | + font.setPixelSize(16); |
2993 | + |
2994 | designation = map.value("designation").toString(); |
2995 | strncpy(elements[0], "DUMMY", 5); |
2996 | strncpy(elements[1], qPrintable(map.value("tle1").toString()), 80); |
2997 | strncpy(elements[2], qPrintable(map.value("tle2").toString()), 80); |
2998 | if (map.contains("description")) description = map.value("description").toString(); |
2999 | if (map.contains("visible")) visible = map.value("visible").toBool(); |
3000 | + if (map.contains("orbitVisible")) orbitVisible = map.value("orbitVisible").toBool(); |
3001 | |
3002 | if (map.contains("hintColor")) |
3003 | { |
3004 | @@ -87,12 +99,16 @@ |
3005 | } |
3006 | } |
3007 | |
3008 | + pSatellite = new gSatTEME( designation.toAscii().data(), elements[1], elements[2]); |
3009 | + |
3010 | setObserverLocation(); |
3011 | initialized = true; |
3012 | } |
3013 | |
3014 | Satellite::~Satellite() |
3015 | { |
3016 | + if(pSatellite != NULL) |
3017 | + delete pSatellite; |
3018 | } |
3019 | |
3020 | QVariantMap Satellite::getMap(void) |
3021 | @@ -100,11 +116,14 @@ |
3022 | QVariantMap map; |
3023 | map["designation"] = designation; |
3024 | map["visible"] = visible; |
3025 | + map["orbitVisible"] = orbitVisible; |
3026 | map["tle1"] = QString(elements[1]); |
3027 | map["tle2"] = QString(elements[2]); |
3028 | - QVariantList col; |
3029 | + QVariantList col, orbitCol;; |
3030 | col << (double)hintColor[0] << (double)hintColor[1] << (double)hintColor[2]; |
3031 | + orbitCol << (double)orbitColor[0] << (double)orbitColor[1] << (double)orbitColor[2]; |
3032 | map["hintColor"] = col; |
3033 | + map["orbitColor"] = orbitCol; |
3034 | QVariantList commList; |
3035 | foreach(commLink c, comms) |
3036 | { |
3037 | @@ -146,9 +165,23 @@ |
3038 | |
3039 | if (flags&Extra1) |
3040 | { |
3041 | + oss << "<p>"; |
3042 | oss << QString("Range (km): <b>%1</b>").arg(range, 5, 'f', 2) << "<br>"; |
3043 | oss << QString("Range rate (km/s): <b>%1</b>").arg(rangeRate, 5, 'f', 3) << "<br>"; |
3044 | oss << QString("Altitude (km): <b>%1</b>").arg(height, 5, 'f', 2) << "<br>"; |
3045 | + oss << QString("SubPoint Lat/Long(Deg): <b>%1</b>").arg(LatLong[0], 5, 'f', 2) << "/"; |
3046 | + oss << QString("<b>%1</b>").arg(LatLong[1], 5, 'f', 3); |
3047 | + oss << "</p>"; |
3048 | + |
3049 | + oss << "TEME Coordinates(km): "; |
3050 | + oss << QString("<b>X:</b> %1 ").arg(Position[0], 5, 'f', 2); |
3051 | + oss << QString("<b>Y:</b> %1 ").arg(Position[1], 5, 'f', 2); |
3052 | + oss << QString("<b>Z:</b> %1 ").arg(Position[2], 5, 'f', 2) << "<br>"; |
3053 | + oss << "TEME Vel(km/s): "; |
3054 | + oss << QString("<b>X:</b> %1 ").arg(Vel[0], 5, 'f', 2); |
3055 | + oss << QString("<b>Y:</b> %1 ").arg(Vel[1], 5, 'f', 2); |
3056 | + oss << QString("<b>Z:</b> %1 ").arg(Vel[2], 5, 'f', 2) << "<br>"; |
3057 | + |
3058 | } |
3059 | |
3060 | if (flags&Extra2 && comms.size() > 0) |
3061 | @@ -191,9 +224,10 @@ |
3062 | { |
3063 | l = *loc; |
3064 | } |
3065 | - obs_geodetic.lon = l.longitude * de2ra; |
3066 | - obs_geodetic.lat = l.latitude * de2ra; |
3067 | - obs_geodetic.alt = l.altitude / 1000.0; |
3068 | + |
3069 | + |
3070 | + observer.setPosition( l.latitude, l.longitude, l.altitude / 1000.0); |
3071 | + |
3072 | } |
3073 | |
3074 | Vec3f Satellite::getInfoColor(void) const { |
3075 | @@ -212,36 +246,26 @@ |
3076 | |
3077 | void Satellite::update(double) |
3078 | { |
3079 | - ClearFlag(ALL_FLAGS); |
3080 | - Get_Next_Tle_Set(elements, &tle); |
3081 | - memcpy(&localtle, &tle, sizeof(tle_t)); |
3082 | - select_ephemeris(&tle); |
3083 | - double jul_epoch, jul_utc, tsince, phase; |
3084 | - vector_t vel = {0,0,0,0}; |
3085 | - vector_t pos = {0,0,0,0}; |
3086 | - vector_t obs_set; |
3087 | - geodetic_t sat_geodetic; |
3088 | - jul_utc = StelApp::getInstance().getCore()->getNavigator()->getJDay(); |
3089 | - jul_epoch = Julian_Date_of_Epoch(tle.epoch); |
3090 | - tsince = (jul_utc - jul_epoch) * xmnpda; |
3091 | - |
3092 | - if (isFlagSet(DEEP_SPACE_EPHEM_FLAG)) |
3093 | - SDP4(tsince, &tle, &pos, &vel, &phase); |
3094 | - else |
3095 | - SGP4(tsince, &tle, &pos, &vel, &phase); |
3096 | - |
3097 | - Convert_Sat_State(&pos, &vel); |
3098 | - SgpMagnitude(&vel); // scalar magnitude, not brightness... |
3099 | - velocity=vel.w; |
3100 | - |
3101 | - Calculate_Obs(jul_utc, &pos, &vel, &obs_geodetic, &obs_set); |
3102 | - Calculate_LatLonAlt(jul_utc, &pos, &sat_geodetic); |
3103 | - |
3104 | - azimuth=Degrees(obs_set.x); |
3105 | - elevation=Degrees(obs_set.y); |
3106 | - range=obs_set.z; |
3107 | - rangeRate=obs_set.w; |
3108 | - height=sat_geodetic.alt; |
3109 | + double jul_utc = StelApp::getInstance().getCore()->getNavigator()->getJDay(); |
3110 | + |
3111 | + epochTime = jul_utc; |
3112 | + |
3113 | + pSatellite->setEpoch( epochTime); |
3114 | + Position = pSatellite->getPos(); |
3115 | + Vel = pSatellite->getVel(); |
3116 | + LatLong = pSatellite->getSubPoint( epochTime); |
3117 | + azElPos = observer.calculateLook( *pSatellite, epochTime); |
3118 | + |
3119 | + |
3120 | + azimuth = azElPos[ AZIMUTH]/KDEG2RAD; |
3121 | + elevation = azElPos[ ELEVATION]/KDEG2RAD; |
3122 | + range = azElPos[ RANGE]; |
3123 | + rangeRate = azElPos[ RANGERATE]; |
3124 | + height = LatLong[2]; |
3125 | + |
3126 | + // Compute orbit points to draw orbit line. |
3127 | + if(orbitVisible) computeOrbitPoints(); |
3128 | + |
3129 | } |
3130 | |
3131 | double Satellite::getDoppler(double freq) const |
3132 | @@ -259,16 +283,164 @@ |
3133 | XYZ = core->getNavigator()->j2000ToEquinoxEqu(core->getNavigator()->altAzToEquinoxEqu(pos)); |
3134 | StelApp::getInstance().getVisionModeNight() ? glColor4f(0.6,0.0,0.0,1.0) : glColor4f(hintColor[0],hintColor[1],hintColor[2], Satellite::hintBrightness); |
3135 | |
3136 | + |
3137 | StelProjectorP prj = core->getProjection(StelCore::FrameJ2000); |
3138 | Vec3d xy; |
3139 | if (prj->project(XYZ,xy)) |
3140 | { |
3141 | + |
3142 | if (Satellite::showLabels) |
3143 | { |
3144 | painter.drawText(xy[0], xy[1], designation, 0, 10, 10, false); |
3145 | Satellite::hintTexture->bind(); |
3146 | } |
3147 | painter.drawSprite2dMode(xy[0], xy[1], 11); |
3148 | + |
3149 | + if(orbitVisible) drawOrbit(core, prj, painter); |
3150 | + } |
3151 | +} |
3152 | + |
3153 | +void Satellite::drawOrbit(const StelCore* core, StelProjectorP& prj, StelPainter& painter){ |
3154 | + Vec3d XYZPos, xy1; |
3155 | + float a, azimth, elev; |
3156 | + QVarLengthArray<float, 1024> vertexArray; |
3157 | + |
3158 | + |
3159 | + glDisable(GL_TEXTURE_2D); |
3160 | + glEnable(GL_LINE_SMOOTH); |
3161 | + glEnable(GL_BLEND); |
3162 | + painter.enableClientStates(true, false, false); |
3163 | + |
3164 | + QList<gVector>::iterator it= orbitPoints.begin(); |
3165 | + |
3166 | + for(int i=0; i<orbitPoints.size();i++) |
3167 | + { |
3168 | + azimth = it->at( AZIMUTH); |
3169 | + elev = it->at( ELEVATION); |
3170 | + a = ( (azimth/KDEG2RAD)-90)*M_PI/180; |
3171 | + Vec3d pos(sin(a),cos(a), tan( (elev/KDEG2RAD) * M_PI / 180.)); |
3172 | + XYZPos = core->getNavigator()->j2000ToEquinoxEqu(core->getNavigator()->altAzToEquinoxEqu(pos)); |
3173 | + |
3174 | + if (prj->project(XYZPos,xy1)) |
3175 | + { |
3176 | + vertexArray.append(xy1[0]); |
3177 | + vertexArray.append(xy1[1]); |
3178 | + } |
3179 | + it++; |
3180 | + |
3181 | + // draw the end parts of the orbit only, since they have non-standard color |
3182 | + // We'll draw the middle segment (with all the same color) with a single |
3183 | + // call to drawFromArray after this loop closes. |
3184 | + if (i>0 && ((DRAWORBIT_SLOTS_NUMBER/2) - abs(i - (DRAWORBIT_SLOTS_NUMBER/2) % DRAWORBIT_SLOTS_NUMBER)) < DRAWORBIT_FADE_NUMBER) |
3185 | + { |
3186 | + painter.setColor(hintColor[0], hintColor[1], hintColor[2], hintBrightness * calculateOrbitSegmentIntensity(i)); |
3187 | + painter.setVertexPointer(2, GL_FLOAT, vertexArray.constData()); |
3188 | + painter.drawFromArray(StelPainter::LineStrip, 2, i-1, false); |
3189 | + } |
3190 | + } |
3191 | + |
3192 | + // draw the middle segments of the orbit which are all the same color |
3193 | + if(!vertexArray.isEmpty()) |
3194 | + { |
3195 | + if (vertexArray.count() > (2*DRAWORBIT_FADE_NUMBER)) |
3196 | + { |
3197 | + painter.setColor(hintColor[0], hintColor[1], hintColor[2], hintBrightness); |
3198 | + painter.setVertexPointer(2, GL_FLOAT, vertexArray.constData()); |
3199 | + painter.drawFromArray(StelPainter::LineStrip, DRAWORBIT_SLOTS_NUMBER + 1 - (2*DRAWORBIT_FADE_NUMBER), DRAWORBIT_FADE_NUMBER - 1, false); |
3200 | + } |
3201 | + vertexArray.clear(); |
3202 | + } |
3203 | + |
3204 | + painter.enableClientStates(false); |
3205 | + glEnable(GL_TEXTURE_2D); |
3206 | +} |
3207 | + |
3208 | +float Satellite::calculateOrbitSegmentIntensity(int segNum) |
3209 | +{ |
3210 | + int endDist = (DRAWORBIT_SLOTS_NUMBER/2) - abs(segNum - (DRAWORBIT_SLOTS_NUMBER/2) % DRAWORBIT_SLOTS_NUMBER); |
3211 | + if (endDist > DRAWORBIT_FADE_NUMBER) { return 1.0; } |
3212 | + else { return (endDist + 1) / (DRAWORBIT_FADE_NUMBER + 1.0); } |
3213 | +} |
3214 | + |
3215 | +void Satellite::computeOrbitPoints(){ |
3216 | + |
3217 | + gTimeSpan computeInterval(0,0,0,DRAWORBIT_SLOT_SECNUMBER); //1/2 minute |
3218 | + gTimeSpan orbitSpan(0,0,0, DRAWORBIT_SLOTS_NUMBER*DRAWORBIT_SLOT_SECNUMBER/2); //+- 15 minutes range. |
3219 | + gTime epochTm; |
3220 | + gVector azElVector; |
3221 | + int diffSlots; |
3222 | + |
3223 | + |
3224 | + if( orbitPoints.isEmpty())//Setup orbitPoins |
3225 | + { |
3226 | + epochTm = epochTime - orbitSpan; |
3227 | + |
3228 | + for(int i=0; i< DRAWORBIT_SLOTS_NUMBER; i++) |
3229 | + { |
3230 | + pSatellite->setEpoch( epochTm); |
3231 | + azElVector = observer.calculateLook( *pSatellite, epochTm); |
3232 | + orbitPoints.append(azElVector); |
3233 | + epochTm += computeInterval; |
3234 | + } |
3235 | + lastEpochCompForOrbit = epochTime; |
3236 | + } |
3237 | + else if( epochTime > lastEpochCompForOrbit) |
3238 | + { // compute next orbit point when clock runs forward |
3239 | + |
3240 | + gTimeSpan diffTime = epochTime - lastEpochCompForOrbit; |
3241 | + diffSlots = (int)(diffTime.getDblSeconds()/DRAWORBIT_SLOT_SECNUMBER); |
3242 | + |
3243 | + if(diffSlots > 0) |
3244 | + { |
3245 | + if( diffSlots > DRAWORBIT_SLOTS_NUMBER) |
3246 | + { |
3247 | + diffSlots = DRAWORBIT_SLOTS_NUMBER; |
3248 | + epochTm = epochTime - orbitSpan; |
3249 | + } |
3250 | + else |
3251 | + { |
3252 | + epochTm = lastEpochCompForOrbit + orbitSpan + computeInterval; |
3253 | + } |
3254 | + |
3255 | + for( int i=0; i<diffSlots;i++) |
3256 | + { //remove points at beginning of list and add points at end. |
3257 | + orbitPoints.removeFirst(); |
3258 | + pSatellite->setEpoch( epochTm); |
3259 | + azElVector = observer.calculateLook( *pSatellite, epochTm); |
3260 | + orbitPoints.append(azElVector); |
3261 | + epochTm += computeInterval; |
3262 | + } |
3263 | + |
3264 | + lastEpochCompForOrbit = epochTime; |
3265 | + } |
3266 | + } |
3267 | + else if(epochTime < lastEpochCompForOrbit) |
3268 | + { // compute next orbit point when clock runs backward |
3269 | + gTimeSpan diffTime = lastEpochCompForOrbit - epochTime; |
3270 | + diffSlots = (int)(diffTime.getDblSeconds()/DRAWORBIT_SLOT_SECNUMBER); |
3271 | + |
3272 | + if(diffSlots > 0) |
3273 | + { |
3274 | + if( diffSlots > DRAWORBIT_SLOTS_NUMBER) |
3275 | + { |
3276 | + diffSlots = DRAWORBIT_SLOTS_NUMBER; |
3277 | + epochTm = epochTime + orbitSpan; |
3278 | + } |
3279 | + else |
3280 | + { |
3281 | + epochTm = epochTime - orbitSpan - computeInterval; |
3282 | + } |
3283 | + for( int i=0; i<diffSlots;i++) |
3284 | + { //remove points at end of list and add points at beginning. |
3285 | + orbitPoints.removeLast(); |
3286 | + pSatellite->setEpoch( epochTm); |
3287 | + azElVector = observer.calculateLook( *pSatellite, epochTm); |
3288 | + orbitPoints.push_front(azElVector); |
3289 | + epochTm -= computeInterval; |
3290 | + |
3291 | + } |
3292 | + lastEpochCompForOrbit = epochTime; |
3293 | + } |
3294 | } |
3295 | } |
3296 | |
3297 | |
3298 | === modified file 'plugins/Satellites/src/Satellite.hpp' |
3299 | --- plugins/Satellites/src/Satellite.hpp 2010-05-17 19:24:14 +0000 |
3300 | +++ plugins/Satellites/src/Satellite.hpp 2010-10-30 00:49:41 +0000 |
3301 | @@ -23,10 +23,23 @@ |
3302 | #include <QVariant> |
3303 | #include <QString> |
3304 | #include <QStringList> |
3305 | +#include <QFont> |
3306 | +#include <QList> |
3307 | |
3308 | #include "StelObject.hpp" |
3309 | #include "StelTextureTypes.hpp" |
3310 | -#include "sgp4sdp4/sgp4sdp4.h" |
3311 | + |
3312 | +#include "StelPainter.hpp" |
3313 | +#include "gsatellite/gSatTEME.hpp" |
3314 | +#include "gsatellite/gObserver.hpp" |
3315 | +#include "gsatellite/gTime.hpp" |
3316 | +#include "gsatellite/gVector.hpp" |
3317 | + |
3318 | + |
3319 | +#define DRAWORBIT_SLOTS_NUMBER 131 |
3320 | +#define DRAWORBIT_FADE_NUMBER 10 |
3321 | +#define DRAWORBIT_SLOT_SECNUMBER 10 |
3322 | + |
3323 | |
3324 | class StelPainter; |
3325 | class StelLocation; |
3326 | @@ -82,14 +95,26 @@ |
3327 | double getDoppler(double freq) const; |
3328 | static float showLabels; |
3329 | |
3330 | +public: |
3331 | + void enableDrawOrbit(bool b); |
3332 | + |
3333 | +private: |
3334 | + //draw orbits methods |
3335 | + void computeOrbitPoints(); |
3336 | + void drawOrbit(const StelCore* core, StelProjectorP& prj, StelPainter& painter); |
3337 | + //! returns 0 - 1.0 for the DRAWORBIT_FADE_NUMBER segments at |
3338 | + //! each end of an orbit, with 1 in the middle. |
3339 | + float calculateOrbitSegmentIntensity(int segNum); |
3340 | + |
3341 | private: |
3342 | bool initialized; |
3343 | bool visible; |
3344 | + bool orbitVisible; //draw orbit enabled/disabled |
3345 | + |
3346 | QString designation; // The ID of the satllite |
3347 | QString description; // longer description of spacecraft |
3348 | Vec3d XYZ; // holds J2000 position |
3349 | char elements[3][80]; // TLE elements as char* for passing to sgp lib |
3350 | - tle_t tle, localtle; |
3351 | double height, velocity, azimuth, elevation, range, rangeRate; |
3352 | QList<commLink> comms; |
3353 | Vec3f hintColor; |
3354 | @@ -98,10 +123,25 @@ |
3355 | static StelTextureSP hintTexture; |
3356 | static float hintBrightness; |
3357 | static float hintScale; |
3358 | - geodetic_t obs_geodetic; // observer location |
3359 | |
3360 | void draw(const StelCore* core, StelPainter& painter, float maxMagHints); |
3361 | void setObserverLocation(StelLocation* loc=NULL); |
3362 | + |
3363 | + //gsatellite objects |
3364 | + gSatTEME *pSatellite; |
3365 | + gObserver observer; |
3366 | + gTime epochTime; |
3367 | + gVector Position; |
3368 | + gVector Vel; |
3369 | + gVector LatLong; |
3370 | + gVector azElPos; |
3371 | + |
3372 | + //Satellite Orbit Draw |
3373 | + QFont font; |
3374 | + Vec3f orbitColor; |
3375 | + gTime lastEpochCompForOrbit; |
3376 | + QList<gVector> orbitPoints; //orbit points represented by azElPos vectors |
3377 | + |
3378 | }; |
3379 | |
3380 | #endif // _SATELLITE_HPP_ |
3381 | |
3382 | === modified file 'plugins/Satellites/src/Satellites.hpp' |
3383 | --- plugins/Satellites/src/Satellites.hpp 2010-04-18 17:48:49 +0000 |
3384 | +++ plugins/Satellites/src/Satellites.hpp 2010-10-30 00:49:41 +0000 |
3385 | @@ -42,7 +42,7 @@ |
3386 | typedef QSharedPointer<Satellite> SatelliteP; |
3387 | |
3388 | //! @class Satellites |
3389 | -//! Satellites in low Earth orbith require different orbital calculations from planets, the moon |
3390 | +//! Satellites in low Earth orbit require different orbital calculations from planets, the moon |
3391 | //! and so on. This plugin implements the SGP4/SDP4 algorithms in Stellarium, allowing accurate |
3392 | //! prediction of the position of artificial satellites. |
3393 | class Satellites : public StelObjectModule |
3394 | |
3395 | === added directory 'plugins/Satellites/src/gsatellite' |
3396 | === added file 'plugins/Satellites/src/gsatellite/gException.hpp' |
3397 | --- plugins/Satellites/src/gsatellite/gException.hpp 1970-01-01 00:00:00 +0000 |
3398 | +++ plugins/Satellites/src/gsatellite/gException.hpp 2010-10-30 00:49:41 +0000 |
3399 | @@ -0,0 +1,44 @@ |
3400 | +/*************************************************************************** |
3401 | + * Copyright (C) 2006 by j. l. Canales * |
3402 | + * jlcanales@users.sourceforge.net * |
3403 | + * * |
3404 | + * This program is free software; you can redistribute it and/or modify * |
3405 | + * it under the terms of the GNU General Public License as published by * |
3406 | + * the Free Software Foundation; either version 2 of the License, or * |
3407 | + * (at your option) any later version. * |
3408 | + * * |
3409 | + * This program is distributed in the hope that it will be useful, * |
3410 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
3411 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
3412 | + * GNU General Public License for more details. * |
3413 | + * * |
3414 | + * You should have received a copy of the GNU General Public License * |
3415 | + * along with this program; if not, write to the * |
3416 | + * Free Software Foundation, Inc., * |
3417 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
3418 | + ***************************************************************************/ |
3419 | + |
3420 | +#ifndef _GEXCEPTION_HPP_ |
3421 | +#define _GEXCEPTION_HPP_ 1 |
3422 | + |
3423 | +#include <stdexcept> |
3424 | + |
3425 | +//Exception Codes |
3426 | +#define EXCP_UNKNOWN 1 |
3427 | +#define EXCP_INCORRECTPARAM 2 |
3428 | +#define EXCP_OPERATIONOVERFLOW 3 |
3429 | +#define EXCP_MEMORYALLOCATION 4 |
3430 | +#define EXCP_COMPUTEOVERFLOW 5 |
3431 | + |
3432 | +typedef unsigned int GEXCEPTIONTYPE; |
3433 | + |
3434 | +// Exception messages for GMatrix |
3435 | + |
3436 | +#define OPERATOR_X_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate its verctorial product" |
3437 | +#define OPERATOR_ADD_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the addition" |
3438 | +#define OPERATOR_ADDEQUAL_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the addition" |
3439 | +#define OPERATOR_DIFF_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the substraction" |
3440 | +#define OPERATOR_DIFFEQUAL_INCOMPATIBLE_ORDER "The matrix have incompatible order to calculate the substraction" |
3441 | +#define DET_INCOMPATIBLE_ORDER "The matrix is not square, the determinant can't be calculate." |
3442 | + |
3443 | +#endif // _GEXCEPTION_HPP_ |
3444 | |
3445 | === added file 'plugins/Satellites/src/gsatellite/gMatrix.cpp' |
3446 | --- plugins/Satellites/src/gsatellite/gMatrix.cpp 1970-01-01 00:00:00 +0000 |
3447 | +++ plugins/Satellites/src/gsatellite/gMatrix.cpp 2010-10-30 00:49:41 +0000 |
3448 | @@ -0,0 +1,290 @@ |
3449 | +/*************************************************************************** |
3450 | + * Name: GMatrix.cpp |
3451 | + * |
3452 | + * Date: 2009-12-31 16:34:55 +0100 (jue, 31 dic 2009) |
3453 | + * Revision: 17 |
3454 | + * HeadURL: https://gsat.svn.sourceforge.net/svnroot/gsat/trunk/src/GMatrix.cpp |
3455 | + * |
3456 | + * Description: GMatrix Definition. |
3457 | + * GMatrix class define a bidimensional GDOUBLE elements matrix |
3458 | + * and the basic matrix operations. |
3459 | + * |
3460 | + ***************************************************************************/ |
3461 | + |
3462 | +/*************************************************************************** |
3463 | + * Copyright (C) 2004 by JL Canales * |
3464 | + * ph03696@homeserver * |
3465 | + * * |
3466 | + * This program is free software; you can redistribute it and/or modify * |
3467 | + * it under the terms of the GNU General Public License as published by * |
3468 | + * the Free Software Foundation; either version 2 of the License, or * |
3469 | + * (at your option) any later version. * |
3470 | + * * |
3471 | + * This program is distributed in the hope that it will be useful, * |
3472 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
3473 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
3474 | + * GNU General Public License for more details. * |
3475 | + * * |
3476 | + * You should have received a copy of the GNU General Public License * |
3477 | + * along with this program; if not, write to the * |
3478 | + * Free Software Foundation, Inc., * |
3479 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
3480 | + ***************************************************************************/ |
3481 | + |
3482 | +// CMatrix |
3483 | +#include "gMatrix.hpp" |
3484 | +#include "gException.hpp" |
3485 | + |
3486 | +#include <cassert> |
3487 | + |
3488 | +// Class gMatrix |
3489 | +gMatrix::gMatrix() : gMatrixTempl<double>() |
3490 | +{ |
3491 | +} |
3492 | + |
3493 | +gMatrix::gMatrix(unsigned int ai_uiRowNumber, unsigned int ai_uiColumNumber) |
3494 | + : gMatrixTempl<double>(ai_uiRowNumber, ai_uiColumNumber) |
3495 | +{ |
3496 | + |
3497 | +} |
3498 | + |
3499 | + |
3500 | +bool gMatrix::operator!=(const gMatrix &right) const |
3501 | +{ |
3502 | + if((*this)==(right)) |
3503 | + { |
3504 | + return false; |
3505 | + } |
3506 | + else |
3507 | + { |
3508 | + return true; |
3509 | + } |
3510 | +} |
3511 | + |
3512 | + |
3513 | + |
3514 | +//## Other Operations (implementation) |
3515 | + |
3516 | +gMatrix gMatrix::operator *(const gMatrix &ai_RightMatrix) |
3517 | +{ |
3518 | + |
3519 | + unsigned int iRow; |
3520 | + unsigned int iColumn; |
3521 | + unsigned int uiRightColumn = ai_RightMatrix.Columns(); |
3522 | + unsigned int uiRightRow = ai_RightMatrix.Rows(); |
3523 | + |
3524 | + unsigned int Iterator; |
3525 | + double dAuxValue = 0; |
3526 | + gMatrix ReturnedMatrix(Rows(), uiRightColumn); |
3527 | + |
3528 | + |
3529 | + if(Columns() != uiRightRow) |
3530 | + { |
3531 | + throw std::out_of_range(OPERATOR_X_INCOMPATIBLE_ORDER); |
3532 | + } |
3533 | + else |
3534 | + { |
3535 | + for(iRow = 0; iRow < Rows(); iRow++) |
3536 | + for(iColumn = 0; iColumn < uiRightColumn; iColumn++) |
3537 | + { |
3538 | + // Product and addition of implied elements |
3539 | + for(Iterator = 0; Iterator < uiRightRow; Iterator++) |
3540 | + { |
3541 | + dAuxValue += (operator[](iRow)[ Iterator] * |
3542 | + ai_RightMatrix[ Iterator][ iColumn]); |
3543 | + } |
3544 | + |
3545 | + ReturnedMatrix[ iRow][ iColumn] = dAuxValue; |
3546 | + dAuxValue = 0; |
3547 | + } |
3548 | + } |
3549 | + |
3550 | + return ReturnedMatrix; |
3551 | +} |
3552 | + |
3553 | + |
3554 | +gVector gMatrix::operator *(const gVector &ai_RightVector) |
3555 | +{ |
3556 | + |
3557 | + unsigned int iRow; |
3558 | + unsigned int iColumn; |
3559 | + |
3560 | + double dAuxValue = 0; |
3561 | + gVector ReturnedVector(Rows()); |
3562 | + |
3563 | + assert(Columns() == ai_RightVector.size()); |
3564 | + |
3565 | + |
3566 | + if(Columns() != ai_RightVector.size()) |
3567 | + { |
3568 | + throw std::out_of_range(OPERATOR_X_INCOMPATIBLE_ORDER); |
3569 | + } |
3570 | + else |
3571 | + { |
3572 | + for(iRow = 0; iRow < Rows(); iRow++) |
3573 | + { |
3574 | + for(iColumn = 0; iColumn < Columns(); iColumn++) |
3575 | + { |
3576 | + // Product and addition of implied elements |
3577 | + dAuxValue += (operator[](iRow)[ iColumn] * |
3578 | + ai_RightVector[ iColumn]); |
3579 | + } |
3580 | + |
3581 | + ReturnedVector[ iRow] = dAuxValue; |
3582 | + dAuxValue = 0; |
3583 | + |
3584 | + } |
3585 | + } |
3586 | + return ReturnedVector; |
3587 | +} |
3588 | + |
3589 | + |
3590 | +gMatrix gMatrix::operator *(double ai_dRight) |
3591 | +{ |
3592 | + unsigned int iRow; |
3593 | + unsigned int iColumn; |
3594 | + gMatrix ReturnedMatrix(Rows(), Columns()); |
3595 | + |
3596 | + try |
3597 | + { |
3598 | + for(iRow = 0; iRow < Rows(); iRow++) |
3599 | + for(iColumn = 0; iColumn < Columns(); iColumn ++) |
3600 | + ReturnedMatrix[ iRow][ iColumn] = ((*this)[ iRow][ iColumn] * ai_dRight); |
3601 | + } |
3602 | + catch(...) |
3603 | + { |
3604 | + for(iRow = 0; iRow < Rows(); iRow++) |
3605 | + for(iColumn = 0; iColumn < Columns(); iColumn ++) |
3606 | + ReturnedMatrix[ iRow][ iColumn] = 0; |
3607 | + |
3608 | + throw; |
3609 | + } |
3610 | + |
3611 | + return ReturnedMatrix; |
3612 | +} |
3613 | + |
3614 | +gMatrix gMatrix::operator+(gMatrix &ai_RightMatrix) const |
3615 | +{ |
3616 | + |
3617 | + gMatrix ReturnedMatrix(Rows(), Columns()); |
3618 | + |
3619 | +#ifdef ENABLE_DEBUG |
3620 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
3621 | +#endif |
3622 | + |
3623 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
3624 | + { |
3625 | + throw std::out_of_range(OPERATOR_ADD_INCOMPATIBLE_ORDER); |
3626 | + } |
3627 | + |
3628 | + |
3629 | + for(unsigned int i = 0; i<Rows(); i++) |
3630 | + for(unsigned int j = 0; j<Columns(); j++) |
3631 | + ReturnedMatrix[ i][ j] = operator[](i)[ j] + ai_RightMatrix[ i][ j]; |
3632 | + |
3633 | + |
3634 | + return ReturnedMatrix; |
3635 | + |
3636 | +} |
3637 | + |
3638 | +const gMatrix& gMatrix::operator+=(gMatrix &ai_RightMatrix) |
3639 | +{ |
3640 | + |
3641 | +#ifdef ENABLE_DEBUG |
3642 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
3643 | +#endif |
3644 | + |
3645 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
3646 | + { |
3647 | + throw std::out_of_range(OPERATOR_ADDEQUAL_INCOMPATIBLE_ORDER); |
3648 | + } |
3649 | + for(unsigned int i = 0; i<Rows(); i++) |
3650 | + for(unsigned int j = 0; j<Columns(); j++) |
3651 | + operator[](i)[ j] = operator[](i)[ j] + ai_RightMatrix[ i][ j]; |
3652 | + |
3653 | + |
3654 | + return *this; |
3655 | + |
3656 | +} |
3657 | + |
3658 | +gMatrix gMatrix::operator-(gMatrix &ai_RightMatrix) const |
3659 | +{ |
3660 | + |
3661 | + gMatrix ReturnedMatrix(Rows(), Columns()); |
3662 | + |
3663 | +#ifdef ENABLE_DEBUG |
3664 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
3665 | +#endif |
3666 | + |
3667 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
3668 | + { |
3669 | + throw std::out_of_range(OPERATOR_DIFF_INCOMPATIBLE_ORDER); |
3670 | + } |
3671 | + for(unsigned int i = 0; i<Rows(); i++) |
3672 | + for(unsigned int j = 0; j<Columns(); j++) |
3673 | + ReturnedMatrix[ i][ j] = operator[](i)[ j] - ai_RightMatrix[ i][ j]; |
3674 | + |
3675 | + |
3676 | + return ReturnedMatrix; |
3677 | + |
3678 | +} |
3679 | + |
3680 | +const gMatrix& gMatrix::operator-=(gMatrix &ai_RightMatrix) |
3681 | +{ |
3682 | + |
3683 | +#ifdef ENABLE_DEBUG |
3684 | + assert(Rows()==ai_RightMatrix.Rows() && Columns()==ai_RightMatrix.Columns()); |
3685 | +#endif |
3686 | + |
3687 | + if(Rows()!=ai_RightMatrix.Rows() || Columns()!=ai_RightMatrix.Columns()) |
3688 | + { |
3689 | + throw std::out_of_range(OPERATOR_DIFFEQUAL_INCOMPATIBLE_ORDER); |
3690 | + } |
3691 | + for(unsigned int i = 0; i<Rows(); i++) |
3692 | + for(unsigned int j = 0; j<Columns(); j++) |
3693 | + operator[](i)[ j] = operator[](i)[ j] - ai_RightMatrix[ i][ j]; |
3694 | + |
3695 | + |
3696 | + return *this; |
3697 | + |
3698 | +} |
3699 | + |
3700 | +double gMatrix::det() |
3701 | +{ |
3702 | + |
3703 | + gMatrix aux=*this; |
3704 | + double dDet; |
3705 | + int k,l,i,j; |
3706 | + int n = Rows(); |
3707 | + int m = n-1; |
3708 | + |
3709 | + |
3710 | + try |
3711 | + { |
3712 | + if(Columns() != Rows()) |
3713 | + { |
3714 | + throw std::invalid_argument(DET_INCOMPATIBLE_ORDER); |
3715 | + } |
3716 | + |
3717 | + dDet=aux[0][0]; |
3718 | + for(k=0; k<m; k++) |
3719 | + { |
3720 | + l=k+1; |
3721 | + for(i=l; i<n; i++) |
3722 | + { |
3723 | + for(j=l; j<n; j++) |
3724 | + { |
3725 | + aux[i][j] = (aux[k][k]*aux[i][j]-aux[k][j]*aux[i][k])/aux[k][k]; |
3726 | + } |
3727 | + } |
3728 | + dDet=dDet*aux[k+1][k+1]; |
3729 | + } |
3730 | + |
3731 | + return dDet; |
3732 | + } |
3733 | + catch(...) |
3734 | + { |
3735 | + throw; |
3736 | + } |
3737 | +} |
3738 | + |
3739 | |
3740 | === added file 'plugins/Satellites/src/gsatellite/gMatrix.hpp' |
3741 | --- plugins/Satellites/src/gsatellite/gMatrix.hpp 1970-01-01 00:00:00 +0000 |
3742 | +++ plugins/Satellites/src/gsatellite/gMatrix.hpp 2010-10-30 00:49:41 +0000 |
3743 | @@ -0,0 +1,86 @@ |
3744 | +/*************************************************************************** |
3745 | + * Name: gMatrix.h |
3746 | + * |
3747 | + * Date: 2007-03-29 17:01:15 +0200 (jue, 29 mar 2007) |
3748 | + * Revision: 16 |
3749 | + * HeadURL: https://gsat.svn.sourceforge.net/svnroot/gsat/trunk/src/GMatrix.h |
3750 | + * |
3751 | + * Description: Fichero de descripci� de la clase GMatrix. |
3752 | + * Esta clase tiene como cometido la encapsulaci� de objetos |
3753 | + * tipo matriz bidimensional de elementos GDOUBLE junto con |
3754 | + * las operaciones de matrices realizables. |
3755 | + * |
3756 | + * |
3757 | + ***************************************************************************/ |
3758 | + |
3759 | +/*************************************************************************** |
3760 | + * Copyright (C) 2004 by JL Canales * |
3761 | + * ph03696@homeserver * |
3762 | + * * |
3763 | + * This program is free software; you can redistribute it and/or modify * |
3764 | + * it under the terms of the GNU General Public License as published by * |
3765 | + * the Free Software Foundation; either version 2 of the License, or * |
3766 | + * (at your option) any later version. * |
3767 | + * * |
3768 | + * This program is distributed in the hope that it will be useful, * |
3769 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
3770 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
3771 | + * GNU General Public License for more details. * |
3772 | + * * |
3773 | + * You should have received a copy of the GNU General Public License * |
3774 | + * along with this program; if not, write to the * |
3775 | + * Free Software Foundation, Inc., * |
3776 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
3777 | + ***************************************************************************/ |
3778 | + |
3779 | +#ifndef _GMATRIX_HPP_ |
3780 | +#define _GMATRIX_HPP_ 1 |
3781 | + |
3782 | +// MatrixContainer |
3783 | +#include "gMatrixTempl.hpp" |
3784 | +#include "gVector.hpp" |
3785 | + |
3786 | +//! @class: gMatrix |
3787 | +//! This class implement the needed code to make matrix calculations. |
3788 | +//! The GMatrix class inherit from MatrixContainer class that is created |
3789 | +//! from the vector STL class givingt all the STL vector funcionality. |
3790 | +//! This class has not overlapped the = operator and the copy constructor |
3791 | +//! because this methods are given by the vector STL class. |
3792 | +class gMatrix : public gMatrixTempl<double> |
3793 | +{ |
3794 | +public: |
3795 | + //## Constructors (generated) |
3796 | + gMatrix(); |
3797 | + |
3798 | + //## Constructors (specified) |
3799 | + //## Operation:gMatrix%950961952 |
3800 | + // Constructor whit row and column dimensions. |
3801 | + gMatrix ( unsigned int ai_uiRowNumber, unsigned int ai_uiColumNumber); |
3802 | + |
3803 | + //## Equality Operations (generated) |
3804 | + bool operator!=( const gMatrix &right) const; |
3805 | + |
3806 | + //## Other Operations (specified) |
3807 | + //## Operation: operator*%949869240 |
3808 | + // This operators make the vectorial product calculation |
3809 | + gMatrix operator* ( const gMatrix &ai_RightMatrix); |
3810 | + |
3811 | + //## Operation: operator*%949869240 |
3812 | + // This operators make the vectorial product calculation |
3813 | + gVector operator* ( const gVector &ai_RightVector); |
3814 | + |
3815 | + //## Operation: operator*%949869241 |
3816 | + // This operator make the scalar product calculation. |
3817 | + gMatrix operator* ( double ai_dRight); |
3818 | + |
3819 | + gMatrix operator+ ( gMatrix &ai_RightMatrix) const; |
3820 | + const gMatrix& operator+=( gMatrix &ai_RightMatrix); |
3821 | + |
3822 | + gMatrix operator- ( gMatrix &ai_RightMatrix) const; |
3823 | + const gMatrix& operator-=( gMatrix &ai_RightMatrix); |
3824 | + |
3825 | + // Determinant |
3826 | + double det(); |
3827 | +}; |
3828 | + |
3829 | +#endif //_GMATRIX_HPP_ |
3830 | |
3831 | === added file 'plugins/Satellites/src/gsatellite/gMatrixTempl.hpp' |
3832 | --- plugins/Satellites/src/gsatellite/gMatrixTempl.hpp 1970-01-01 00:00:00 +0000 |
3833 | +++ plugins/Satellites/src/gsatellite/gMatrixTempl.hpp 2010-10-30 00:49:41 +0000 |
3834 | @@ -0,0 +1,117 @@ |
3835 | +/*************************************************************************** |
3836 | + * Name: gMatrixTempl.h |
3837 | + * |
3838 | + * Description: MatrixContainer is a template to build |
3839 | + * bidimensional objects arrays. |
3840 | + ***************************************************************************/ |
3841 | + |
3842 | +/*************************************************************************** |
3843 | + * Copyright (C) 2006 by j. l. Canales * |
3844 | + * jlcanales@users.sourceforge.net * |
3845 | + * * |
3846 | + * This program is free software; you can redistribute it and/or modify * |
3847 | + * it under the terms of the GNU General Public License as published by * |
3848 | + * the Free Software Foundation; either version 2 of the License, or * |
3849 | + * (at your option) any later version. * |
3850 | + * * |
3851 | + * This program is distributed in the hope that it will be useful, * |
3852 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
3853 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
3854 | + * GNU General Public License for more details. * |
3855 | + * * |
3856 | + * You should have received a copy of the GNU General Public License * |
3857 | + * along with this program; if not, write to the * |
3858 | + * Free Software Foundation, Inc., * |
3859 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
3860 | + ***************************************************************************/ |
3861 | + |
3862 | +#ifndef _GMATRIXTEMPL_HPP_ |
3863 | +#define _GMATRIXTEMPL_HPP_ 1 |
3864 | + |
3865 | +#include "gVectorTempl.hpp" // checked vector |
3866 | +#include <iostream> // for operator<<(), see below |
3867 | + |
3868 | +// matrix as vector of vectors |
3869 | +template<class T> |
3870 | +class gMatrixTempl : public br_stl::gVectorTempl< |
3871 | + br_stl::gVectorTempl<T> > |
3872 | +{ |
3873 | +public: |
3874 | + typedef typename std::vector<T>::size_type size_type; |
3875 | + |
3876 | + gMatrixTempl(size_type x = 0, size_type y = 0) |
3877 | + : br_stl::gVectorTempl< br_stl::gVectorTempl<T> >(x, br_stl::gVectorTempl<T>(y)), rows(x), columns(y) |
3878 | + { |
3879 | + } |
3880 | + |
3881 | + gMatrixTempl(const gMatrixTempl<T> &right) |
3882 | + : br_stl::gVectorTempl< br_stl::gVectorTempl<T> >(right.rows, br_stl::gVectorTempl<T>(right.columns)), rows(right.rows), columns(right.columns) |
3883 | + { |
3884 | + |
3885 | + for(size_type i = 0; i < rows; ++i) |
3886 | + for(size_type j = 0; j < columns ; ++j) |
3887 | + operator[](i)[j] = right[ i][ j]; |
3888 | + } |
3889 | + |
3890 | + size_type Rows() const |
3891 | + { |
3892 | + return rows; |
3893 | + } |
3894 | + |
3895 | + size_type Columns() const |
3896 | + { |
3897 | + return columns; |
3898 | + } |
3899 | + |
3900 | + void SetSize(size_type x, size_type y) |
3901 | + { |
3902 | + |
3903 | + br_stl::gVectorTempl< br_stl::gVectorTempl<T> >::resize(x); |
3904 | + for(size_type index = 0; index < x; index++) |
3905 | + operator[](index).resize(y); |
3906 | + |
3907 | + rows = x; |
3908 | + columns = y; |
3909 | + } |
3910 | + |
3911 | + |
3912 | + void init(const T& Value) |
3913 | + { |
3914 | + for(size_type i = 0; i < rows; ++i) |
3915 | + for(size_type j = 0; j < columns ; ++j) |
3916 | + operator[](i)[j] = Value; // that is, (*this)[i][j] |
3917 | + } |
3918 | + |
3919 | + // create identity matrix |
3920 | + gMatrixTempl<T>& I() |
3921 | + { |
3922 | + for(size_type i = 0; i < rows; ++i) |
3923 | + for(size_type j = 0; j < columns ; ++j) |
3924 | + operator[](i)[j] = (i==j) ? T(1) : T(0); |
3925 | + return *this; |
3926 | + } |
3927 | + |
3928 | +protected: |
3929 | + size_type rows; |
3930 | + size_type columns; |
3931 | + |
3932 | + |
3933 | +}; // class Matrix |
3934 | + |
3935 | + |
3936 | +template<class T> |
3937 | +inline std::ostream& operator<<(std::ostream& s, const gMatrixTempl<T>& m) |
3938 | +{ |
3939 | + typedef typename gMatrixTempl<T>::size_type size_type; |
3940 | + |
3941 | + for(size_type i = 0; i < m.Rows(); ++i) |
3942 | + { |
3943 | + s << std::endl << i <<" : "; |
3944 | + for(size_type j = 0; j < m.Columns(); ++j) |
3945 | + s << m[i][j] <<" "; |
3946 | + } |
3947 | + s << std::endl; |
3948 | + return s; |
3949 | +} |
3950 | + |
3951 | +#endif // _GMATRIXTEMPL_HPP_ |
3952 | |
3953 | === added file 'plugins/Satellites/src/gsatellite/gObserver.cpp' |
3954 | --- plugins/Satellites/src/gsatellite/gObserver.cpp 1970-01-01 00:00:00 +0000 |
3955 | +++ plugins/Satellites/src/gsatellite/gObserver.cpp 2010-10-30 00:49:41 +0000 |
3956 | @@ -0,0 +1,88 @@ |
3957 | +/* |
3958 | + * gObserver.cpp |
3959 | + * |
3960 | + * Created on: 05/08/2010 |
3961 | + * Author: cdeveloper |
3962 | + */ |
3963 | + |
3964 | +#include "stdsat.h" |
3965 | +#include "gVector.hpp" |
3966 | +#include "gObserver.hpp" |
3967 | +#include "gTime.hpp" |
3968 | +#include "mathUtils.hpp" |
3969 | +#include <math.h> |
3970 | + |
3971 | +//! Definition: This operation compute the observer ECI coordinates for the ai_epoch time |
3972 | +void gObserver::getECIPosition(gTime ai_epoch, gVector& ao_position, gVector& ao_vel) |
3973 | +{ |
3974 | + ao_position.resize(3); |
3975 | + ao_vel.resize(3); |
3976 | + double radLatitude = m_latitude * KDEG2RAD; |
3977 | + double theta = ai_epoch.toThetaLMST(m_longitude * KDEG2RAD); |
3978 | + double r; |
3979 | + double c,sq; |
3980 | + |
3981 | + /* Reference: The 1992 Astronomical Almanac, page K11. */ |
3982 | + c = 1/sqrt(1 + __f*(__f - 2)*Sqr(sin(radLatitude))); |
3983 | + sq = Sqr(1 - __f)*c; |
3984 | + |
3985 | + r = (KEARTHRADIUS*c + m_attitude)*cos(radLatitude); |
3986 | + ao_position[0] = r * cos(theta);/*kilometers*/ |
3987 | + ao_position[1] = r * sin(theta); |
3988 | + ao_position[2] = (KEARTHRADIUS*sq + m_attitude)*sin(radLatitude); |
3989 | + ao_vel[0] = -KMFACTOR*ao_position[1];/*kilometers/second*/ |
3990 | + ao_vel[1] = KMFACTOR*ao_position[0]; |
3991 | + ao_vel[2] = 0; |
3992 | +} |
3993 | + |
3994 | +gVector gObserver::calculateLook(gSatTEME ai_Sat, gTime ai_epoch) |
3995 | +{ |
3996 | + |
3997 | + gVector returnVector(4); |
3998 | + gVector topoSatPos(3); |
3999 | + gVector observerECIPos; |
4000 | + gVector observerECIVel; |
4001 | + |
4002 | + |
4003 | + double radLatitude = m_latitude * KDEG2RAD; |
4004 | + double theta = ai_epoch.toThetaLMST(m_longitude * KDEG2RAD); |
4005 | + |
4006 | + getECIPosition(ai_epoch, observerECIPos, observerECIVel); |
4007 | + ai_Sat.setEpoch(ai_epoch); |
4008 | + |
4009 | + gVector satECIPos = ai_Sat.getPos(); |
4010 | + gVector satECIVel = ai_Sat.getVel(); |
4011 | + gVector slantRange = satECIPos - observerECIPos; |
4012 | + gVector rangeVel = satECIVel - observerECIVel; |
4013 | + |
4014 | + //top_s |
4015 | + topoSatPos[0] = sin(radLatitude) * cos(theta)*slantRange[0] |
4016 | + + sin(radLatitude)* sin(theta)*slantRange[1] |
4017 | + - cos(radLatitude)* slantRange[2]; |
4018 | + //top_e |
4019 | + topoSatPos[1] = (-1.0)* sin(theta)*slantRange[0] |
4020 | + + cos(theta)*slantRange[1]; |
4021 | + |
4022 | + //top_z |
4023 | + topoSatPos[2] = cos(radLatitude) * cos(theta)*slantRange[0] |
4024 | + + cos(radLatitude) * sin(theta)*slantRange[1] |
4025 | + + sin(radLatitude) *slantRange[2]; |
4026 | + |
4027 | + returnVector[ AZIMUTH] = atan((-1.0)*topoSatPos[1]/topoSatPos[0]); |
4028 | + if(topoSatPos[0] > 0) |
4029 | + returnVector[ AZIMUTH] += KPI; |
4030 | + if(returnVector[ AZIMUTH] < 0) |
4031 | + returnVector[ AZIMUTH] += K2PI; |
4032 | + |
4033 | + returnVector[ RANGE] = slantRange.Magnitude(); |
4034 | + returnVector[ ELEVATION] = asin(topoSatPos[2]/returnVector[ RANGE]); |
4035 | + returnVector[ RANGERATE] = slantRange.Dot(rangeVel)/returnVector[ RANGE]; |
4036 | + return returnVector; |
4037 | + |
4038 | + |
4039 | + // Corrections for atmospheric refraction |
4040 | + // Reference: Astronomical Algorithms by Jean Meeus, pp. 101-104 |
4041 | + // Correction is meaningless when apparent elevation is below horizon |
4042 | + // obs_set->y = obs_set->y + Radians((1.02/tan(Radians(Degrees(el)+ |
4043 | + // 10.3/(Degrees(el)+5.11))))/60); |
4044 | +} |
4045 | |
4046 | === added file 'plugins/Satellites/src/gsatellite/gObserver.hpp' |
4047 | --- plugins/Satellites/src/gsatellite/gObserver.hpp 1970-01-01 00:00:00 +0000 |
4048 | +++ plugins/Satellites/src/gsatellite/gObserver.hpp 2010-10-30 00:49:41 +0000 |
4049 | @@ -0,0 +1,114 @@ |
4050 | +/*************************************************************************** |
4051 | + * Name: gObserver.hpp |
4052 | + ***************************************************************************/ |
4053 | + |
4054 | +/*************************************************************************** |
4055 | + * Copyright (C) 2006 by J. L. Canales * |
4056 | + * jlcanales@users.sourceforge.net * |
4057 | + * * |
4058 | + * This program is free software; you can redistribute it and/or modify * |
4059 | + * it under the terms of the GNU General Public License as published by * |
4060 | + * the Free Software Foundation; either version 2 of the License, or * |
4061 | + * (at your option) any later version. * |
4062 | + * * |
4063 | + * This program is distributed in the hope that it will be useful, * |
4064 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4065 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4066 | + * GNU General Public License for more details. * |
4067 | + * * |
4068 | + * You should have received a copy of the GNU General Public License * |
4069 | + * along with this program; if not, write to the * |
4070 | + * Free Software Foundation, Inc., * |
4071 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4072 | + ***************************************************************************/ |
4073 | +#ifndef _GOBSERVER_HPP_ |
4074 | +#define _GOBSERVER_HPP_ 1 |
4075 | + |
4076 | +// stdsat |
4077 | +#include "stdsat.h" |
4078 | +#include "gVector.hpp" |
4079 | +#include "gTime.hpp" |
4080 | +#include "gSatTEME.hpp" |
4081 | + |
4082 | +#define AZIMUTH 0 |
4083 | +#define ELEVATION 1 |
4084 | +#define RANGE 2 |
4085 | +#define RANGERATE 3 |
4086 | + |
4087 | +//! @class gObserver |
4088 | +//! This class implements the need functionality to change |
4089 | +//! coordinates from Geographic Reference System to Observer Reference System |
4090 | +class gObserver |
4091 | +{ |
4092 | +public: |
4093 | + //## Constructors (generated) |
4094 | + //! @brief Default class gObserver constructor |
4095 | + //! @param[in] ai_latitude Observer Geographic latitude |
4096 | + //! @param[in] ai_longitude Observer Geographic longitude |
4097 | + //! @param[in] ai_attitude Observer Geographic attitude |
4098 | + gObserver(double ai_latitude=0, double ai_longitude=0 , double ai_attitude=0): |
4099 | + m_latitude(ai_latitude),m_longitude(ai_longitude), m_attitude(ai_attitude) |
4100 | + { |
4101 | + ; |
4102 | + } |
4103 | + |
4104 | + //! Method used to get observer latitude. |
4105 | + //! |
4106 | + double getLatitude() |
4107 | + { |
4108 | + return m_latitude; |
4109 | + } |
4110 | + |
4111 | + //! Method used to get observer object longitude. |
4112 | + //! |
4113 | + double getLongitude() |
4114 | + { |
4115 | + return m_longitude; |
4116 | + } |
4117 | + |
4118 | + //! Method used to set Observer geographic position. |
4119 | + //! |
4120 | + void setPosition(double ai_latitude, double ai_longitude, double ai_attitude) |
4121 | + { |
4122 | + m_latitude = ai_latitude; |
4123 | + m_longitude = ai_longitude; |
4124 | + m_attitude = ai_attitude; |
4125 | + } |
4126 | + |
4127 | + |
4128 | + |
4129 | + // Operation getECIPosition |
4130 | + //! @brief This operation compute the observer ECI coordinates for the |
4131 | + //! ai_epoch time |
4132 | + //! @details |
4133 | + //! References: |
4134 | + //! Orbital Coordinate Systems, Part II |
4135 | + //! Dr. T.S. Kelso |
4136 | + //! http://www.celestrak.com/columns/v02n02/ |
4137 | + //! @param[in] ai_epoch Epoch for the ECI reference system calculation |
4138 | + //! @param[out] ao_position Observer position vector |
4139 | + //! @param[out] ao_vel Observer velocity vector |
4140 | + //! gVector Vector including X,Y,Z ECI Coordinates |
4141 | + void getECIPosition(gTime ai_epoch, gVector& ao_position, gVector& ao_vel); |
4142 | + |
4143 | + // Operation calculateLook |
4144 | + //! @brief This operation compute the Azimuth, Elevation and Range of |
4145 | + //! a satellite from the observer site. |
4146 | + //! @param[in] ai_Sat Sat TEME object to be looked. |
4147 | + //! @param[in] ai_epoch Epoch for the ECI reference system calculation |
4148 | + //! @return gVector Vector including Az, El, Range coordinates |
4149 | + //! References: |
4150 | + //! Orbital Coordinate Systems, Part II |
4151 | + //! Dr. T.S. Kelso |
4152 | + //! http://www.celestrak.com/columns/v02n02/ |
4153 | + gVector calculateLook(gSatTEME ai_Sat, gTime ai_epoch); |
4154 | + |
4155 | +private: //## implementation |
4156 | + |
4157 | + double m_latitude; //meassured in degrees |
4158 | + double m_longitude; //meassured in degrees |
4159 | + double m_attitude; |
4160 | + |
4161 | +}; |
4162 | + |
4163 | +#endif // _GOBSERVER_HPP_ |
4164 | |
4165 | === added file 'plugins/Satellites/src/gsatellite/gSatTEME.cpp' |
4166 | --- plugins/Satellites/src/gsatellite/gSatTEME.cpp 1970-01-01 00:00:00 +0000 |
4167 | +++ plugins/Satellites/src/gsatellite/gSatTEME.cpp 2010-10-30 00:49:41 +0000 |
4168 | @@ -0,0 +1,156 @@ |
4169 | +/*************************************************************************** |
4170 | + * Name: gSatTEME.cpp |
4171 | + * |
4172 | + * Description: gSatTEME class implementation. |
4173 | + * This class abstract all the SGP4 complexity. It uses the |
4174 | + * David. A. Vallado code for SGP4 Calculation. |
4175 | + * |
4176 | + * Reference: |
4177 | + * Revisiting Spacetrack Report #3 AIAA 2006-6753 |
4178 | + * Vallado, David A., Paul Crawford, Richard Hujsak, and T.S. |
4179 | + * Kelso, "Revisiting Spacetrack Report #3," |
4180 | + * presented at the AIAA/AAS Astrodynamics Specialist |
4181 | + * Conference, Keystone, CO, 2006 August 21–24. |
4182 | + * http://celestrak.com/publications/AIAA/2006-6753/ |
4183 | + ***************************************************************************/ |
4184 | + |
4185 | +/*************************************************************************** |
4186 | + * Copyright (C) 2004 by J.L. Canales * |
4187 | + * ph03696@homeserver * |
4188 | + * * |
4189 | + * This program is free software; you can redistribute it and/or modify * |
4190 | + * it under the terms of the GNU General Public License as published by * |
4191 | + * the Free Software Foundation; either version 2 of the License, or * |
4192 | + * (at your option) any later version. * |
4193 | + * * |
4194 | + * This program is distributed in the hope that it will be useful, * |
4195 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4196 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4197 | + * GNU General Public License for more details. * |
4198 | + * * |
4199 | + * You should have received a copy of the GNU General Public License * |
4200 | + * along with this program; if not, write to the * |
4201 | + * Free Software Foundation, Inc., * |
4202 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4203 | + ***************************************************************************/ |
4204 | + |
4205 | +// GKepFile |
4206 | +#include "gSatTEME.hpp" |
4207 | +#include <iostream> |
4208 | +#include <iomanip> |
4209 | + |
4210 | +#include "stdsat.h" |
4211 | +#include "mathUtils.hpp" |
4212 | + |
4213 | +#include "sgp4io.h" |
4214 | + |
4215 | +#define CONSTANTS_SET wgs72 |
4216 | +#define TYPERUN_SET 'c' |
4217 | +#define OPSMODE_SET 'i' |
4218 | +#define TYPEINPUT_SET 'm' |
4219 | + |
4220 | +#define LATITUDE 0 |
4221 | +#define LONGITUDE 1 |
4222 | +#define ALTITUDE 2 |
4223 | + |
4224 | +// Constructors |
4225 | +gSatTEME::gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2) |
4226 | +{ |
4227 | + |
4228 | + double startmfe, stopmfe, deltamin; |
4229 | + double ro[3]; |
4230 | + double vo[3]; |
4231 | + |
4232 | + m_Position.resize(3); |
4233 | + m_Vel.resize(3); |
4234 | + |
4235 | + m_SatName = pstrName; |
4236 | + |
4237 | + //set gravitational constants |
4238 | + getgravconst(CONSTANTS_SET, tumin, mu, radiusearthkm, xke, j2, j3, j4, j3oj2); |
4239 | + |
4240 | + //Parsing TLE_Files and sat variables setting |
4241 | + twoline2rv(pstrTleLine1, pstrTleLine2, TYPERUN_SET, TYPEINPUT_SET, OPSMODE_SET, CONSTANTS_SET, |
4242 | + startmfe, stopmfe, deltamin, satrec); |
4243 | + |
4244 | + // call the propagator to get the initial state vector value |
4245 | + sgp4(CONSTANTS_SET, satrec, 0.0, ro, vo); |
4246 | + |
4247 | + m_Position[ 0]= ro[ 0]; |
4248 | + m_Position[ 1]= ro[ 1]; |
4249 | + m_Position[ 2]= ro[ 2]; |
4250 | + m_Vel[ 0] = vo[ 0]; |
4251 | + m_Vel[ 1] = vo[ 1]; |
4252 | + m_Vel[ 2] = vo[ 2]; |
4253 | +} |
4254 | + |
4255 | +void gSatTEME::setEpoch(gTime ai_time) |
4256 | +{ |
4257 | + |
4258 | + gTime kepEpoch(satrec.jdsatepoch); |
4259 | + gTimeSpan tSince = ai_time - kepEpoch; |
4260 | + |
4261 | + double ro[3]; |
4262 | + double vo[3]; |
4263 | + double dtsince = tSince.getDblSeconds()/KSEC_PER_MIN; |
4264 | + // call the propagator to get the initial state vector value |
4265 | + sgp4(CONSTANTS_SET, satrec, dtsince, ro, vo); |
4266 | + |
4267 | + m_Position[ 0]= ro[ 0]; |
4268 | + m_Position[ 1]= ro[ 1]; |
4269 | + m_Position[ 2]= ro[ 2]; |
4270 | + m_Vel[ 0] = vo[ 0]; |
4271 | + m_Vel[ 1] = vo[ 1]; |
4272 | + m_Vel[ 2] = vo[ 2]; |
4273 | +} |
4274 | + |
4275 | +void gSatTEME::setEpoch(double ai_minSinceKepEpoch) |
4276 | +{ |
4277 | + |
4278 | + double ro[3]; |
4279 | + double vo[3]; |
4280 | + // call the propagator to get the initial state vector value |
4281 | + sgp4(CONSTANTS_SET, satrec, ai_minSinceKepEpoch, ro, vo); |
4282 | + |
4283 | + m_Position[ 0]= ro[ 0]; |
4284 | + m_Position[ 1]= ro[ 1]; |
4285 | + m_Position[ 2]= ro[ 2]; |
4286 | + m_Vel[ 0] = vo[ 0]; |
4287 | + m_Vel[ 1] = vo[ 1]; |
4288 | + m_Vel[ 2] = vo[ 2]; |
4289 | +} |
4290 | + |
4291 | +gVector gSatTEME::getSubPoint(gTime ai_Time) |
4292 | +{ |
4293 | + |
4294 | + gVector resultVector(3); // (0) Latitude, (1) Longitude, (2) altitude |
4295 | + double theta, r, e2, phi, c; |
4296 | + |
4297 | + theta = AcTan(m_Position[1], m_Position[0]); // radians |
4298 | + resultVector[ LONGITUDE] = fmod((theta - ai_Time.toThetaGMST()), K2PI); //radians |
4299 | + |
4300 | + |
4301 | + r = sqrt(Sqr(m_Position[0]) + Sqr(m_Position[1])); |
4302 | + e2 = __f*(2 - __f); |
4303 | + resultVector[ LATITUDE] = AcTan(m_Position[2],r); /*radians*/ |
4304 | + |
4305 | + do |
4306 | + { |
4307 | + phi = resultVector[ LATITUDE]; |
4308 | + c = 1/sqrt(1 - e2*Sqr(sin(phi))); |
4309 | + resultVector[ LATITUDE] = AcTan(m_Position[2] + KEARTHRADIUS*c*e2*sin(phi),r); |
4310 | + } |
4311 | + while(fabs(resultVector[ LATITUDE] - phi) >= 1E-10); |
4312 | + |
4313 | + resultVector[ ALTITUDE] = r/cos(resultVector[ LATITUDE]) - KEARTHRADIUS*c;/*kilometers*/ |
4314 | + |
4315 | + if(resultVector[ LATITUDE] > (KPI/2.0)) resultVector[ LATITUDE] -= K2PI; |
4316 | + |
4317 | + resultVector[LATITUDE] = resultVector[LATITUDE]/KDEG2RAD; |
4318 | + resultVector[LONGITUDE] = resultVector[LONGITUDE]/KDEG2RAD; |
4319 | + if(resultVector[LONGITUDE] < -180.0) resultVector[LONGITUDE] +=360; |
4320 | + else if(resultVector[LONGITUDE] > 180.0) resultVector[LONGITUDE] -= 360; |
4321 | + |
4322 | + |
4323 | + return resultVector; |
4324 | +} |
4325 | |
4326 | === added file 'plugins/Satellites/src/gsatellite/gSatTEME.hpp' |
4327 | --- plugins/Satellites/src/gsatellite/gSatTEME.hpp 1970-01-01 00:00:00 +0000 |
4328 | +++ plugins/Satellites/src/gsatellite/gSatTEME.hpp 2010-10-30 00:49:41 +0000 |
4329 | @@ -0,0 +1,128 @@ |
4330 | +/*************************************************************************** |
4331 | + * Name: gSatTeme.hpp |
4332 | + * |
4333 | + * Description: gSatTEME classes declaration. |
4334 | + * This class abstract all the SGP4 complexity. It uses the |
4335 | + * revised David. A. Vallado code for SGP4 Calculation. |
4336 | + * |
4337 | + * Reference: |
4338 | + * Revisiting Spacetrack Report #3 AIAA 2006-6753 |
4339 | + * Vallado, David A., Paul Crawford, Richard Hujsak, and T.S. |
4340 | + * Kelso, "Revisiting Spacetrack Report #3," |
4341 | + * presented at the AIAA/AAS Astrodynamics Specialist |
4342 | + * Conference, Keystone, CO, 2006 August 21–24. |
4343 | + * http://celestrak.com/publications/AIAA/2006-6753/ |
4344 | + ***************************************************************************/ |
4345 | + |
4346 | +/*************************************************************************** |
4347 | + * Copyright (C) 2006 by J.L. Canales * |
4348 | + * jlcanales@users.sourceforge.net * |
4349 | + * * |
4350 | + * This program is free software; you can redistribute it and/or modify * |
4351 | + * it under the terms of the GNU General Public License as published by * |
4352 | + * the Free Software Foundation; either version 2 of the License, or * |
4353 | + * (at your option) any later version. * |
4354 | + * * |
4355 | + * This program is distributed in the hope that it will be useful, * |
4356 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4357 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4358 | + * GNU General Public License for more details. * |
4359 | + * * |
4360 | + * You should have received a copy of the GNU General Public License * |
4361 | + * along with this program; if not, write to the * |
4362 | + * Free Software Foundation, Inc., * |
4363 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4364 | + ***************************************************************************/ |
4365 | + |
4366 | +#ifndef _GSATTEME_HPP_ |
4367 | +#define _GSATTEME_HPP_ 1 |
4368 | + |
4369 | +#include "gTime.hpp" |
4370 | +#include "gVector.hpp" |
4371 | + |
4372 | +#include "sgp4unit.h" |
4373 | +#include "sgp4ext.h" |
4374 | + |
4375 | + |
4376 | +//! @class gSatTEME |
4377 | +//! @brief Sat position and velocity predictions over TEME reference system. |
4378 | +//! @details |
4379 | +//! Class to abstract all the SGP4 complexity. |
4380 | +//! It implementation wrap whit an object oriented class the revised David. A. Vallado |
4381 | +//! code for SGP4 Calculation. (Spacetrack report #6 revised AIAA-2006-6753-rev1) |
4382 | +class gSatTEME |
4383 | +{ |
4384 | +public: |
4385 | + |
4386 | + // Operation: gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2) |
4387 | + //! @brief Default class gSatTEME constructor |
4388 | + //! @param[in] pstrName Pointer to a null end string with the Sat. Name |
4389 | + //! @param[in] pstrTleLine1 Pointer to a null end string with the |
4390 | + //! first TLE Kep. data line |
4391 | + //! @param[in] pstrTleLine2 Pointer to a null end string with the |
4392 | + //! second TLE Kep. data line |
4393 | + gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2); |
4394 | + |
4395 | + // Operation: setEpoch( gTime ai_time) |
4396 | + //! @brief Set compute epoch for prediction |
4397 | + //! @param[in] ai_time gTime object storing the compute epoch time. |
4398 | + void setEpoch(gTime ai_time); |
4399 | + |
4400 | + // Operation: setEpoch( double ai_minSinceKepEpoch) |
4401 | + //! @brief Set compute epoch for prediction in minutes since Keplerian data Epoch |
4402 | + //! @param[in] ai_minSinceKepEpoch Time since Keplerian Epoch measured in minutes |
4403 | + //! and fraction of minutes. |
4404 | + void setEpoch(double ai_minSinceKepEpoch); |
4405 | + |
4406 | + // Operation: getPos() |
4407 | + //! @brief Get the TEME satellite position Vector |
4408 | + //! @return gVector |
4409 | + //! Satellite position vector. |
4410 | + //! x: position[0] |
4411 | + //! y: position[1] |
4412 | + //! z: position[2] |
4413 | + gVector getPos() |
4414 | + { |
4415 | + return m_Position; |
4416 | + } |
4417 | + |
4418 | + // Operation: getVel() |
4419 | + //! @brief Get the TEME satellite Velocity Vector |
4420 | + //! @return gVector Satellite Velocity Vector\n |
4421 | + //! x: Vel[0]\n |
4422 | + //! y: Vel[1]\n |
4423 | + //! z: Vel[2]\n |
4424 | + gVector getVel() |
4425 | + { |
4426 | + return m_Vel; |
4427 | + } |
4428 | + |
4429 | + // Operation: getSubPoint |
4430 | + //! @brief Get the Geographic satellite subpoint Vector |
4431 | + //! @details To implement this operation, next references has been used: |
4432 | + //! Orbital Coordinate Systems, Part III By Dr. T.S. Kelso |
4433 | + //! http://www.celestrak.com/columns/v02n03/ |
4434 | + //! @param[in] ai_Time Epoch time for subpoint calculation. (of course, this must be |
4435 | + //! refactorized to be computed in the setEpoch function) |
4436 | + //! @return gVector Geographical coordinates\n |
4437 | + //! Latitude: Coord[0] measured in degrees\n |
4438 | + //! Longitude: Coord[1] measured in degrees\n |
4439 | + //! Altitude: Coord[2] measured in Km.\n |
4440 | + gVector getSubPoint(gTime ai_Time); |
4441 | + |
4442 | + int getErrorCode() |
4443 | + { |
4444 | + return satrec.error; |
4445 | + } |
4446 | + |
4447 | +private: |
4448 | + // sgp4 proceses variables |
4449 | + double tumin, mu, radiusearthkm, xke, j2, j3, j4, j3oj2; |
4450 | + elsetrec satrec; |
4451 | + |
4452 | + std::string m_SatName; |
4453 | + gVector m_Position; |
4454 | + gVector m_Vel; |
4455 | +}; |
4456 | + |
4457 | +#endif // _GSATTEME_HPP_ |
4458 | |
4459 | === added file 'plugins/Satellites/src/gsatellite/gTime.cpp' |
4460 | --- plugins/Satellites/src/gsatellite/gTime.cpp 1970-01-01 00:00:00 +0000 |
4461 | +++ plugins/Satellites/src/gsatellite/gTime.cpp 2010-10-30 00:49:41 +0000 |
4462 | @@ -0,0 +1,347 @@ |
4463 | +/*************************************************************************** |
4464 | + * Name: gTime.cpp |
4465 | + * |
4466 | + * Description: |
4467 | + ***************************************************************************/ |
4468 | + |
4469 | +/*************************************************************************** |
4470 | + * Copyright (C) 2004 by JL Trabajo * |
4471 | + * ph03696@homeserver * |
4472 | + * * |
4473 | + * This program is free software; you can redistribute it and/or modify * |
4474 | + * it under the terms of the GNU General Public License as published by * |
4475 | + * the Free Software Foundation; either version 2 of the License, or * |
4476 | + * (at your option) any later version. * |
4477 | + * * |
4478 | + * This program is distributed in the hope that it will be useful, * |
4479 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4480 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4481 | + * GNU General Public License for more details. * |
4482 | + * * |
4483 | + * You should have received a copy of the GNU General Public License * |
4484 | + * along with this program; if not, write to the * |
4485 | + * Free Software Foundation, Inc., * |
4486 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4487 | + ***************************************************************************/ |
4488 | + |
4489 | + |
4490 | +#include <cassert> |
4491 | +// gtime |
4492 | +#include "gTime.hpp" |
4493 | +// GExcpt |
4494 | +#include "gException.hpp" |
4495 | +#include "stdsat.h" |
4496 | +#include <math.h> |
4497 | + |
4498 | +#include <stdio.h> |
4499 | +#include <stdlib.h> |
4500 | + |
4501 | +// Class GTimeSpan |
4502 | + |
4503 | +////////////////////////////////////////////////////////////////////////////// |
4504 | +// Referencies: |
4505 | +// Astronomical Formulae for Calculators. |
4506 | +// Jean Meeus |
4507 | +// Chapter 3: Julian Day and Calendar Date. PG's 23, 24, 25 |
4508 | +// |
4509 | +void gTime::setTime(int year, double day) |
4510 | +{ |
4511 | + assert((day >= 0.0) && (day < 367.0)); |
4512 | + |
4513 | + // Now calculate Julian date |
4514 | + |
4515 | + year--; |
4516 | + |
4517 | + int A = (year / 100); |
4518 | + int B = 2 - A + (A / 4); |
4519 | + |
4520 | + double JDforYear = (int)(365.25 * year) + |
4521 | + (int)(30.6001 * 14) + //MM = 1 then MM=12 + 1 for the expresion (30.6001 * (mm +1)) |
4522 | + 1720994.5 + B; |
4523 | + |
4524 | + m_time = JDforYear + day; |
4525 | +} |
4526 | + |
4527 | + |
4528 | +// Constructors |
4529 | + |
4530 | +gTime gTime::getCurrentTime() |
4531 | +{ |
4532 | + |
4533 | + time_t rawtime; |
4534 | + struct tm * timeinfo; |
4535 | + |
4536 | + time(&rawtime); |
4537 | + timeinfo = gmtime(&rawtime); |
4538 | + |
4539 | + return gTime(*timeinfo); |
4540 | +} |
4541 | + |
4542 | + |
4543 | + |
4544 | +gTime::gTime(int year, double day) |
4545 | +{ |
4546 | + setTime(year, day); |
4547 | +} |
4548 | + |
4549 | +gTime::gTime(double ai_jDays) |
4550 | +{ |
4551 | + m_time= ai_jDays; |
4552 | +} |
4553 | + |
4554 | +gTime::gTime(int nYear, int nMonth, int nDay, int nHour, int nMin, double nSec) |
4555 | +{ |
4556 | + // Calculate N, the day of the year (1..366) |
4557 | + int N; |
4558 | + int F1 = (int)((275.0 * nMonth) / 9.0); |
4559 | + int F2 = (int)((nMonth + 9.0) / 12.0); |
4560 | + |
4561 | + if(isLeapYear(nYear)) |
4562 | + { |
4563 | + // Leap year |
4564 | + N = F1 - F2 + nDay - 30; |
4565 | + } |
4566 | + else |
4567 | + { |
4568 | + // Common year |
4569 | + N = F1 - (2 * F2) + nDay - 30; |
4570 | + } |
4571 | + |
4572 | + double dDay = N + (nHour + (nMin + (nSec / 60.0)) / 60.0) / 24.0; |
4573 | + |
4574 | + |
4575 | + setTime(nYear, dDay); |
4576 | + |
4577 | +} |
4578 | + |
4579 | + |
4580 | +gTime::gTime(const gTime& timeSrc):m_time(timeSrc.m_time) |
4581 | +{ |
4582 | + |
4583 | +} |
4584 | + |
4585 | +gTime::gTime(struct tm ai_timestruct) |
4586 | +{ |
4587 | + |
4588 | + int year = ai_timestruct.tm_year + 1900; |
4589 | + |
4590 | + double day = ai_timestruct.tm_yday + 1; |
4591 | + day += (ai_timestruct.tm_hour + (ai_timestruct.tm_min + (ai_timestruct.tm_sec / 60.0)) / 60.0) / 24.0; |
4592 | + |
4593 | + setTime(year, day); |
4594 | +} |
4595 | + |
4596 | +gTimeSpan gTime::getTimeToUTC() |
4597 | +{ |
4598 | + |
4599 | + //Time to utc calculation. |
4600 | + time_t when = time(NULL); |
4601 | + struct tm utc = *gmtime(&when); |
4602 | + struct tm lcl = *localtime(&when); |
4603 | + gTimeSpan tUTCDiff; |
4604 | + |
4605 | + |
4606 | + int delta_h = lcl.tm_hour - utc.tm_hour; |
4607 | + tUTCDiff = (time_t) delta_h*3600; |
4608 | + |
4609 | + return(tUTCDiff); |
4610 | +} |
4611 | + |
4612 | + |
4613 | +const gTime& gTime::operator=(const gTime& timeSrc) |
4614 | +{ |
4615 | + m_time = timeSrc.m_time; |
4616 | + return (*this); |
4617 | +} |
4618 | + |
4619 | +const gTime& gTime::operator=(time_t t) |
4620 | +{ |
4621 | + struct tm *ptm = gmtime(&t); |
4622 | + assert(ptm); |
4623 | + |
4624 | + int year = ptm->tm_year + 1900; |
4625 | + |
4626 | + double day = ptm->tm_yday + 1; |
4627 | + day += (ptm->tm_hour + (ptm->tm_min + (ptm->tm_sec / 60.0)) / 60.0) / 24.0; |
4628 | + |
4629 | + setTime(year, day); |
4630 | + |
4631 | + return (*this); |
4632 | + |
4633 | +} |
4634 | + |
4635 | + |
4636 | +// Attributes |
4637 | +double gTime::getGmtTm() const |
4638 | +{ |
4639 | + return m_time; |
4640 | +} |
4641 | + |
4642 | +double gTime::getLocalTm() const |
4643 | +{ |
4644 | + return (m_time + getTimeToUTC().getDblSeconds()); |
4645 | +} |
4646 | + |
4647 | + |
4648 | +time_t gTime::toTime() const |
4649 | +{ |
4650 | + return ((m_time - JDAY_JAN1_00H_1970)*KSEC_PER_DAY); |
4651 | + |
4652 | + |
4653 | +} |
4654 | + |
4655 | +void gTime::toCalendarDate(int *pYear, int *pMonth , double *pDom) const |
4656 | +{ |
4657 | + |
4658 | + assert(pYear != NULL); |
4659 | + assert(pMonth != NULL); |
4660 | + assert(pDom != NULL); |
4661 | + |
4662 | + double jdAdj, F, alpha, A, B, DOM; |
4663 | + int Z, C, D, E, month, year; |
4664 | + |
4665 | + jdAdj = m_time + 0.5; |
4666 | + Z = (int)jdAdj; // integer part |
4667 | + F = jdAdj - Z; // fractional part |
4668 | + |
4669 | + if(Z < 2299161) |
4670 | + { |
4671 | + A = Z; |
4672 | + } |
4673 | + else |
4674 | + { |
4675 | + alpha = (int)((Z - 1867216.25) / 36524.25); |
4676 | + A = Z + 1 + alpha - (int)(alpha / 4.0); |
4677 | + } |
4678 | + |
4679 | + B = A + 1524.0; |
4680 | + C = (int)((B - 122.1) / 365.25); |
4681 | + D = (int)(C * 365.25); |
4682 | + E = (int)((B - D) / 30.6001); |
4683 | + |
4684 | + DOM = B - D - (int)(E * 30.6001) + F; |
4685 | + month = (E < 13.5) ? (E - 1) : (E - 13); |
4686 | + year = (month > 2.5) ? (C - 4716) : (C - 4715); |
4687 | + |
4688 | + *pYear = year; |
4689 | + *pMonth = month; |
4690 | + *pDom = DOM; |
4691 | +} |
4692 | + |
4693 | + |
4694 | +// @method toThetaGMST(); |
4695 | +// Definition: Calculate Theta Angle at Greenwich Mean Time for the Julian date. The return value |
4696 | +// is the angle, in radians, measuring eastward from the Vernal Equinox to the |
4697 | +// prime meridian. |
4698 | +double gTime::toThetaGMST() const |
4699 | +{ |
4700 | + |
4701 | + double jd, Theta_JD; |
4702 | + double UT = fmod((m_time + 0.5), 1.0); |
4703 | + jd = m_time - UT; |
4704 | + double TU = (jd- JDAY_JAN1_12H_2000) / 36525.0; |
4705 | + |
4706 | + double GMST = 24110.54841 + TU * |
4707 | + (8640184.812866 + TU * (0.093104 - TU * 6.2e-06)); |
4708 | + |
4709 | + GMST = fmod((GMST + KSEC_PER_DAY * OMEGA_E * UT),KSEC_PER_DAY); |
4710 | + Theta_JD=(K2PI * (GMST / KSEC_PER_DAY)); |
4711 | + |
4712 | + if(Theta_JD <0.0) |
4713 | + Theta_JD+=K2PI; |
4714 | + |
4715 | + return Theta_JD; |
4716 | +} |
4717 | + |
4718 | +// @method toThetaLMST(); |
4719 | +// Definition: Calculate Theta Angle at Local Mean Time for the Julian date. |
4720 | +double gTime::toThetaLMST(double longitude) const |
4721 | +{ |
4722 | + return fmod(toThetaGMST() + longitude, K2PI); |
4723 | +} |
4724 | + |
4725 | + |
4726 | + |
4727 | +// Operations |
4728 | +// time math |
4729 | +gTimeSpan gTime::operator-(gTime ai_time) const |
4730 | +{ |
4731 | + return (gTimeSpan((m_time - ai_time.m_time))); |
4732 | +} |
4733 | + |
4734 | +gTime gTime::operator-(gTimeSpan ai_timeSpan) const |
4735 | +{ |
4736 | + return (gTime((m_time - ai_timeSpan.getDblDays()))); |
4737 | +} |
4738 | + |
4739 | +gTime gTime::operator+(gTimeSpan ai_timeSpan) const |
4740 | +{ |
4741 | + return (gTime((m_time + ai_timeSpan.getDblDays()))); |
4742 | +} |
4743 | + |
4744 | +const gTime& gTime::operator+=(gTimeSpan ai_timeSpan) |
4745 | +{ |
4746 | + m_time += ai_timeSpan.getDblDays(); |
4747 | + return (*this); |
4748 | + |
4749 | +} |
4750 | + |
4751 | +const gTime& gTime::operator-=(gTimeSpan ai_timeSpan) |
4752 | +{ |
4753 | + m_time -= ai_timeSpan.getDblDays(); |
4754 | + return (*this); |
4755 | +} |
4756 | + |
4757 | +bool gTime::operator==(gTime ai_time) const |
4758 | +{ |
4759 | + |
4760 | + if(m_time == ai_time.m_time) |
4761 | + return true; |
4762 | + else |
4763 | + return false; |
4764 | +} |
4765 | + |
4766 | +bool gTime::operator!=(gTime ai_time) const |
4767 | +{ |
4768 | + |
4769 | + if(m_time != ai_time.m_time) |
4770 | + return true; |
4771 | + else |
4772 | + return false; |
4773 | +} |
4774 | + |
4775 | +bool gTime::operator<(gTime ai_time) const |
4776 | +{ |
4777 | + |
4778 | + if(m_time < ai_time.m_time) |
4779 | + return true; |
4780 | + else |
4781 | + return false; |
4782 | +} |
4783 | + |
4784 | +bool gTime::operator>(gTime ai_time) const |
4785 | +{ |
4786 | + |
4787 | + if(m_time > ai_time.m_time) |
4788 | + return true; |
4789 | + else |
4790 | + return false; |
4791 | +} |
4792 | + |
4793 | +bool gTime::operator<=(gTime ai_time) const |
4794 | +{ |
4795 | + |
4796 | + if(m_time <= ai_time.m_time) |
4797 | + return true; |
4798 | + else |
4799 | + return false; |
4800 | +} |
4801 | + |
4802 | +bool gTime::operator>=(gTime ai_time) const |
4803 | +{ |
4804 | + |
4805 | + if(m_time >= ai_time.m_time) |
4806 | + return true; |
4807 | + else |
4808 | + return false; |
4809 | +} |
4810 | |
4811 | === added file 'plugins/Satellites/src/gsatellite/gTime.hpp' |
4812 | --- plugins/Satellites/src/gsatellite/gTime.hpp 1970-01-01 00:00:00 +0000 |
4813 | +++ plugins/Satellites/src/gsatellite/gTime.hpp 2010-10-30 00:49:41 +0000 |
4814 | @@ -0,0 +1,329 @@ |
4815 | +/**************************************************************************** |
4816 | + * Name: gTime.hpp |
4817 | + * |
4818 | + * Description: gTime y gTimeSpan classes declaration. |
4819 | + * This classes implement the method and operators to manage |
4820 | + * calculation over dates and timestamps. |
4821 | + * |
4822 | + * |
4823 | + ***************************************************************************/ |
4824 | + |
4825 | +/*************************************************************************** |
4826 | + * Copyright (C) 2006 by J. L. Canales * |
4827 | + * jlcanales@users.sourceforge.net * |
4828 | + * * |
4829 | + * This program is free software; you can redistribute it and/or modify * |
4830 | + * it under the terms of the GNU General Public License as published by * |
4831 | + * the Free Software Foundation; either version 2 of the License, or * |
4832 | + * (at your option) any later version. * |
4833 | + * * |
4834 | + * This program is distributed in the hope that it will be useful, * |
4835 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
4836 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
4837 | + * GNU General Public License for more details. * |
4838 | + * * |
4839 | + * You should have received a copy of the GNU General Public License * |
4840 | + * along with this program; if not, write to the * |
4841 | + * Free Software Foundation, Inc., * |
4842 | + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
4843 | + ***************************************************************************/ |
4844 | + |
4845 | +///////////////////////////////////////////////////////////////////////////// |
4846 | +// gTimeSpan and gTime |
4847 | +#ifndef _GTIME_HPP_ |
4848 | +#define _GTIME_HPP_ 1 |
4849 | + |
4850 | +#include <time.h> |
4851 | +#include <iostream> // for operator<<(), see below |
4852 | + |
4853 | +static const double JDAY_JAN1_00H_1900 = 2415019.5; // Jan 1.0 1900 = Jan 1 1900 00h UTC |
4854 | +static const double JDAY_JAN1_12H_1900 = 2415020.0; // Jan 1.5 1900 = Jan 1 1900 12h UTC |
4855 | +static const double JDAY_JAN1_12H_2000 = 2451545.0; // Jan 1.5 2000 = Jan 1 2000 12h UTC |
4856 | +static const double JDAY_JAN1_00H_1970 = 2440587.5; |
4857 | + |
4858 | +static const double OMEGA_E = 1.002737909350795; // earth rotation per sideral day |
4859 | + |
4860 | +static const int KSEC_PER_MIN = 60; |
4861 | +static const int KSEC_PER_HR = 3600; |
4862 | +static const int KSEC_PER_DAY = 86400; |
4863 | +static const int KMIN_PER_HR = 60; |
4864 | +static const int KMIN_PER_DAY = 1440; |
4865 | +static const int KHR_PER_DAY = 60; |
4866 | + |
4867 | +class gTimeSpan |
4868 | +{ |
4869 | +public: |
4870 | + // Constructors |
4871 | + gTimeSpan(double timeSpanSrc = 0); // timeSpanSrc is mesured in days and fraction of day |
4872 | + gTimeSpan(long lDays, int nHours, int nMins, double nSecs); |
4873 | + |
4874 | + gTimeSpan(const gTimeSpan& timeSpanSrc); |
4875 | + const gTimeSpan& operator=(const gTimeSpan& timeSpanSrc); |
4876 | + |
4877 | + // Equal to time in Julian Days |
4878 | + const gTimeSpan& operator=(const double& timeSpanSrc) |
4879 | + { |
4880 | + m_timeSpan=timeSpanSrc*KSEC_PER_DAY; |
4881 | + return *this; |
4882 | + } |
4883 | + |
4884 | + // Attributes |
4885 | + // extract parts |
4886 | + |
4887 | + //! Operation: getDays() |
4888 | + //! This method returns the integer days number stored in the gTimeSpan object. |
4889 | + //! @return |
4890 | + //! long Total number of days |
4891 | + long getDays() const; |
4892 | + |
4893 | + //! Operation: getHours() |
4894 | + //! This method returns the integer hours number stored in the gTimeSpan object. |
4895 | + //! @return |
4896 | + //! int This is a value between 0 and 23 hours |
4897 | + int getHours() const; |
4898 | + |
4899 | + //! Operation: getMinutes() |
4900 | + //! This method returns the integer Minutes number stored in the gTimeSpan object. |
4901 | + //! @return |
4902 | + //! int This is a value between 0 and 59 minutes. |
4903 | + int getMinutes() const; |
4904 | + |
4905 | + //! Operation: getSeconds() |
4906 | + //! This method returns the integer seconds number stored in the gTimeSpan object. |
4907 | + //! @return |
4908 | + //! int This is a value between 0 and 59 seconds |
4909 | + int getSeconds() const; |
4910 | + |
4911 | + //! Operation: getDblSeconds() |
4912 | + //! This method returns the total seconds number stored in the gTimeSpan |
4913 | + //! object. |
4914 | + //! @return |
4915 | + //! double Total number of seconds in seconds and fraction of second. |
4916 | + double getDblSeconds() const; |
4917 | + |
4918 | + |
4919 | + //! Operation: getDblDays() |
4920 | + //! This method returns the total days number stored in the gTimeSpan |
4921 | + //! object. |
4922 | + //! @return |
4923 | + //! double Total number of days in days and fraction of day. |
4924 | + double getDblDays() const; |
4925 | + // Operations |
4926 | + |
4927 | + ////////////////////////////////////// |
4928 | + // TimeSpan Object Math operations |
4929 | + ////////////////////////////////////// |
4930 | + gTimeSpan operator-(gTimeSpan timeSpan) const; |
4931 | + gTimeSpan operator+(gTimeSpan timeSpan) const; |
4932 | + const gTimeSpan& operator+=(gTimeSpan timeSpan); |
4933 | + const gTimeSpan& operator-=(gTimeSpan timeSpan); |
4934 | + bool operator==(gTimeSpan timeSpan) const; |
4935 | + bool operator!=(gTimeSpan timeSpan) const; |
4936 | + bool operator<(gTimeSpan timeSpan) const; |
4937 | + bool operator>(gTimeSpan timeSpan) const; |
4938 | + bool operator<=(gTimeSpan timeSpan) const; |
4939 | + bool operator>=(gTimeSpan timeSpan) const; |
4940 | + |
4941 | +private: |
4942 | + double m_timeSpan; //time span in julian days |
4943 | + |
4944 | +}; |
4945 | + |
4946 | + |
4947 | + |
4948 | + |
4949 | + |
4950 | +//! @class gTime |
4951 | +//! This class implements time calculations. |
4952 | +//! Time is stored in julian days |
4953 | +//! - Time getting in GMT, Local and Sidereal (earth rotational angle) |
4954 | +//! - Time Math operations. |
4955 | + |
4956 | +class gTime |
4957 | +{ |
4958 | +public: |
4959 | + |
4960 | + // Constructors |
4961 | + gTime(double ai_jDays = 0); |
4962 | + gTime(int year, double day); |
4963 | + gTime(int nYear, int nMonth, int nDay, int nHour, int nMin, double nSec); |
4964 | + gTime(struct tm ai_timestruct); |
4965 | + |
4966 | + // copy constructor |
4967 | + gTime(const gTime& timeSrc); |
4968 | + |
4969 | + ////////////////////////////////////// |
4970 | + // Time Object setting operations |
4971 | + ////////////////////////////////////// |
4972 | + |
4973 | + // Operation setTime |
4974 | + //! @brief Set the time value of the time object to the julian day of |
4975 | + //! year, day. |
4976 | + //! @details |
4977 | + //! References:\n |
4978 | + //! Astronomical Formulae for Calculators.\n |
4979 | + //! Jean Meeus\n |
4980 | + //! Chapter 3: Julian Day and Calendar Date. PG's 23, 24, 25\n |
4981 | + //! @param[in] year date year |
4982 | + //! @param[in] day date day and day fraction. Notice: 1 Jan is day=0 (not 1) |
4983 | + void setTime(int year, double day); |
4984 | + |
4985 | + // Operation operator= |
4986 | + //! @brief overload de = operator to assign time values to he object. |
4987 | + //! @param timeSrc Time to be assigned |
4988 | + //! @return const gTime& Reference to *this object modified after operation |
4989 | + const gTime& operator=(const gTime& timeSrc); |
4990 | + |
4991 | + // Operation operator= |
4992 | + //! @brief overload de = operator to assign time values to he object in |
4993 | + //! time_t (operating system) format. |
4994 | + //! @param[in] t Time to be assigned |
4995 | + //! @return |
4996 | + //! const gTime& Reference to *this object modified after operation |
4997 | + const gTime& operator=(time_t t); |
4998 | + |
4999 | + |
5000 | + // Operation operator= |
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.