1 /* Copyright 2002-2025 CS GROUP 2 * Licensed to CS GROUP (CS) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * CS licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.orekit.estimation.sequential; 18 19 import org.hipparchus.linear.RealMatrix; 20 import org.hipparchus.linear.RealVector; 21 import org.orekit.estimation.measurements.EstimatedMeasurement; 22 import org.orekit.propagation.SpacecraftState; 23 import org.orekit.time.AbsoluteDate; 24 import org.orekit.utils.ParameterDriversList; 25 26 /** Interface for accessing {@link KalmanEstimator Kalman filter} estimations. 27 * The "physical" term used to characterize the states and matrices is used per opposition to 28 * the "normalized" states and matrices used to perform the computation. 29 * @author Luc Maisonobe 30 * @since 9.2 31 */ 32 public interface KalmanEstimation { 33 34 /** Get the list of estimated orbital parameters. 35 * @return the list of estimated orbital parameters 36 */ 37 ParameterDriversList getEstimatedOrbitalParameters(); 38 39 /** Get the list of estimated propagation parameters. 40 * @return the list of estimated propagation parameters 41 */ 42 ParameterDriversList getEstimatedPropagationParameters(); 43 44 /** Get the list of estimated measurements parameters. 45 * @return the list of estimated measurements parameters 46 */ 47 ParameterDriversList getEstimatedMeasurementsParameters(); 48 49 /** Get the predicted spacecraft states. 50 * @return predicted spacecraft states 51 */ 52 SpacecraftState[] getPredictedSpacecraftStates(); 53 54 /** Get the corrected spacecraft states. 55 * @return corrected spacecraft states 56 */ 57 SpacecraftState[] getCorrectedSpacecraftStates(); 58 59 /** Get the "physical" estimated state (i.e. not normalized) 60 * @return the "physical" estimated state 61 */ 62 RealVector getPhysicalEstimatedState(); 63 64 /** Get the "physical" estimated covariance matrix (i.e. not normalized) 65 * @return the "physical" estimated covariance matrix 66 */ 67 RealMatrix getPhysicalEstimatedCovarianceMatrix(); 68 69 /** Get physical state transition matrix between previous state and estimated (but not yet corrected) state. 70 * @return state transition matrix between previous state and estimated state (but not yet corrected) 71 * (may be null for initial process estimate) 72 * @since 9.3 73 */ 74 RealMatrix getPhysicalStateTransitionMatrix(); 75 76 /** Get the physical Jacobian of the measurement with respect to the state (H matrix). 77 * @return physical Jacobian of the measurement with respect to the state (may be null for initial 78 * process estimate or if the measurement has been ignored) 79 * @since 9.3 80 */ 81 RealMatrix getPhysicalMeasurementJacobian(); 82 83 /** Get the physical innovation covariance matrix. 84 * @return physical innovation covariance matrix (may be null for initial 85 * process estimate or if the measurement has been ignored) 86 * @since 9.3 87 */ 88 RealMatrix getPhysicalInnovationCovarianceMatrix(); 89 90 /** Get the physical Kalman gain matrix. 91 * @return Kalman gain matrix (may be null for initial 92 * process estimate or if the measurement has been ignored) 93 * @since 9.3 94 */ 95 RealMatrix getPhysicalKalmanGain(); 96 97 /** Get the current measurement number. 98 * @return current measurement number 99 */ 100 int getCurrentMeasurementNumber(); 101 102 /** Get the current date. 103 * @return current date 104 */ 105 AbsoluteDate getCurrentDate(); 106 107 /** Get the predicted measurement. 108 * <p> 109 * This estimation has been evaluated on the last predicted orbits 110 * </p> 111 * @return predicted measurement 112 */ 113 EstimatedMeasurement<?> getPredictedMeasurement(); 114 115 /** Get the estimated measurement. 116 * <p> 117 * This estimation has been evaluated on the last corrected orbits 118 * </p> 119 * @return corrected measurement 120 */ 121 EstimatedMeasurement<?> getCorrectedMeasurement(); 122 }