Giter Site home page Giter Site logo

go-satellite's Introduction

satellite

import "github.com/joshuaferrara/go-satellite"

Intro

Build Status GoDoc

I decided to port the SGP4 library to GoLang as one of my first projects with the language. I've included a test suite to ensure accuracy.

Usage

Constants

const DEG2RAD float64 = math.Pi / 180.0
const RAD2DEG float64 = 180.0 / math.Pi
const TWOPI float64 = math.Pi * 2.0
const XPDOTP float64 = 1440.0 / (2.0 * math.Pi)

func ECIToLLA

func ECIToLLA(eciCoords Vector3, gmst float64) (altitude, velocity float64, ret LatLong)

Convert Earth Centered Inertial coordinated into equivalent latitude, longitude, altitude and velocity. Reference: http://celestrak.com/columns/v02n03/

func GSTimeFromDate

func GSTimeFromDate(year, mon, day, hr, min, sec int) float64

Calc GST given year, month, day, hour, minute and second

func JDay

func JDay(year, mon, day, hr, min, sec int) float64

Calc julian date given year, month, day, hour, minute and second the julian date is defined by each elapsed day since noon, jan 1, 4713 bc.

func Propagate

func Propagate(sat Satellite, year int, month int, day, hours, minutes, seconds int) (position, velocity Vector3)

Calculates position and velocity vectors for given time

func ThetaG_JD

func ThetaG_JD(jday float64) (ret float64)

Calculate GMST from Julian date. Reference: The 1992 Astronomical Almanac, page B6.

type LatLong

type LatLong struct {
	Latitude, Longitude float64
}

Holds latitude and Longitude in either degrees or radians

func LatLongDeg

func LatLongDeg(rad LatLong) (deg LatLong)

Convert LatLong in radians to LatLong in degrees

type LookAngles

type LookAngles struct {
	Az, El, Rg float64
}

Holds an azimuth, elevation and range

func ECIToLookAngles

func ECIToLookAngles(eciSat Vector3, obsCoords LatLong, obsAlt, jday float64) (lookAngles LookAngles)

Calculate look angles for given satellite position and observer position obsAlt in km Reference: http://celestrak.com/columns/v02n02/

type Satellite

type Satellite struct {
	Line1 string
	Line2 string
}

Struct for holding satellite information during and before propagation

func ParseTLE

func ParseTLE(line1, line2, gravconst string) (sat Satellite)

Parses a two line element dataset into a Satellite struct

func TLEToSat

func TLEToSat(line1, line2 string, gravconst string) Satellite

Converts a two line element data set into a Satellite struct and runs sgp4init

type Vector3

type Vector3 struct {
	X, Y, Z float64
}

Holds X, Y, Z position

func ECIToECEF

func ECIToECEF(eciCoords Vector3, gmst float64) (ecfCoords Vector3)

Convert Earth Centered Intertial coordinates into Earth Cenetered Earth Final coordinates Reference: http://ccar.colorado.edu/ASEN5070/handouts/coordsys.doc

func LLAToECI

func LLAToECI(obsCoords LatLong, alt, jday float64) (eciObs Vector3)

Convert latitude, longitude and altitude into equivalent Earth Centered Intertial coordinates Reference: The 1992 Astronomical Almanac, page K11.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.