Main differences between V4.13 and V4.12
De Wiki
PATRIUS V4.13 is a major release adding some new features and correcting some bugs.
New functionalities
- Celestial bodies and barycenters are now differentiated: celestial bodies are representated by the interface CelestialBody and barycenters are representated by the interface CelestialPoint. CelestialBody describes, besides the attributes of CelestialPoint, a GravityModel, an IAUPole and a BodyShape. The EMB and SSB objects are now built as CelestialPoint.
- Add the Ecliptic_J2000 frame, accessible from FramesFactory.getEclipticJ2000(). Every CelestialPoint objects has a Ecliptic_J2000 frame defined in its center.
- Add the G50 frame, accessible from FramesFactory.getG50().
- A celestial body orientation can now be defined with quaternions. This evolution adds the interfaces CelestialBodyOrientation and CelestialBodyIAUOrientation (IAUPole renamed) and the class CelestialBodyTabulatedOrientation.
- Add a generic filter method in the interface EventDetector (already applied for LocalTimeAngleDetector)
- Merge the eclipse and lightning ratio computation between EclipseDetector and SolarRadiationPressure.
- The obliquity and precession model of the Earth (used for the MOD reference frame) has been made configurable through the configuration of reference frames:
- Add the interface MODPrecessionModel and one implementation IAUMODPrecessionModel
- Add getters/setters in the frames configuration
- Add the SurfaceDistanceDetector detector allowing to detect the distance at the surface of a celestial body (ellipsoid, facet body, etc).
- Add the class ThreeAxisEllipsoid allowing to represent a 3-axis ellipsoid. This class extends EllipsoidBodyShape.
- Add the DatePolynomialFunctionInterface#copy(AbsoluteDate newOriginDate) method, allowing to instanciate a new equivalent polynomial function at a different T0 date.
- PotentialCoefficientsReader can now read gravity model sigmas
- New SignalPropagationWrapperDetector allowing to wrap extisting compatible detectors and extract signal emitter and/or receiver dates associated to an event.
- Add new methods in RealMatrix : double getMin(boolean absValue), double getMax(boolean absValue) and RealMatrix getAbs()
- Add new matrix NUMPY_FORMAT format in MatrixUtils + new features
- AngularCorrection extends IParameterizable
- Standard parameters in MeteorologicalConditions are public + a STANDARD pre-build instance is accessible
- FiniteDistanceAngularCorrection : new interface allows characterizing an angular correction when the distance between the observer and the target is finite (to account for parallax correction, for example).
- AstronomicalRefractionModel : new class to represent a troposhere refraction model. The new AstronomicalRefractionModelFactory class facilitate its usage.
- VacuumSignalPropagation : new getEmitterPV & getReceiverPV methods + define the internal enumerate SignalPropagationRole to dissociate the role of transmitter or receiver.
- IntervalMapSearcher : new class allowing to associate objects to date intervals with an optimized cache managment.
- CardanCalculator : new class similar to AzimuthElevationCalculator, describing static computational methods for the Cardan angles.
- ZernikePolynomial : new class to represent a Zernike polynomial
- LightAberrationCorrection : new class replacing StellarAberrationCorrection
Bugs fixes
- LongitudeDetector : the 2pi->0 jump is fixed
- Existing informatic formats for matrix representation in MatrixUtils (JAVA, OCTAVE, SCILAB, NUMPY) now display all the digits
- The use of BSP files for celestial bodies has been made more robust.
- The PyramidalField union calculation is more robust in certain configurations.
- "FieldDescriptor: The printFunction parameter becomes serializable.