During some batch least square orbit determination, I’m getting an error that is somewhat contradictory (pardon my French XD):
org.orekit.errors.OrekitException: pas de paramètres d’activité du soleil disponible le 2022-05-18T21:40:�Z, données disponibles uniquement pour l’intervalle [1998-09-01T00:00:00.000Z, 2041-10-01T00:00:00.000Z]
at org.orekit.models.earth.atmosphere.NRLMSISE00.getDensity(NRLMSISE00.java:1158)
at org.orekit.forces.drag.DragForce.acceleration(DragForce.java:80)
at org.orekit.forces.ForceModel.addContribution(ForceModel.java:109)
at org.orekit.propagation.numerical.NumericalPropagator$Main.computeDerivatives(NumericalPropagator.java:899)
at org.orekit.propagation.integration.AbstractIntegratedPropagator$ConvertedMainStateEquations.computeDerivatives(AbstractIntegratedPropagator.java:758)
at org.hipparchus.ode.ExpandableODE.computeDerivatives(ExpandableODE.java:134)
at org.hipparchus.ode.AbstractIntegrator.computeDerivatives(AbstractIntegrator.java:265)
at org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator.integrate(EmbeddedRungeKuttaIntegrator.java:252)
at org.orekit.propagation.integration.AbstractIntegratedPropagator.integrateDynamics(AbstractIntegratedPropagator.java:477)
at org.orekit.propagation.integration.AbstractIntegratedPropagator.propagate(AbstractIntegratedPropagator.java:408)
at org.orekit.propagation.PropagatorsParallelizer.propagate(PropagatorsParallelizer.java:140)
at org.orekit.estimation.leastsquares.AbstractBatchLSModel.value(AbstractBatchLSModel.java:319)
at org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory$LocalLeastSquaresProblem.evaluate(LeastSquaresFactory.java:440)
at org.orekit.estimation.leastsquares.BatchLSEstimator$TappedLSProblem.evaluate(BatchLSEstimator.java:615)
at org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.optimize(LevenbergMarquardtOptimizer.java:333)
at org.orekit.estimation.leastsquares.BatchLSEstimator.estimate(BatchLSEstimator.java:435)
The date is clearly within the boundaries, so apart from the unrendered character, I do not see any problem. Does that issue look familiar to anyone?
Changing the atmospheric model, I got the following error, which makes more sense (the IOD might be giving a very poor guess of the orbit):
org.orekit.errors.OrekitException: altitude (-2 399 159,584 m) au dessous de la limite autorisée de 120 000 m
at org.orekit.models.earth.atmosphere.DTM2000.getDensity(DTM2000.java:246)
at org.orekit.models.earth.atmosphere.DTM2000.getDensity(DTM2000.java:374)
at org.orekit.forces.drag.DragForce.acceleration(DragForce.java:80)
at org.orekit.forces.ForceModel.addContribution(ForceModel.java:109)
at org.orekit.propagation.numerical.NumericalPropagator$Main.computeDerivatives(NumericalPropagator.java:899)
at org.orekit.propagation.integration.AbstractIntegratedPropagator$ConvertedMainStateEquations.computeDerivatives(AbstractIntegratedPropagator.java:758)
at org.hipparchus.ode.ExpandableODE.computeDerivatives(ExpandableODE.java:134)
at org.hipparchus.ode.AbstractIntegrator.computeDerivatives(AbstractIntegrator.java:265)
at org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator.initializeStep(AdaptiveStepsizeIntegrator.java:226)
at org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator.integrate(EmbeddedRungeKuttaIntegrator.java:226)
at org.orekit.propagation.integration.AbstractIntegratedPropagator.integrateDynamics(AbstractIntegratedPropagator.java:477)
at org.orekit.propagation.integration.AbstractIntegratedPropagator.propagate(AbstractIntegratedPropagator.java:408)
at org.orekit.propagation.PropagatorsParallelizer.propagate(PropagatorsParallelizer.java:140)
at org.orekit.estimation.leastsquares.AbstractBatchLSModel.value(AbstractBatchLSModel.java:319)
at org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory$LocalLeastSquaresProblem.evaluate(LeastSquaresFactory.java:440)
at org.orekit.estimation.leastsquares.BatchLSEstimator$TappedLSProblem.evaluate(BatchLSEstimator.java:615)
at org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.optimize(LevenbergMarquardtOptimizer.java:333)
at org.orekit.estimation.leastsquares.BatchLSEstimator.estimate(BatchLSEstimator.java:435)
Just wanted to bring this thread up because I also got this message today:
JavaError: <super: <class 'JavaError'>, <JavaError object>>
Java stacktrace:
org.orekit.errors.OrekitException: no solar activity available at 2024-09-11T00:01:�Z, data available only in range [2019-01-01T00:00:00.000Z, 2096-10-01T00:00:00.000Z]
at org.orekit.models.earth.atmosphere.NRLMSISE00.getDensity(NRLMSISE00.java:1161)
at org.orekit.forces.drag.DragForce.acceleration(DragForce.java:90)
at org.orekit.forces.ForceModel.addContribution(ForceModel.java:120)
at org.orekit.propagation.numerical.NumericalPropagator$Main.computeDerivatives(NumericalPropagator.java:979)
I checked the weather file and it did indeed list solar activity for 2024/9/11:
And when I removed my measurement values for the first hour of data (20240911T00:00:00.000Z to 20240911T01:00:00.000Z UTC) everything ran fine. I don’t know if I can provide a full test case but I’ll see if I can provide a data file with the measurement data I’m feeding into the LS solver.
Update. I ran the data with a different time frame (i.e. different start and end times that nevertheless included the same area of time where I’m encountering difficulties) and now I’m getting this error.
estimatedParams = lsEstimator.getPropagatorParametersDrivers(True).getDrivers()
lsPropagator = lsEstimator.estimate()[0]
*** orekit.JavaError: <super: <class 'JavaError'>, <JavaError object>>
Java stacktrace:
org.orekit.errors.OrekitException: Infinite value appears during computation of atmospheric density in NRLMSISE00 model
at org.orekit.models.earth.atmosphere.NRLMSISE00$Output.densu(NRLMSISE00.java:2622)
at org.orekit.models.earth.atmosphere.NRLMSISE00$Output.gts7(NRLMSISE00.java:1570)
at org.orekit.models.earth.atmosphere.NRLMSISE00$Output.gtd7(NRLMSISE00.java:1820)
at org.orekit.models.earth.atmosphere.NRLMSISE00$Output.gtd7d(NRLMSISE00.java:1928)
at org.orekit.models.earth.atmosphere.NRLMSISE00.getDensity(NRLMSISE00.java:1181)
at org.orekit.forces.drag.DragForce.acceleration(DragForce.java:90)
at org.orekit.forces.ForceModel.addContribution(ForceModel.java:120)
at org.orekit.propagation.numerical.NumericalPropagator$Main.computeDerivatives(NumericalPropagator.java:979)
which fits in with what serrof said about how the original NRLM error was a misreporting of a zero-altitude error. I’ll double-check the pos/vel data that’s throwing the solver off and see if the values might be odd enough to give me a crazy orbit estimate that flies me into the ground.