Starting exampleΒΆ

Out:

a    : 7.2000e+06   x : -1.2919e+06
e    : 5.0000e-02   y : 2.4776e+06
i    : 7.5000e+01   z : 6.4974e+06
omega: 0.0000e+00   vx: -2.0314e+03
Omega: 7.9000e+01   vy: -6.8229e+03
anom : 7.2000e+01   vz: 2.5835e+03
Pass Station [0, 0] | Rise 0:00:01.278393 (3.3 min) 0:03:21.986139 Fall
Pass Station [0, 0] | Rise 1:42:09.895816 (4.8 min) 1:46:56.255912 Fall
Pass Station [0, 0] | Rise 3:26:18.682207 (4.8 min) 3:31:05.042303 Fall
Pass Station [0, 0] | Rise 5:09:51.673586 (5.9 min) 5:15:44.510134 Fall
Pass Station [0, 0] | Rise 6:53:13.159426 (6.2 min) 6:59:23.893479 Fall
Pass Station [0, 0] | Rise 23:39:43.179954 (5.0 min) 23:44:43.602377 Fall
Pass Station [0, 1] | Rise 0:00:01.278393 (3.3 min) 0:03:20.707746 Fall
Pass Station [0, 1] | Rise 1:42:26.514928 (4.4 min) 1:46:52.420732 Fall
Pass Station [0, 1] | Rise 3:26:42.971679 (4.4 min) 3:31:05.042303 Fall
Pass Station [0, 1] | Rise 5:10:10.849486 (5.6 min) 5:15:44.510134 Fall
Pass Station [0, 1] | Rise 6:53:33.613719 (5.8 min) 6:59:23.893479 Fall
Pass Station [0, 1] | Rise 23:39:43.179954 (5.0 min) 23:44:42.323984 Fall
Pass Station [0, 2] | Rise 0:00:01.278393 (3.0 min) 0:03:04.088633 Fall
Pass Station [0, 2] | Rise 1:42:09.895816 (4.4 min) 1:46:34.523226 Fall
Pass Station [0, 2] | Rise 3:26:34.022926 (4.2 min) 3:30:44.588011 Fall
Pass Station [0, 2] | Rise 5:10:05.735912 (5.6 min) 5:15:44.510134 Fall
Pass Station [0, 2] | Rise 6:53:23.386572 (6.0 min) 6:59:23.893479 Fall
Pass Station [0, 2] | Rise 23:39:43.179954 (4.7 min) 23:44:25.704871 Fall

import numpy as np
import pyorb

import sorts
from sorts.propagator import SGP4

eiscat3d = sorts.radars.eiscat3d

prop = SGP4(
    settings = dict(
        out_frame='ITRS',
    ),
)

orb = pyorb.Orbit(
    M0 = pyorb.M_earth,
    direct_update=True,
    auto_update=True,
    degrees=True,
    a=7200e3,
    e=0.05,
    i=75,
    omega=0,
    Omega=79,
    anom=72,
    epoch=53005.0,
)
print(orb)

t = sorts.equidistant_sampling(
    orbit = orb,
    start_t = 0,
    end_t = 3600*24*1,
    max_dpos=1e4,
)

states = prop.propagate(t, orb.cartesian[:,0], orb.epoch)

passes = eiscat3d.find_passes(t, states)

for txi in range(len(eiscat3d.tx)):
    for rxi in range(len(eiscat3d.rx)):
        for ps in passes[txi][rxi]: print(ps)

Total running time of the script: ( 0 minutes 0.653 seconds)

Gallery generated by Sphinx-Gallery