M_v_lambertian
- ssapy.compute.M_v_lambertian(r_sat, times, radius=1.0, albedo=0.2, sun_Mag=4.8, albedo_earth=0.3, albedo_moon=0.12, plot=False)[source][source]
Calculate the apparent magnitude (M_v) of a satellite due to reflections from the Sun, Earth, and Moon.
This function computes the apparent magnitude of a satellite based on its reflected light from the Sun, Earth, and Moon, using the Lambertian reflection model. It optionally generates plots to visualize the results.
Parameters:
- r_sat(n, 3) numpy.ndarray
Position of the satellite in meters.
- timesTime or array_like
The times corresponding to the satellite and celestial body positions. Used to obtain the positions of the Sun and Moon.
- radiusfloat, optional
Radius of the satellite in meters (default is 1.0 m).
- albedofloat, optional
Albedo of the satellite’s surface, representing its reflectivity (default is 0.20).
- sun_Magfloat, optional
Solar magnitude (apparent magnitude of the Sun) used in magnitude calculations (default is 4.80).
- albedo_earthfloat, optional
Albedo of the Earth, representing its reflectivity (default is 0.30).
- albedo_moonfloat, optional
Albedo of the Moon, representing its reflectivity (default is 0.12).
- plotbool, optional
If True, generates plots to visualize solar phase angle and magnitudes (default is False).
Returns:
- numpy.ndarray
The apparent magnitude (M_v) of the satellite as observed from Earth, considering reflections from the Sun, Earth, and Moon.
Notes:
The function uses a Lambertian reflection model to compute the fraction of sunlight reflected by the satellite, Earth, and Moon.
The apparent magnitude is calculated based on the distances between the satellite, Sun, Earth, and Moon, as well as their respective albedos.
The function generates four subplots if plot is set to True: 1. Solar phase angle of the satellite. 2. Solar magnitude (M_v) of the satellite due to the Sun. 3. Magnitude (M_v) of the satellite due to reflections from the Earth. 4. Magnitude (M_v) of the satellite due to reflections from the Moon.
Example usage:
>>> r_sat = np.array([[1e7, 2e7, 3e7]]) >>> times = Time("2024-01-01") >>> M_v = M_v_lambertian(r_sat, times, plot=True) >>> M_v array([15.63])