File: groundtrack.py

package info (click to toggle)
orbit-predictor 1.15.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 260 kB
  • sloc: python: 1,616; makefile: 3
file content (24 lines) | stat: -rw-r--r-- 777 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class BaseElevationAPI:
    def get_elevation(self, *, longitude, latitude):
        raise NotImplementedError

    def get_ground_point(self, position):
        latitude, longitude, _ = position.position_llh
        return (
            longitude,
            latitude,
            self.get_elevation(longitude=longitude, latitude=latitude),
        )

    def get_groundtrack(self, positions):
        return [self.get_ground_point(position) for position in positions]


class ZeroElevation(BaseElevationAPI):
    def get_elevation(self, *, longitude, latitude):
        return 0.0


def compute_groundtrack(predictor, times, elevation_api=ZeroElevation()):
    positions = [predictor.get_position(time) for time in times]
    return elevation_api.get_groundtrack(positions)