You are seeing poliastro blog. If you want to see documentation, the latest version can be found in docs.poliastro.space.

On the move!

By Meuge

Hey, folks! Here's Meuge, your usual host from the last few months.

Johnny

In the last few weeks, we got a little bit of everything, analyzing, coding, and searching for feasible solutions to reach the best result. Therefore, we came up with a new feature in Poliastro's Earth module. The API may change in the future, so be aware by the time you read this. Hence, I bet you might be wondering, what's all the fuzz?

Really?

Well, now you can experiment with the new API to compute the visibility of sensors that are on board of the satellites. The FOV, field of view, the question is about meeting mission goals within the limit of a satellite sensor. Given some parameters about the viewing satellite, the fundamental problem related to calculating the field of view is estimating how much of Earth we can see. So, you are now able to know the angle of the total area that a sensor can observe. That's cool, right? If you want to take a look, see the sensors file 馃槉 But first things first,let's see the magic behind the scenes!

Show me the code!

from poliastro.bodies import Earth
from poliastro.earth.sensors import (
    max_and_min_ground_range,
)
# First we need to define the next parameters 
# To calculate the minimum and maximum values of ground-range angles
R = Earth.R.to(u.km) # Equatorial radius of the attractor
h= 800 * u.km, # Altitude
n_fov = (25 * u.deg).to(u.rad)  # Angle of the total area that a sensor can observe.
n_center = (40 * u.deg).to(u.rad) # Center boresight angle.
螞_max, 螞_min = max_and_min_ground_range(h, n_fov, n_center, R) 
# Please note that the total ground range is the difference between the maximum and minimum ranges

Now imagine that we have the other situation that you know the phase angle, used to specify where the sensor is looking, and you want to figure out the difference in ground-range angles, delta_位, from the 畏_center angle and the latitude, 蠁_tgt, and longitude, 位_tgt, of the target. So we do the next!

from poliastro.bodies import Earth
from poliastro.earth.sensors import (
    max_and_min_ground_range_with_specific_azimuth,
)
# First we need to define the next parameters 
h= 800 * u.km, # Altitude
畏_fov = (25 * u.deg).to(u.rad)  # Angle of the total area that a sensor can observe.
畏_center = (40 * u.deg).to(u.rad) # Center boresight angle.
# The sensor, 尾,  can be aimed in many directions
 = (140 * u.deg).to(u.rad) #phase angle
蠁_nadir = (50 * u.deg).to(u.rad) # Latitude angle of nadir point
位_nadir = (40 * u.deg).to(u.rad) # Longitude angle of nadir point
R = Earth.R.to(u.km) # Equatorial radius of the attractor

delta_位, 蠁_tgt, 位_tgt = max_and_min_ground_range_with_specific_azimuth(
        h, 畏_center, 畏_fov, , 蠁_nadir, 位_nadir, R)

And that's it folks.That would be all for today, and stay safe out there! 馃殌

bye