environment_setup
¶
Definition of environment settings.
This module contains submodules to define environment settings. It also contains a set of factory functions to use environment settings in a simulation by creating natural and artificial body objects.
Functions¶
|
Function that retrieves the default settings for the given set of input bodies. |
Function that retrieves the default settings for the given set of input bodies, with a limited valid time interval. |
|
|
Function that retrieves the default settings for a single body. |
Function that retrieves the default settings for a single body, with a limited valid time interval. |
|
Function that retrieves the default settings for a single body, and assigns them to another body. |
|
Function that retrieves the default settings for a single body, with a limited valid time interval. |
|
Function that creates an aerodynamic coefficient interface from settings, and adds it to an existing body. |
|
|
Function that creates a System of bodies from associated settings. |
Function that creates a simplified System of bodies. |
|
|
Function that creates an Ephemeris object. |
|
|
|
Function that creates a flight conditions, and adds it to an existing body. |
|
Function that creates a rotation model, and adds it to an existing body. |
|
|
|
Function that creates an engine model (to be used for thrust calculations), and adds it to an existing body. |
Function that creates an engine model (to be used for thrust calculations), and adds it to an existing body. |
- get_default_body_settings(bodies: list[str], base_frame_origin: str = 'SSB', base_frame_orientation: str = 'ECLIPJ2000') tudatpy.kernel.numerical_simulation.environment_setup.BodyListSettings ¶
Function that retrieves the default settings for the given set of input bodies.
Function that retrieves the default settings for the given set of input bodies. Default settings are described in detail here . Note that if a body is provided as input for which default settings do not exist, an exception is thrown. In addition to settings for each separate body, this function returns an object that defines the global frame origin and orientation,
- Parameters:
bodies (list[str]) – List of name of bodies for which default settings are to be retrieved and created.
base_frame_origin (str, default = 'SSB') – Base frame origin of the set of bodies that is to be created. It defaults to the solar system barycenter (SSB), but it can by any of the bodies in bodies_to_create (provided it has an ephemeris defined).
base_frame_orientation (str, default = 'ECLIPJ2000') – Base frame orientation of the set of bodies that is to be created. It can be either ECLIPJ2000 (default) or J2000.
- Returns:
Object containing the settings for the SystemOfBodies that are to be created
- Return type:
- get_default_body_settings_time_limited(bodies: list[str], initial_time: float, final_time: float, base_frame_origin: str = 'SSB', base_frame_orientation: str = 'ECLIPJ2000', time_step: float = 300.0) tudatpy.kernel.numerical_simulation.environment_setup.BodyListSettings ¶
Function that retrieves the default settings for the given set of input bodies, with a limited valid time interval.
Same as
get_default_body_settings()
, but with body settings valid over a limited time interval. This makes the the extraction of states from ephemerides more computationally efficient, at the expense of more RAM usage, and a constrained time interval over which the ephemerides are valid. See this page for more details.- Parameters:
bodies (list[str]) – List of name of bodies for which default settings are to be retrieved and created.
initial_time (float) – Start time from which the environment settings should be created.
final_time (float) – End time up to which the environment settings should be created.
base_frame_origin (str) – Base frame origin of the set of bodies that is to be created.
base_frame_orientation (str) – Base frame orientation of the set of bodies that is to be created.
time_step (float, default = 300.0) – Time step to be used for the tabulated ephemeris.
- Returns:
Object containing the settings for the SystemOfBodies that are to be created
- Return type:
- get_default_single_body_settings(body_name: str, base_frame_orientation: str = 'ECLIPJ2000') tudatpy.kernel.numerical_simulation.environment_setup.BodySettings ¶
Function that retrieves the default settings for a single body.
As
get_default_body_settings()
, but for retrieving default settings of only a single body- Parameters:
- Returns:
Object containing the settings for the bodt that is to be created
- Return type:
- get_default_single_body_settings_time_limited(body_name: str, initial_time: float, final_time: float, base_frame_orientation: str = 'ECLIPJ2000', time_step: float = 300.0) tudatpy.kernel.numerical_simulation.environment_setup.BodySettings ¶
Function that retrieves the default settings for a single body, with a limited valid time interval.
As
get_default_body_settings_time_limited()
, but for retrieving default settings of only a single body- Parameters:
body_name (str) – Name of body for which default settings are to be retrieved and created.
initial_time (float) – Start time from which the environment settings should be created.
final_time (float) – End time up to which the environment settings should be created.
base_frame_orientation (str, default = 'ECLIPJ2000') – Base frame orientation of the body settings. It can be either ECLIPJ2000 (default) or J2000.
time_step (float, default = 300.0) – Time step to be used for the tabulated ephemeris.
- Returns:
Object containing the settings for the bodt that is to be created
- Return type:
- get_default_single_alternate_body_settings(body_name: str, source_body_name: str, base_frame_orientation: str = 'ECLIPJ2000') tudatpy.kernel.numerical_simulation.environment_setup.BodySettings ¶
Function that retrieves the default settings for a single body, and assigns them to another body.
As
get_default_body_settings()
, but for retrieving default settings of only a single body, where the default settings of body with namesource_body_name
are retrieved and assigned to a body with namebody_name
. For instance, ifsource_body_name
is set to “Mars”, and``body_name
is set to “Earth” body name Earth will be created, with all the properties of Mars- Parameters:
body_name (str) – Name of body for which default settings are to be created.
source_body_name (str) – Name of body for which default settings are to be retrieved, and assigned to a body with name
body_name
.base_frame_orientation (str, default = 'ECLIPJ2000') – Base frame orientation of the body settings. It can be either ECLIPJ2000 (default) or J2000.
- Returns:
Object containing the settings for the bodt that is to be created
- Return type:
- get_default_single_body_settings_time_limited(body_name: str, initial_time: float, final_time: float, base_frame_orientation: str = 'ECLIPJ2000', time_step: float = 300.0) tudatpy.kernel.numerical_simulation.environment_setup.BodySettings ¶
Function that retrieves the default settings for a single body, with a limited valid time interval.
As
get_default_body_settings_time_limited()
, but for retrieving default settings of only a single body- Parameters:
body_name (str) – Name of body for which default settings are to be retrieved and created.
initial_time (float) – Start time from which the environment settings should be created.
final_time (float) – End time up to which the environment settings should be created.
base_frame_orientation (str, default = 'ECLIPJ2000') – Base frame orientation of the body settings. It can be either ECLIPJ2000 (default) or J2000.
time_step (float, default = 300.0) – Time step to be used for the tabulated ephemeris.
- Returns:
Object containing the settings for the bodt that is to be created
- Return type:
- add_aerodynamic_coefficient_interface(bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_name: str, coefficient_settings: tudat::simulation_setup::AerodynamicCoefficientSettings) None ¶
Function that creates an aerodynamic coefficient interface from settings, and adds it to an existing body.
This function can be used to add an aerodynamic coefficient interface to an existing body. It requires settings for the aerodynamic coefficients, created using one of the factory functions from the ~tudatpy.numerical_simulation_environment_setup.aerodynamic_coefficient module. This function creates the actual coefficient interface from these settings, and assigns it to the selected body. In addition to the identifier for the body to which it is assigned, this function requires the full
SystemOfBodies
as input, to facilitate inter-body dependencies in the coefficient interface- Parameters:
bodies (SystemOfBodies) – Object defining the physical environment, with all properties of artificial and natural bodies.
body_name (str) – Name of the body to which the aerodynamic coefficients are to be assigned
coefficient_settings (AerodynamicCoefficientSettings) – Settings defining the coefficient interface that is to be created.
- create_system_of_bodies(body_settings: tudatpy.kernel.numerical_simulation.environment_setup.BodyListSettings) tudatpy.kernel.numerical_simulation.environment.SystemOfBodies ¶
Function that creates a System of bodies from associated settings.
Function that creates a System of bodies from associated settings. This function creates the separate
Body
objects and stores them in aSystemOfBodies
object. This object represents the full physical environment in the simulation.- Parameters:
body_settings (BodyListSettings) – Object defining the physical environment, with all properties of artificial and natural bodies.
- Returns:
Object containing the objects for bodies and environment models constituting the physical environment
- Return type:
- create_simplified_system_of_bodies(initial_time: float = 0) tudatpy.kernel.numerical_simulation.environment.SystemOfBodies ¶
Function that creates a simplified System of bodies.
Function that creates a simplified system of bodies. The following bodies are created in this system: the Sun, all planets of the Solar system, and Pluto. All bodies in this system use Gtop ephemerides and point mass gravity. The Earth is setup with a spherical shape model and a simple rotation model. The reference frame used to setup this simplified system of bodies has its origin at the SSB, and has an ECLIPJ2000 orientation.
- Parameters:
initial_time (float, optional, default=0) – Initial system time in seconds since J2000.
- Returns:
Object containing the objects for bodies and environment models constituting the physical environment
- Return type:
- create_body_ephemeris(ephemeris_settings: tudat::simulation_setup::EphemerisSettings, body_name: str) tudatpy.kernel.numerical_simulation.environment.Ephemeris ¶
Function that creates an Ephemeris object.
Function that creates an
Ephemeris
object, but does not associate it with any specific body (e.g., it does not go into the environment, but can be used independently of it)- Parameters:
ephemeris_settings (EphemerisSettings) – Object defining the ephemeris settings.
body_name (str) – Name of body for which the ephemeris is created. Note that this input is only relevant for some ephemeris settings (for instance, a spice ephemeris setting), and it does not imply that the ephemeris object is associated with a Body object of this name.
- Returns:
Ephemeris object, created according to the provided settings
- Return type:
- add_radiation_pressure_interface(bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_name: str, radiation_pressure_settings: tudat::simulation_setup::RadiationPressureInterfaceSettings) None ¶
- add_flight_conditions(bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_name: str, central_body_name: str) None ¶
Function that creates a flight conditions, and adds it to an existing body.
This function can be used to add a
FlightConditions
object to an existing body. Typically, theFlightConditions
are created automatically when they are required (for the calulcation of an aerodynamic acceleration, or the saving of certain dependent variables). However, in some cases it may be useful to manually trigger their creation, which is done through this function. If thecentral_body_name
input denotes a body that is endowed with anAtmosphereModel
, this function automically creates anAtmosphericFlightConditions
object (capable of calculating density, speed of sound, etc.), instead of the more basicFlightConditions
(which is limited to properties such as altitude, latitude, etc.)- Parameters:
bodies (SystemOfBodies) – Object defining the physical environment, with all properties of artificial and natural bodies.
body_name (str) – Name of the body for which the flight conditions are to be created
central_body_name (str) – Name of the cenral body w.r.t. which the flight conditions are to be created (typically, but not necesarilly, the central body of propagation)/
- add_rotation_model(bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_name: str, rotation_model_settings: tudat::simulation_setup::RotationModelSettings) None ¶
Function that creates a rotation model, and adds it to an existing body.
This function can be used to add a
RotationalEphemeris
object to an existing body. Typically, theRotationalEphemeris
is created along with the ~tudatpy.numerical_simulation.environment.Body itself However, in some cases it may be useful to create a rotation model after the Body objects have been created. This function requires settings for the rotation model, created using one of the factory functions from the ~tudatpy.numerical_simulation_environment_setup.rotation_model module. This function creates the actual coefficient interface from these settings, and assigns it to the selected body. In addition to the identifier for the body to which it is assigned, this function requires the fullSystemOfBodies
as input, to facilitate inter-body dependencies in the radiation model- Parameters:
bodies (SystemOfBodies) – Object defining the physical environment, with all properties of artificial and natural bodies.
body_name (str) – Name of the body to which the rotation model is to be assigned
rotation_model_settings – Settings defining the rotation model that is to be created.
- add_mass_properties_model(bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_name: str, mass_property_settings: tudat::simulation_setup::RigidBodyPropertiesSettings) None ¶
- add_engine_model(body_name: str, engine_name: str, thrust_magnitude_settings: tudat::simulation_setup::ThrustMagnitudeSettings, bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_fixed_thrust_direction: numpy.ndarray[numpy.float64[3, 1]] = array([1., 0., 0.])) None ¶
Function that creates an engine model (to be used for thrust calculations), and adds it to an existing body.
Function that creates an engine model (to be used for thrust calculations), and adds it to an existing body. It creates and object of class
EngineModel
, and adds it to an existing body. Properties assigned to this engine model are: * The (constant) direction in body-fixed frame in which the engine is pointing (e.g. the body-fixed thrust direction when the engine is on) * Settings for computing the thrust magnitude (as a function of time and/or other parameters), using a suitable function from the thrust submodule- Parameters:
body_name (str) – Name of the body to which the engine is to be added.
engine_name (str) – Name (e.g. unique identifier) of the engine that is to be added to the body
thrust_magnitude_settings (ThrustMagnitudeSettings) – Settings for computing the thrust magnitude (and specific impulse) as a function of time
bodies (SystemOfBodies) – Object defining the physical environment, with all properties of artificial and natural bodies.
body_fixed_thrust_direction (numpy.ndarray[numpy.float64[3, 1]], default = [1,0,0]) – Unit vector along which the thrust from the engine will point in a body-fixed frame
- add_variable_direction_engine_model(body_name: str, engine_name: str, thrust_magnitude_settings: tudat::simulation_setup::ThrustMagnitudeSettings, bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, body_fixed_thrust_direction_function: Callable[[float], numpy.ndarray[numpy.float64[3, 1]]]) None ¶
Function that creates an engine model (to be used for thrust calculations), and adds it to an existing body.
Same as
add_engine_model()
, but with a time-variable body-fixed thrust direction- Parameters:
body_name (str) – Name of the body to which the engine is to be added.
engine_name (str) – Name (e.g. unique identifier) of the engine that is to be added to the body
thrust_magnitude_settings (ThrustMagnitudeSettings) – Settings for computing the thrust magnitude (and specific impulse) as a function of time
bodies (SystemOfBodies) – Object defining the physical environment, with all properties of artificial and natural bodies.
body_fixed_thrust_direction_function (Callable[[float], numpy.ndarray[numpy.float64[3, 1]]]) – Function returning a unit vector, as a function of time, along which the thrust from the engine will point in a body-fixed frame
Classes¶
Class for defining settings for the creation of a system of bodies. |
|
Class for defining settings for the creation of a single body. |
- class BodyListSettings¶
Class for defining settings for the creation of a system of bodies.
Class for defining settings for the creation of a system of bodies. This object is typically created from default settings, and then adapted to the user’s specific needs.
- add_empty_settings(self: tudatpy.kernel.numerical_simulation.environment_setup.BodyListSettings, body_name: str) None ¶
- add_settings(self: tudatpy.kernel.numerical_simulation.environment_setup.BodyListSettings, settings_to_add: tudatpy.kernel.numerical_simulation.environment_setup.BodySettings, body_name: str) None ¶
- get(self: tudatpy.kernel.numerical_simulation.environment_setup.BodyListSettings, arg0: str) tudatpy.kernel.numerical_simulation.environment_setup.BodySettings ¶
This function extracts a single BodySettings object .
- Parameters:
body_name (str) – Name of the body for which settings are to be retrieved
- property frame_orientation¶
read-only
Definition of the global frame orientation for the bodies
- Type:
- class BodySettings¶
Class for defining settings for the creation of a single body.
Class for defining settings for the creation of a single body, this object is typically stored inside a
BodyListSettings
, object.- property aerodynamic_coefficient_settings¶
Object that defines the settings of the aerodynamic coefficient model that is to be created. A variable of this type is typically assigned by using a factory function from the aerodynamic_coefficients module.
- property atmosphere_settings¶
Object that defines the settings of the atmosphere model that is to be created. Note that wind model settings may be defined inside this object. A variable of this type is typically assigned by using a factory function from the atmosphere module.
- Type:
- property constant_mass¶
Mass that gets assigned to the vehicle. This mass does not automatically define a gravity field model, but is instead used for the calculation of non-conservative forces only. When creating a body with a gravity field, leave this entry empty. NOTE: this option is a shorthand for assigning a mass-only
constant_rigid_body_properties()
tomass_property_settings
, and will be deprecated.- Type:
- property ephemeris_settings¶
Object that defines the settings of the ephemeris model that is to be created. A variable of this type is typically assigned by using a factory function from the ephemeris module.
- Type:
- property gravity_field_settings¶
Object that defines the settings of the gravity field model that is to be created. A variable of this type is typically assigned by using a factory function from the gravity_field module.
- Type:
- property gravity_field_variation_settings¶
List of objects that define the settings of time variations of the gravity field variation models that are to be created. Variables in this list are typically assigned by using a factory function from the ``gravity_field_variations`` module.
- property ground_station_settings¶
No documentation found.
- property radiation_pressure_settings¶
No documentation found.
- property radiation_pressure_target_settings¶
No documentation found.
- property radiation_source_settings¶
No documentation found.
- property rigid_body_settings¶
No documentation found.
- property rotation_model_settings¶
Object that defines the settings of the rotation model that is to be created. A variable of this type is typically assigned by using a factory function from the rotation_model module.
- Type:
- property shape_deformation_settings¶
List of objects that define the settings of time variations of the exterior shape of natural bodies are to be created. Variables in this list are typically assigned by using a factory function from the shape_deformation module.
- Type:
- property shape_settings¶
Object that defines the settings of the shape model that is to be created. A variable of this type is typically assigned by using a factory function from the shape module.
- Type:
- property vehicle_shape_settings¶
Object that defines the settings of an exterior panelled vehicle shape that is to be created. A variable of this type is typically assigned by using a factory function from the vehicle_systems module.
- Type: