/* Implementing the "Two-line element set (TLE)", a data format encoding orbital elements of Earth-orbiting objects. https://en.wikipedia.org/wiki/Two-line_element_set */ package TLE // TLE defines the lines contained in a Two-Line-Element type TLE struct { TitleLine TitleLine `json:"titleline"` LineOne LineOne `json:"lineone"` LineTwo LineTwo `json:"linetwo"` } func NewTLE(titleLine TitleLine, lineOne LineOne, lineTwo LineTwo) *TLE { return &TLE{TitleLine: titleLine, LineOne: lineOne, LineTwo: lineTwo} } type TitleLine struct { Satname string `json:"satname"` } type LineOne struct { Linenumber int8 `json:"linenumber"` Satellitenumber int `json:"satellitenumber"` Classification rune `json:"classification"` InternationalDesignator InternationalDesignator `json:"internationaldesignator"` Epoch Epoch `json:"epoch"` Firstderiv float64 `json:"firstderiv"` Secondderiv float64 `json:"secondderiv"` BSTAR float64 `json:"BSTAR"` Numberzero int8 `json:"numberzero"` ElementSetNumber int `json:"elementesetnumber"` Checksum int8 `json:"checksum"` } type InternationalDesignator struct { Launchyear int8 `json:"launchyear"` Launchnumber int `json:"launchnumber"` Launchpiece rune `json:"launchpiece"` } type Epoch struct { Year int8 `json:"year"` Dayfraction float64 `json:"dayfraction"` } type LineTwo struct { Linenumber int8 `json:"linenumber"` Satellitenumber int `json:"satellitenumber"` Inclination float64 `json:"inclination"` RightAscensionOfTheAscendingNode float64 `json:"rightascensionoftheascendingnode"` Eccentricity float64 `json:"eccentricity"` ArgumentOfPerigee float64 `json:"argumentofperigee"` MeanAnomaly float64 `json:"meananomaly"` MeanMotion float64 `json:"meanmotion"` RevolutionNumberAtEpoch int `json:"revolutionnumberatepoch"` Checksum int8 `json:"checksum"` }