Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.
sylvain-guillet edited this page Jul 4, 2023 · 33 revisions

IO.Astrodynamics.Net

Presentation

IO.Astrodynamics.Net is a .Net astrodynamics framework based on IO.Astrodynamics native library.

It allows .Net developers to call IO.Astrodynamics high level features :

  • Load JPL Spice kernels
  • Compute and convert orbital parameters
    • State vector
    • Two lines elements
    • Equinoctial
    • Keplerian elements
  • Compute and convert coordinates system
    • Equatorial
    • Horizontal
    • Geodetic
  • Frame transformation
    • ICRF
    • Ecliptic
    • Body fixed frames
    • ITRF93 (High accuracy earth fixed frame)
  • Configure spacecraft
    • Clock
    • Fuel tank
    • Engines
    • Instrument
  • Spacecraft propagator
    • Impulsive maneuvers
    • Fuel balance
  • Impulse maneuvers :
    • Apogee height
    • Perigee height
    • Plane alignment
    • Combined maneuver
    • Apsidal alignment
    • Phasing
  • Attitudes
    • Instrument pointing toward an object
    • Nadir
    • Zenith
    • Prograde
    • Retrograde
    • Zenith
  • Surface site on any celestial body
  • Evaluate launch opportunities
  • Use or convert different time referential (TDB, UTC, Local)
  • Get celestial body information based on Naif kernels
  • Find time windows based on distance constraints from spacecraft, celestial body or ground site
  • Find time windows based on occultation constraints from spacecraft, celestial body or ground site
  • Find time windows based on coordinate constraints from spacecraft, celestial body or ground site
  • Find time windows based on illumination constraints from ground site.
  • Find time windows when an object is in instrument field of view.
  • Manipulate kernel files
  • Math tools
    • Vector
    • Matrix
    • Quaternion
    • Lagrange interpolation

Installation

This package is hosted by Nuget here. You can install it in your project with this command :

dotnet add package IO.Astrodynamics

Quick start

//LET'S GO !
//In this example we'll get the moon state vector in ICRF frame relative to the earth without aberration

//Load required kernels for computation
API.Instance.LoadKernels(new DirectoryInfo("/home/spacer/Sources/SDK.Net/IO.Astrodynamics.Tests/Data/SolarSystem"));

//Create moon object
var moon = new CelestialBody(PlanetsAndMoons.MOON.NaifId);

//Get moon ephemeris
var ephemeris = moon.GetEphemeris(DateTimeExtension.J2000, moon.InitialOrbitalParameters.CenterOfMotion, Frame.ICRF, Aberration.None).ToStateVector();

//Display some informations
Console.WriteLine($"Position : {ephemeris.Position.ToString()}");
Console.WriteLine($"Velocity : {ephemeris.Velocity.ToString()}");

//You should have the following result : 
// Position : Vector3 { X = -291608384.6334355, Y = -266716833.39423338, Z = -76102487.09990202 }
// Velocity : Vector3 { X = 643.5313877190328, Y = -666.0876840916304, Z = -301.32570498227307 }

You can find more advanced examples here

Clone this wiki locally