-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
268 lines (211 loc) · 7.86 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
=== === === CONNECTONOMICON README === === ===
version 20241221.00
!!!!!
If you don't want to read this, please just
take a look at "Important Notes" at line 206.
!!!!!
=== === Description
Connectonomicon is a tool created to assist
with the manual identification of minor planet
observation tracklets.
=== === Requirements
Connectonomicon is a Python 3 script, but it
relies on the Windows console version of
find_orb. However, although it is not
recommended, you can use the native orbit
determination and run it on any OS that
can run Python 3.
Connectonomicon makes use of the following
3rd party Python packages:
numpy (tested with 1.24.2)
spiceypy (tested with 6.0.0)
matplotlib (tested with 3.5.3)
mplcursors (tested with 0.6)
(+ some native Python modules in Python 3.10)
=== === Setting Up
This is likely the most boring part.
1) find_orb (Optional, highly recommended)
It is recommended that you download the console
version of find_orb (fo64.exe) from the
following URL:
https://www.projectpluto.com/fo_usage.htm
(The link that reads 'click here for a
pre-built fo64 for 64-bit Windows'.)
Place find_orb in the same directory as
Connectonomicon.
2) Obtain SPICE kernels
Obtain the following from NAIF:
de440.bsp
naif0012.tls
earth_000101_250316_241218.bpc
pck00011.tpc
https://naif.jpl.nasa.gov/naif/data.html
Place them in a 'data' folder:
data/de440.bsp
data/naif0012.tls
data/earth_000101_250316_241218.bpc
data/pck00011.tpc
3) Obtain observatory data from MPC
Save the following page
https://minorplanetcenter.net/iau/lists/ObsCodes.html
as data/obscodes.txt.
4) Install required Python packages
Using pip is the most common and easiest way.
Go to the command line and use:
pip install numpy
pip install spiceypy
pip install matplotlib
pip install mplcursors
...or, if you need to install specific versions:
pip install numpy==1.24.2
pip install spiceypy==6.0.0
pip install matplotlib==3.5.3
pip install mplcursors==0.6
See this if you are stuck:
https://docs.python.org/3/installing/index.html
Now, you are set!
=== === How to Use
1) Preparing input files
You need two files holding astrometry data in
Obs80 format (MPC's 80-column format). One of
them will hold the known observations of the
object being investigated, while the other will
hold the list of observations you wish to
classify and link. (eg. a part of MPC's ITF file)
You can name the files as you wish.
2) Running the program
Run the script to launch a small GUI screen.
Enter the inputs described below:
Known Observations File: name of the file
holding the observations belonging to the
object currently being investigated.
Potential Observations File: name of the file
holding unlinked astrometric measurements
you wish to classify
Propagation Time: number of days you wish to
simulate the estimated orbit of the
object for, after the final known observation
Max. Measurement Error: max. possible measurement
error for the object's position on the image
when the astrometry was created
Pixel Resolution: Angular resolution of the
electrooptical system through which the
measurements were made (often a CCD cam).
Reference Obscode: The MPC obscode of the
observatory for which you want to plot the
chart. It won't make much difference for
distant objects but may be especially
important for NEOs and is practically a must
for artsats.
Orbit Determination: Orbit determination method.
find_orb is strongly recommended.
Plot Unlikely Observations: It is suggested to
keep this unchecked if the number of your
unlinked observations are too high as it
impacts performance.
3) Run analysis
Click on the button that reads 'RUN' and wait.
The program will inform you of its progress via
console printouts. It should eventually create
an interactive plot.
4) Examine the plot
Use the controls on the plot screen to zoom and
pan the view. Click on individual observations
to see their 80-column formats, and try fitting
orbits with the tracklets that you think may
belong to your object.
== == How Does It Work?
For a slightly more detailed explanation, see
Connectonomicon.pdf.
The Obs80 format uses fixed locations for various
data such as observation time, RA, DEC eg., which
makes it very easy to parse them. The program
internally uses degrees for angles and 'datetime'
objects for times.
If find_orb is used as the orbit determinator:
The file that holds the known observations is
loaded into find_orb, which silently generates
an elements.txt file. In that file is also the
estimated state vectors at some epoch.
Connectonomicon reads it for use in its orbit
propagator.
If native built-in orbit determinator is used:
The first and last observation, along with
another observation towards the middle of the
list is taken. The program initially uses the
Laplace method until it obtains an initial
distance estimate for the object (from the
observer). Then it switches to a modified
Herget method where it gradually nudges the
position and velocity vectors to reduce the
RA-DEC errors as much as possible. The
estimated initial state vector is then used
for orbit propagations.
The orbit propagation simulates the orbit of
the object. The force model includes the Sun
and the planet-moon system barycenters. The
propagator is an 8th order leapfrog-ish method
(Yoshida-type). Non-gravitational perturbations
are not accounted for, because the error one
will get due to the state vector estimation
will easily make non-gravs irrelevant (unless
you are looking at an alien spaceship).
To aid with short-arc estimations, a
straight-line constant-sky-speed estimation
is also done. Based on your max. pixel error
estimations, an area of the sky will be
determined where the next observation may be
found after your given number of propagation
days.
After orbit propagations, the unlinked
observations will be classified according to
their dates, their proximity to the estimated
orbit path, and their magnitudes.
== == Important Notes!
> find_orb handles observation sets with
different temporary codes as different
objects. Try using the same temporary code
for all known observations.
> Orbit propagation errors will increase as
propagation time is increased. Chances are,
if you are interested in tracklet IDing,
you don't need me to tell you this.
> If the object's magnitude changes rapidly,
actual observations of the object may get
filtered out. Mark 'Plot Unlikely
Observations' while working with such
objects.
> The native orbit determination algorithm
is experimental!
== == Contact
Contact the author via email, or open an issue on
Connectonomicon GitHub repository. You can
contact for bug reports, fixes, feature requests,
or to say hi.
I do astronomy in my free time, so I might take
a bit to reply back.
a r d a g u l e r 0 9 (gmail)
arda-guler (GitHub)
== == Connectonomicon License
Connectonomicon
Copyright (C) 2024 H. A. Guler
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see
<https://www.gnu.org/licenses/>.
== == Acknowledgements
Connectonomicon makes use of find_orb orbit
determination software by Bill Gray. (Thanks!)
https://www.projectpluto.com/find_orb.htm
Connectonomicon uses SPICE kernels provided by
NAIF as part of its orbit propagation scheme:
https://naif.jpl.nasa.gov/naif/credit.html
You should have received neither find_orb
nor any SPICE kernels with Connectonomicon.