observations_dependent_variables¶
As is the case with the state propagation (see dependent_variable), you can define any number of so-called dependent variable to be computed along with the observations themselves. These include distances between link ends, angles between link ends, and a variety of other options. These quantities can be useful in understanding the behaviour of e.g. observation noise, tracking geometry or coverage.
The functions in this module are used create objects of type ObservationDependentVariableSettings that contain settings for these observation dependent variables. The main interface with Tudat is that these objects are can be added to ObservationSimulationSettings objects, which are in turn used as input to observation simulation (see observations_simulation_settings). The dependent variable settings can be set in these objects directly using the dependent_variable_settings_list attribute, or by using the add_dependent_variables_to_all(), add_dependent_variables_to_observable() and add_dependent_variables_check_to_observable_for_link_ends() functions (which are functions of convenience to add the same ancillary settings to a set of observation simulation settings)
After observation simulation, the dependent variables can be extracted from the ObservationCollection or SingleObservationSet objects. More details on adding dependent variable settings, and extracting dependent variables, can be found on our user guide.
Functions¶
Function to create a dependent variable for the elevation angle of a station. |
|
Function to create a dependent variable for the azimuth angle of a station. |
|
Function to create a dependent variable for the range between link ends. |
|
Function to create a dependent variable for the body avoidance angle of the link. |
|
Function to create a dependent variable for the minimum distance between the link and a body's center. |
|
Function to create a dependent variable for the minimum distance between the link and a body's limb. |
|
Function to create a dependent variable for the angle of the link with respect to a body's orbital plane. |
|
Function to create a dependent variable for the integration time of an observable. |
|
Function to create a dependent variable for the retransmission delays of an observable. |
|
Function for including dependent variables into all existing observation simulation settings. |
|
Function for including dependent variables into selected existing observation simulation settings. |
|
Function for including dependent variables into selected existing observation simulation settings. |
- elevation_angle_dependent_variable(link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc457f70>, originating_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, originating_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53f3f0>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the elevation angle of a station.
- Parameters:
link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the link end for which the elevation angle is computed.
link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the link end for which the elevation angle is computed.
originating_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the other link end.
originating_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the other link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- azimuth_angle_dependent_variable(link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53f630>, originating_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, originating_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53f6b0>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the azimuth angle of a station.
- Parameters:
link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the link end for which the azimuth angle is computed.
link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the link end for which the azimuth angle is computed.
originating_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the other link end.
originating_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the other link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- target_range_between_link_ends_dependent_variable(start_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, end_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, start_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53fa30>, end_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53fa70>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the range between link ends.
- Parameters:
start_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the starting link end.
end_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the ending link end.
start_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the starting link end.
end_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the ending link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- avoidance_angle_dependent_variable(body_name: str, start_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, end_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, start_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53cf70>, end_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53dcf0>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the body avoidance angle of the link.
- Parameters:
body_name (str) – Name of the body to which the avoidance angle is calculated.
start_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the starting link end.
end_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the ending link end.
start_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the starting link end.
end_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the ending link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- body_center_distance_dependent_variable(body_name: str, start_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, end_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, start_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53fe70>, end_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc53feb0>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the minimum distance between the link and a body’s center.
- Parameters:
body_name (str) – Name of the body to which the distance is calculated.
start_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the starting link end.
end_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the ending link end.
start_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the starting link end.
end_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the ending link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- body_limb_distance_dependent_variable(body_name: str, start_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, end_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, start_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc34c230>, end_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc34c270>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the minimum distance between the link and a body’s limb.
- Parameters:
body_name (str) – Name of the body to which the distance is calculated.
start_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the starting link end.
end_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the ending link end.
start_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the starting link end.
end_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the ending link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- angle_wrt_orbital_plane_dependent_variable(body_name: str, start_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, end_link_end_type: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndType = <LinkEndType.unidentified_link_end: -1>, start_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc34c630>, end_link_end_id: tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId = <tudatpy.kernel.estimation.observable_models_setup.links.LinkEndId object at 0x7fa5cc34c670>, integrated_observation_handling: tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling = <IntegratedObservationPropertyHandling.interval_start: 0>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the angle of the link with respect to a body’s orbital plane.
- Parameters:
body_name (str) – Name of the body defining the orbital plane.
start_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the starting link end.
end_link_end_type (tudatpy.estimation.observable_models_setup.links.LinkEndType, optional) – Type of the ending link end.
start_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the starting link end.
end_link_end_id (tudatpy.estimation.observable_models_setup.links.LinkEndId, optional) – ID of the ending link end.
integrated_observation_handling (tudatpy.estimation.observations_setup.observations_dependent_variables.IntegratedObservationPropertyHandling, optional) – Specifies how to handle the variable for integrated observations.
- Returns:
The dependent variable settings object.
- Return type:
- integration_time_dependent_variable(observable_type: tudatpy.kernel.estimation.observable_models_setup.model_settings.ObservableType = <ObservableType.???: -1>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the integration time of an observable.
- Parameters:
observable_type (tudatpy.estimation.observable_models_setup.model_settings.ObservableType, optional) – Observable type for which to retrieve the integration time.
- Returns:
The dependent variable settings object.
- Return type:
- retransmission_delays_dependent_variable(observable_type: tudatpy.kernel.estimation.observable_models_setup.model_settings.ObservableType = <ObservableType.???: -1>) tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings¶
Function to create a dependent variable for the retransmission delays of an observable.
- Parameters:
observable_type (tudatpy.estimation.observable_models_setup.model_settings.ObservableType, optional) – Observable type for which to retrieve the retransmission delays.
- Returns:
The dependent variable settings object.
- Return type:
- add_dependent_variables_to_all(observation_simulation_settings: list[tudat::simulation_setup::ObservationSimulationSettings<tudat::Time>], dependent_variable_settings: list[tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings], bodies: tudatpy.kernel.dynamics.environment.SystemOfBodies) None¶
Function for including dependent variables into all existing observation simulation settings.
Function for including the computation and reporting of dependent variables into the observation simulation settings of all observables. Note: The associated functionality is not yet mature enough for the end user. Function is exposed for development purposes only.
Modifications are applied to all given
ObservationSimulationSettingsobject(s), matching eachObservationSimulationSettingsobject with the correspondingObservationDependentVariableSettingsentry in the dependent_variable_settings parameter. Note that theObservationSimulationSettingsobjects are modified in-place and thus the function does not return anything.- Parameters:
observation_simulation_settings (List[
ObservationSimulationSettings]) – Observation simulation settings, given by a list of one or more existingObservationSimulationSettingsobjects.dependent_variable_settings (List[
ObservationDependentVariableSettings]) – List of one or moreObservationDependentVariableSettingsobjects, defining the dependent variables to be considered.bodies (
SystemOfBodies) – Object consolidating all bodies and environment models that constitute the physical environment.
- add_dependent_variables_to_observable(observation_simulation_settings: list[tudat::simulation_setup::ObservationSimulationSettings<tudat::Time>], dependent_variable_settings: list[tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings], bodies: tudatpy.kernel.dynamics.environment.SystemOfBodies, observable_type: tudatpy.kernel.estimation.observable_models_setup.model_settings.ObservableType) None¶
Function for including dependent variables into selected existing observation simulation settings.
As
add_dependent_variables_to_all(), except that the function only adds includes the computation and reporting of dependent variables to entries of theobservation_simulation_settingslist that matches the specified observable_type.- Parameters:
observation_simulation_settings (List[
ObservationSimulationSettings]) – Observation simulation settings, given by a list of one or more existingObservationSimulationSettingsobjects.dependent_variable_settings (List[
ObservationDependentVariableSettings]) – List of one or moreObservationDependentVariableSettingsobjects, defining the dependent variables to be considered.bodies (
SystemOfBodies) – Object consolidating all bodies and environment models that constitute the physical environment.observable_type (
tudatpy.estimation.observable_models_setup.model_settings.ObservableType) – Identifies the observable type in the observation simulation settings for which the dependent variables are to be included.
- add_dependent_variables_to_observable_for_link_ends(observation_simulation_settings: list[tudat::simulation_setup::ObservationSimulationSettings<tudat::Time>], dependent_variable_settings: list[tudatpy.kernel.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings], bodies: tudatpy.kernel.dynamics.environment.SystemOfBodies, observable_type: tudatpy.kernel.estimation.observable_models_setup.model_settings.ObservableType, link_ends: tudatpy.kernel.estimation.observable_models_setup.links.LinkDefinition) None¶
Function for including dependent variables into selected existing observation simulation settings.
As
add_dependent_variables_to_all(), except that the function only adds includes the computation and reporting of dependent variables to entries of theobservation_simulation_settingslist that matches the specified observable_type and link_ends.- Parameters:
observation_simulation_settings (List[
ObservationSimulationSettings]) – Observation simulation settings, given by a list of one or more existingObservationSimulationSettingsobjects.dependent_variable_settings (List[
ObservationDependentVariableSettings]) – List of one or moreObservationDependentVariableSettingsobjects, defining the dependent variables to be considered.bodies (
SystemOfBodies) – Object consolidating all bodies and environment models that constitute the physical environment.observable_type (
tudatpy.estimation.observable_models_setup.model_settings.ObservableType) – Identifies the observable type in the observation simulation settings for which the dependent variables are to be included.link_ends (
LinkDefinition) – Identifies the link ends in the observation simulation settings for which the dependent variables are to be included.
Enumerations¶
Enum defining how to handle dependent variables for integrated observations. |
- class IntegratedObservationPropertyHandling¶
Bases:
pybind11_objectEnum defining how to handle dependent variables for integrated observations.
For observables that are integrated over a time interval (like Doppler), this enum specifies at which end of the integration interval the dependent variable should be evaluated.
Members:
interval_start
interval_end
interval_undefined
- IntegratedObservationPropertyHandling.name -> str
Classes¶
Base class for setting observation dependent variables as part of the observation output. |
- class ObservationDependentVariableSettings¶
Bases:
pybind11_objectBase class for setting observation dependent variables as part of the observation output.
Base class for setting observation dependent variables as part of the observation output. The user can create instances of this class via the
elevation_angle_dependent_variable()function. Note: The associated functionality is not yet mature enough for the end user. Class is exposed for development purposes only.Examples
# Code snippet to show the creation of an ObservationDependentVariableSettings object from tudatpy.estimation.observations_setup import observations_dependent_variables from tudatpy.estimation.observable_models_setup import links # Create ObservationDependentVariableSettings object elevation_angle_settings = observations_dependent_variables.elevation_angle_dependent_variable(links.receiver) # Show that this is indeed an ObservationDependentVariableSettings object print(elevation_angle_settings)