mirror of
https://github.com/Lukas0025/YAGS.git
synced 2025-04-10 17:32:17 +01:00
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
from pyorbital.orbital import Orbital
|
|
from datetime import datetime, timedelta
|
|
import time
|
|
|
|
import puller
|
|
|
|
def plan(lat, lon, alt, tle, transmitter, receiver, name, delta = timedelta(seconds=1800), predictH = 24, horizon = 0):
|
|
#prevent plan same obsevation
|
|
last = datetime.utcnow()
|
|
|
|
for ob in puller.watingJobs:
|
|
last = max(ob["start"], last)
|
|
|
|
orb = Orbital(name, line1=tle["line1"], line2=tle["line2"])
|
|
|
|
passes = orb.get_next_passes(
|
|
datetime.utcnow() + delta,
|
|
predictH,
|
|
lon,
|
|
lat,
|
|
alt,
|
|
tol = 0.001,
|
|
horizon = horizon
|
|
)
|
|
|
|
for ob in passes:
|
|
start = ob[0]
|
|
end = ob[1]
|
|
|
|
if start < last:
|
|
print(f"[INFO] alredy planed {name} at {start}")
|
|
continue
|
|
|
|
print(f"[INFO] planed {name} at {start}")
|
|
|
|
puller.plan(transmitter, receiver, start, end)
|
|
|
|
def planAll(location):
|
|
planeble = puller.getPlaneble()
|
|
|
|
for transmitter in planeble:
|
|
plan(
|
|
location["lat"],
|
|
location["lon"],
|
|
location["alt"],
|
|
transmitter["locator"]["tle"],
|
|
transmitter["transmitter"],
|
|
transmitter["receiver"],
|
|
transmitter["name"]
|
|
) |