diff --git a/IO.Astrodynamics.Net/IO.Astrodynamics.CLI/IO.Astrodynamics.CLI.csproj b/IO.Astrodynamics.Net/IO.Astrodynamics.CLI/IO.Astrodynamics.CLI.csproj
index b1037b34d..2938cba95 100644
--- a/IO.Astrodynamics.Net/IO.Astrodynamics.CLI/IO.Astrodynamics.CLI.csproj
+++ b/IO.Astrodynamics.Net/IO.Astrodynamics.CLI/IO.Astrodynamics.CLI.csproj
@@ -9,7 +9,7 @@
0.0.1
true
astro
- 0.6.5.0
+ 0.6.5.1
Astrodynamics command line interface
Sylvain Guillet
This CLI allows end user to exploit IO.Astrodynamics framework
diff --git a/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/APITest.cs b/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/APITest.cs
index 05b11450c..3d56f3d83 100644
--- a/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/APITest.cs
+++ b/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/APITest.cs
@@ -392,6 +392,40 @@ public void ReadEphemeris()
TestHelpers.EarthAtJ2000, TestHelpers.MoonAtJ2000,
null, Aberration.LT));
}
+
+ [Fact]
+ public void ReadEphemerisUTC()
+ {
+ var searchWindow = new Window(TimeSystem.Time.CreateUTC(0.0), TimeSystem.Time.CreateUTC(100.0));
+ var res = API.Instance.ReadEphemeris(searchWindow, TestHelpers.EarthAtJ2000, TestHelpers.MoonAtJ2000,
+ Frames.Frame.ICRF, Aberration.LT, TimeSpan.FromSeconds(10.0)).Select(x => x.ToStateVector());
+
+ var stateVectors = res as StateVector[] ?? res.ToArray();
+ Assert.Equal(new Vector3(-291527956.4143643,-266751935.53610146,-76118494.37190592), stateVectors[0].Position,TestHelpers.VectorComparer);
+ Assert.Equal(new Vector3(643.6475664431179,-665.9766990302671,-301.2930723673155), stateVectors[0].Velocity,TestHelpers.VectorComparer);
+ Assert.Equal(PlanetsAndMoons.EARTH.NaifId, stateVectors[0].Observer.NaifId);
+ Assert.Equal(Frames.Frame.ICRF, stateVectors[0].Frame);
+ Assert.Equal(0, stateVectors[0].Epoch.TimeSpanFromJ2000().TotalSeconds,6);
+
+ Assert.Throws(() => API.Instance.ReadEphemeris(searchWindow, null,
+ TestHelpers.MoonAtJ2000,
+ Frames.Frame.ICRF, Aberration.LT, TimeSpan.FromSeconds(10.0)).Select(x => x.ToStateVector()));
+ Assert.Throws(() => API.Instance.ReadEphemeris(searchWindow, TestHelpers.EarthAtJ2000,
+ null,
+ Frames.Frame.ICRF, Aberration.LT, TimeSpan.FromSeconds(10.0)).Select(x => x.ToStateVector()));
+ Assert.Throws(() => API.Instance.ReadEphemeris(searchWindow, TestHelpers.EarthAtJ2000,
+ TestHelpers.MoonAtJ2000,
+ null, Aberration.LT, TimeSpan.FromSeconds(10.0)).Select(x => x.ToStateVector()));
+ Assert.Throws(() => API.Instance.ReadEphemeris(searchWindow.StartDate, null,
+ TestHelpers.MoonAtJ2000,
+ Frames.Frame.ICRF, Aberration.LT));
+ Assert.Throws(() => API.Instance.ReadEphemeris(searchWindow.StartDate,
+ TestHelpers.EarthAtJ2000, null,
+ Frames.Frame.ICRF, Aberration.LT));
+ Assert.Throws(() => API.Instance.ReadEphemeris(searchWindow.StartDate,
+ TestHelpers.EarthAtJ2000, TestHelpers.MoonAtJ2000,
+ null, Aberration.LT));
+ }
[Fact]
public void ReadLongEphemeris()
diff --git a/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/Body/CelestialBodyTests.cs b/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/Body/CelestialBodyTests.cs
index 523dae401..a97a9404c 100644
--- a/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/Body/CelestialBodyTests.cs
+++ b/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/Body/CelestialBodyTests.cs
@@ -159,6 +159,18 @@ public void GetEphemeris()
TestHelpers.Sun, TimeSystem.Time.J2000TDB + TimeSpan.FromDays(1.0), Frames.Frame.ICRF), res.ElementAt(1).ToStateVector(), TestHelpers.StateVectorComparer);
}
+ [Fact]
+ public void GetEphemerisUTC()
+ {
+ var earth = PlanetsAndMoons.EARTH_BODY;
+ var res = earth.GetEphemeris(new Window(TimeSystem.Time.J2000UTC, TimeSpan.FromDays(1.0)), TestHelpers.Sun, Frames.Frame.ICRF, Aberration.None,
+ TimeSpan.FromDays(1.0)).ToArray();
+ Assert.Equal(2, res.Length);
+ Assert.Equal(
+ new StateVector(new Vector3(-29069076368.647408, 132303142494.37561, 57359794320.98976), new Vector3(-29695.854459557304, -5497.347182651618, -2382.9422283991967),
+ TestHelpers.Sun, TimeSystem.Time.J2000UTC + TimeSpan.FromDays(1.0), Frames.Frame.ICRF), res.ElementAt(1).ToStateVector(), TestHelpers.StateVectorComparer);
+ }
+
[Fact]
public void GetEphemerisLT()
{
diff --git a/IO.Astrodynamics.Net/IO.Astrodynamics/API.cs b/IO.Astrodynamics.Net/IO.Astrodynamics/API.cs
index 821059f58..d22b2b488 100644
--- a/IO.Astrodynamics.Net/IO.Astrodynamics/API.cs
+++ b/IO.Astrodynamics.Net/IO.Astrodynamics/API.cs
@@ -649,13 +649,13 @@ public IEnumerable FindLaunchWindows(Maneuver.Launch launch,
{
var start = searchWindow.StartDate + i * messageSize * stepSize;
var end = start + messageSize * stepSize > searchWindow.EndDate ? searchWindow.EndDate : (start + messageSize * stepSize) - stepSize;
- var window = new TimeSystem.Window(start, end);
+ var window = new TimeSystem.Window(start.ToTDB(), end.ToTDB());
var stateVectors = new StateVector[messageSize];
ReadEphemerisProxy(window.Convert(), observer.NaifId, target.NaifId, frame.Name,
aberration.GetDescription(), stepSize.TotalSeconds,
stateVectors);
orbitalParameters.AddRange(stateVectors.Where(x => !string.IsNullOrEmpty(x.Frame)).Select(x =>
- new OrbitalParameters.StateVector(x.Position.Convert(), x.Velocity.Convert(), observer, Time.Create(x.Epoch, TimeFrame.TDBFrame), frame)));
+ new OrbitalParameters.StateVector(x.Position.Convert(), x.Velocity.Convert(), observer, Time.CreateTDB(x.Epoch).ConvertTo(searchWindow.StartDate.Frame), frame)));
}
return orbitalParameters;
diff --git a/IO.Astrodynamics.Net/IO.Astrodynamics/IO.Astrodynamics.nuspec b/IO.Astrodynamics.Net/IO.Astrodynamics/IO.Astrodynamics.nuspec
index ef3e60f2c..1783c75ee 100644
--- a/IO.Astrodynamics.Net/IO.Astrodynamics/IO.Astrodynamics.nuspec
+++ b/IO.Astrodynamics.Net/IO.Astrodynamics/IO.Astrodynamics.nuspec
@@ -4,7 +4,7 @@
IO.Astrodynamics
Sylvain Guillet
Sylvain Guillet
- 6.5.0
+ 6.5.1
Astrodynamics framework
images\dragonfly-dark-trans.png
docs\README.md