pub struct Projection { /* private fields */ }Expand description
Projects satellite grid positions to geographic coordinates and vice versa.
Implementations§
Source§impl Projection
impl Projection
Sourcepub fn nadir(&self, point: Point) -> LatLon
pub fn nadir(&self, point: Point) -> LatLon
Computes the nadir (ground-track) position of a satellite.
For a Walker Delta constellation:
- RAAN of plane x:
x * 360/Ndegrees - True anomaly of satellite y:
y * 360/Mdegrees - Latitude:
arcsin(sin(i) * sin(ν)) - Longitude:
Ω + atan2(cos(i) * sin(ν), cos(ν))
Sourcepub fn satellites_in_geo_aoi<const N: usize>(
&self,
geo_aoi: &GeoAoi,
) -> Vec<Point, N>
pub fn satellites_in_geo_aoi<const N: usize>( &self, geo_aoi: &GeoAoi, ) -> Vec<Point, N>
Returns all satellites whose nadir falls within the geographic AOI.
Sourcepub fn satellite_ecef(&self, point: Point, time_s: f32) -> Ecef
pub fn satellite_ecef(&self, point: Point, time_s: f32) -> Ecef
Computes the ECEF position of a satellite at a given time.
time_s is seconds since epoch (t=0 corresponds to the
constellation snapshot from nadir()). Accounts for
both orbital motion and Earth rotation.
Sourcepub fn find_gateway(
&self,
station: LatLon,
time_s: f32,
min_elevation_deg: f32,
) -> Option<Point>
pub fn find_gateway( &self, station: LatLon, time_s: f32, min_elevation_deg: f32, ) -> Option<Point>
Finds the satellite with the highest elevation angle
above min_elevation_deg from a ground station.
Returns None if no satellite has line-of-sight.
Sourcepub fn geo_to_grid_aoi(&self, geo_aoi: &GeoAoi) -> Option<Aoi>
pub fn geo_to_grid_aoi(&self, geo_aoi: &GeoAoi) -> Option<Aoi>
Converts a geographic AOI to a grid AOI by finding the bounding box of all satellites whose nadir falls within the geographic region.
Auto Trait Implementations§
impl Freeze for Projection
impl RefUnwindSafe for Projection
impl Send for Projection
impl Sync for Projection
impl Unpin for Projection
impl UnsafeUnpin for Projection
impl UnwindSafe for Projection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more