This repository has been archived by the owner on Aug 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
sylvain-guillet edited this page Jul 4, 2023
·
33 revisions
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
This package is hosted by Nuget here. You can install it in your project with this command :
dotnet add package IO.Astrodynamics
//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