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¶

elevation_angle_dependent_variable(...)

Function to create a dependent variable for the elevation angle of a station.

azimuth_angle_dependent_variable(...)

Function to create a dependent variable for the azimuth angle of a station.

target_range_between_link_ends_dependent_variable(...)

Function to create a dependent variable for the range between link ends.

avoidance_angle_dependent_variable(...)

Function to create a dependent variable for the body avoidance angle of the link.

body_center_distance_dependent_variable(...)

Function to create a dependent variable for the minimum distance between the link and a body's center.

body_limb_distance_dependent_variable(...)

Function to create a dependent variable for the minimum distance between the link and a body's limb.

angle_wrt_orbital_plane_dependent_variable(...)

Function to create a dependent variable for the angle of the link with respect to a body's orbital plane.

integration_time_dependent_variable(...)

Function to create a dependent variable for the integration time of an observable.

retransmission_delays_dependent_variable(...)

Function to create a dependent variable for the retransmission delays of an observable.

add_dependent_variables_to_all(...)

Function for including dependent variables into all existing observation simulation settings.

add_dependent_variables_to_observable(...)

Function for including dependent variables into selected existing observation simulation settings.

add_dependent_variables_to_observable_for_link_ends(...)

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:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

Function to create a dependent variable for the range between link ends.

Parameters:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:
Returns:

The dependent variable settings object.

Return type:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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:

tudatpy.estimation.observations_setup.observations_dependent_variables.ObservationDependentVariableSettings

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 ObservationSimulationSettings object(s), matching each ObservationSimulationSettings object with the corresponding ObservationDependentVariableSettings entry in the dependent_variable_settings parameter. Note that the ObservationSimulationSettings objects are modified in-place and thus the function does not return anything.

Parameters:
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 the observation_simulation_settings list that matches the specified observable_type.

Parameters:

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 the observation_simulation_settings list that matches the specified observable_type and link_ends.

Parameters:

Enumerations¶

IntegratedObservationPropertyHandling

Enum defining how to handle dependent variables for integrated observations.

class IntegratedObservationPropertyHandling¶

Bases: pybind11_object

Enum 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¶

ObservationDependentVariableSettings

Base class for setting observation dependent variables as part of the observation output.

class ObservationDependentVariableSettings¶

Bases: pybind11_object

Base 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)