All Projects → joshuaferrara → go-satellite

joshuaferrara / go-satellite

Licence: BSD-2-Clause license
Calculate orbital information of satellites in GoLang.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-satellite

Positional
An elegant and colorful location information app for Android with Compass, Clock, Level, Sun, Moon, Trail Marker and many other features.
Stars: ✭ 72 (+30.91%)
Mutual labels:  position, altitude, longitude
Attitude-Control-Model
Model to simulate the dynamics of the Satellites motion during orbit undergoing passive magnetic control.
Stars: ✭ 21 (-61.82%)
Mutual labels:  satellite, orbital-simulation
SGP.NET
C# SGP4 Satellite Prediction Library. Load satellites from TLEs, convert between coordinate systems and reference frames, observe satellites from ground stations, and more.
Stars: ✭ 15 (-72.73%)
Mutual labels:  satellite, sgp4
Seeker
Accurately Locate Smartphones using Social Engineering
Stars: ✭ 2,772 (+4940%)
Mutual labels:  altitude, longitude
ORBITM
🌏 📡 🌏 📡 ORBITM - Orbit maintenance, propulsion sizing, and life-time estimation of space objects!
Stars: ✭ 28 (-49.09%)
Mutual labels:  satellite, orbital-mechanics
floating-ui
A low-level toolkit to create floating elements. Tooltips, popovers, dropdowns, and more
Stars: ✭ 23,485 (+42600%)
Mutual labels:  position
beihu-geo
地理位置解析服务,可供爬虫使用!供参考学习!
Stars: ✭ 16 (-70.91%)
Mutual labels:  longitude
rdk
🛠 React Component Developer Kit
Stars: ✭ 27 (-50.91%)
Mutual labels:  position
deck.gl-raster
deck.gl layers and WebGL modules for client-side satellite imagery analysis
Stars: ✭ 60 (+9.09%)
Mutual labels:  satellite
rio-pansharpen
pansharpening landsat scenes
Stars: ✭ 42 (-23.64%)
Mutual labels:  satellite
trusat-frontend
The React codebase for space-sustainability tool TruSat
Stars: ✭ 31 (-43.64%)
Mutual labels:  satellite
grib-doctor
Utilities for handling quirks of weather data grib files.
Stars: ✭ 20 (-63.64%)
Mutual labels:  satellite
Velocity
The modern, next-generation Minecraft server proxy.
Stars: ✭ 1,153 (+1996.36%)
Mutual labels:  velocity
ElytraProxy
Really customizable Minecraft proxy server with Auth, AntiBot, etc, based on Velocity. Supports 1.7 - 1.17.1
Stars: ✭ 29 (-47.27%)
Mutual labels:  velocity
PWSat2OBC
Source code of the PW-Sat2 On Board Computer (OBC) software.
Stars: ✭ 53 (-3.64%)
Mutual labels:  satellite
drupal 8 unset html head link
🤖 Module for unset any wrong HTML links (like rel="delete-form", rel="edit-form", etc.) from head on Drupal 8.x websites. This is trust way to grow up position in SERP Google, Yandex, etc.
Stars: ✭ 19 (-65.45%)
Mutual labels:  position
pygac
A python package to read and calibrate NOAA and Metop AVHRR GAC and LAC data
Stars: ✭ 14 (-74.55%)
Mutual labels:  satellite
lightweight-temporal-attention-pytorch
A PyTorch implementation of the Light Temporal Attention Encoder (L-TAE) for satellite image time series. classification
Stars: ✭ 43 (-21.82%)
Mutual labels:  satellite
sgp4
Simplified perturbations models
Stars: ✭ 94 (+70.91%)
Mutual labels:  sgp4
goes2go
Download and process GOES-16 and GOES-17 data from NOAA's archive on AWS using Python.
Stars: ✭ 77 (+40%)
Mutual labels:  satellite

satellite

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

Intro

Go 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 string, gravConst Gravity) (sat Satellite)

Parses a two line element dataset into a Satellite struct

func TLEToSat

func TLEToSat(line1, line2 string, gravConst Gravity) 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.

func NewSpacetrack

func NewSpacetrack(username, password string) *Spacetrack

Initialise a spacetrack API for fetching TLEs

func Spacetrack.GetTLE()

func (s *Spacetrack) GetTLE(catid uint64, ts time.Time, gravConst Gravity) (Satellite, error)

Get an initialized Satellite based on the latest TLE before the given time.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].