about summary refs log tree commit diff
path: root/README.md
blob: 26621656f79d0279bff63962c18c3e50078cee40 (plain)
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
[![GoDoc](https://godoc.org/git.darknebu.la/Satellite/TLE?status.svg)](https://godoc.org/git.darknebu.la/Satellite/tle) [![Go Report Card](https://goreportcard.com/badge/git.darknebu.la/Satellite/TLE)](https://goreportcard.com/report/git.darknebu.la/Satellite/tle) 
[![Build Status](https://drone.nbg1.emile.space/api/badges/Satellite/tle/status.svg)](https://drone.nbg1.emile.space/Satellite/tle) [Coverage](https://gocover.io/git.darknebu.la/Satellite/tle)

# TLE

Implementing the "Two-line element set (TLE)", a data format encoding orbital elements of Earth-orbiting objects.

[Wikipedia](https://en.wikipedia.org/wiki/Two-line_element_set)
[nasa documentation of the format](https://spaceflight.nasa.gov/realdata/sightings/SSapplications/Post/JavaSSOP/SSOP_Help/tle_def.html)

## Format

(the below tables are copied 1:1 from wikipedia ([from here](https://en.wikipedia.org/wiki/Two-line_element_set)))

### Title line

| Field | Columns | Content | Example |
| ----- | ------- | ------- | ------- |
| 1 | 01-24 | Satellite name | ISS (ZARYA) |

### Line one

| Field | Columns | Content | Example |
| ----- | ------- | ------- | ------- |
| 1  | 01-01 | Line number | `1` |
| 2  | 03–07 | Satellite number  | `25544` |
| 3  | 08–08 | Classification (U=Unclassified)  | `U` |
| 4  | 10–11 | International Designator (Last two digits of launch year)  | `98` |
| 5  | 12–14 | International Designator (Launch number of the year)  | `067` |
| 6  | 15–17 | International Designator (piece of the launch)  | `A` |
| 7  | 19–20 | Epoch Year (last two digits of year)  | `08` |
| 8  | 21–32 | Epoch (day of the year and fractional portion of the day)  | `264.51782528` |
| 9  | 34–43 | First Time Derivative of the Mean Motion divided by two [11]  | `−.00002182` |
| 10 | 45–52 | Second Time Derivative of Mean Motion divided by six (decimal point assumed)  | `00000-0` |
| 11 | 54–61 | BSTAR drag term (decimal point assumed) [11]  | `-11606-4` |
| 12 | 63–63 | The number 0 (originally this should have been "Ephemeris type")  | `0` |
| 13 | 65–68 | Element set number. Incremented when a new TLE is generated for this object.[11]  | `292` |
| 14 | 69–69 | Checksum (modulo 10)  | `7`|

### Line two

| Field | Columns | Content | Example |
| ----- | ------- | ------- | ------- |
| 1  | 01–01 | Line number  | `2` |
| 2  | 03–07 | Satellite number  | `25544` |
| 3  | 09–16 | Inclination (degrees)  | `51.6416` |
| 4  | 18–25 | Right ascension of the ascending node (degrees)  | `247.4627` |
| 5  | 27–33 | Eccentricity (decimal point assumed)  | `0006703` |
| 6  | 35–42 | Argument of perigee (degrees)  | `130.5360` |
| 7  | 44–51 | Mean Anomaly (degrees)  | `325.0288` |
| 8  | 53–63 | Mean Motion (revolutions per day)  | `15.72125391` |
| 9  | 64–68 | Revolution number at epoch (revolutions)  | `56353` |
| 10 | 69–69 | Checksum (modulo 10)  | `7` |

## Tests / Coverage

Run the tests:

```
$ go test -v .
...
```

See the test coverage:

```
$ go test -coverprofile=coverage.out && go tool cover -html=coverage.out
...
```

## Pull requests

Feel free to make one (or more) pull requests!