示例#1
0
def eiscat_uhf():
    uhf_lat = 69.58649229
    uhf_lon = 19.22592538
    uhf_alt = 85.554

    rx_beam = alib.uhf_beam(az0=90.0, el0=75.0, I_0=10**4.81, f=930e6)

    scan = rslib.beampark_model(
        az=90.0,
        el=75.0,
        lat=uhf_lat,
        lon=uhf_lon,
        alt=uhf_alt,
    )

    uhf = antenna.AntennaRX(
        name="UHF Tromso",
        lat=uhf_lat,
        lon=uhf_lon,
        alt=uhf_alt,
        el_thresh=30,
        freq=930e6,
        rx_noise=100,
        beam=rx_beam,
        scan=scan,
        phased=False,
    )

    tx_beam = alib.uhf_beam(az0=90.0, el0=75.0, I_0=10**4.81, f=930e6)

    uhf_tx = antenna.AntennaTX(
        name="UHF Tromso TX",
        lat=uhf_lat,
        lon=uhf_lon,
        alt=uhf_alt,
        el_thresh=30,
        freq=930e6,
        rx_noise=100,
        beam=tx_beam,
        scan=scan,
        tx_power=1.6e6,  # 2 MW?
        tx_bandwidth=1e6,  # 1 MHz
        duty_cycle=0.125,
        n_ipp=10.0,
        ipp=20e-3,
        pulse_length=30.0 * 64.0 * 1e-6,
        phased=False,
    )

    # EISCAT UHF beampark
    tx = [uhf_tx]
    rx = [uhf]

    euhf = RadarSystem(tx, rx, 'Eiscat UHF')
    euhf.set_SNR_limits(14.0, 14.0)
    return euhf
示例#2
0
def eiscat_uhf():
    uhf_lat = 69.34023844
    uhf_lon = 20.313166
    uhf = rc.rx_antenna(
        "UHF Tromso", uhf_lat, uhf_lon, 30, 930e6, 100,
        a.cassegrain_beam(az0=0,
                          el0=90,
                          lat=uhf_lat,
                          lon=uhf_lon,
                          I_0=10**4.3,
                          f=930e6,
                          a0=16.0,
                          a1=4.58 / 2.0))

    uhf_tx = rc.tx_antenna(
        "UHF Tromso TX",
        uhf_lat,
        uhf_lon,
        30,
        930e6,
        100,
        a.cassegrain_beam(0,
                          90,
                          uhf_lat,
                          uhf_lon,
                          I_0=10**4.3,
                          a0=16.0,
                          a1=4.58 / 2.0,
                          f=930e6),
        rslib.beampark_model(az=90.0,
                             el=75.0,
                             lat=uhf_lat,
                             lon=uhf_lon,
                             alt=0.0),
        2e6,  # 2 MW
        1e6,  # 1 MHz
        0.125)  # 12.5% duty-cycle

    # EISCAT UHF beampark
    tx = [uhf_tx]
    rx = [uhf]

    euhf = rc.radar_system(tx, rx, 'Eiscat UHF')
    return euhf
示例#3
0
#initialize the radar setup
e3d = rl.eiscat_uhf()
e3d._min_on_axis=25.0
e3d._min_SNRdb=1.0

e3d._tx[0].enr_thresh = 1.0 #SNR?
e3d._tx[0].el_thresh = 30.0 #deg
for rx in e3d._rx:
	rx.el_thresh =  30.0 #deg
e3d._tx[0].ipp = 10e-3 # pulse spacing
e3d._tx[0].n_ipp = 5 # number of ipps to coherently integrate
e3d._tx[0].pulse_length = 1e-3

#initialize the observing mode
e3d_scan = rslib.beampark_model(az=0.0, el=90.0, alt = 150, dwell_time = 0.1)

e3d_scan.set_radar_location(e3d)
e3d._tx[0].scan = e3d_scan

def pdf(a,e,i,omega,Omega,mu,s):
	pass

#load the input population
pop = p.MC_sample(pdf,num=1e5)

sim = s.simulation( \
	radar = e3d,\
	population = pop,\
	sim_root = sim_root,\
	simulation_name = s.auto_sim_name('BEAMPARK_RHO')
示例#4
0
os.environ['TZ'] = 'GMT'
time.tzset()

####### RUN CONFIG #######
campagin = 0
##########################

if campagin == 0:
    the_date = '_2019_04_02_'
    SIM_TIME = 24.0
    dt = np.datetime64('2019-04-02T12:01')
    mjd = dpt.npdt2mjd(dt)
    scan = rslib.beampark_model(
        lat=radar._tx[0].lat,
        lon=radar._tx[0].lon,
        alt=radar._tx[0].alt,
        az=90.0,
        el=70.0,
    )
elif campagin == 1:
    the_date = '_2019_04_05_'
    SIM_TIME = 5.0
    dt = np.datetime64('2019-04-05T08:01')
    mjd = dpt.npdt2mjd(dt)
    scan = rslib.beampark_model(
        lat=radar._tx[0].lat,
        lon=radar._tx[0].lon,
        alt=radar._tx[0].alt,
        az=90.0,
        el=45.0,
    )
示例#5
0
def eiscat_svalbard():
    """
    The steerable antenna of the ESR radar, default settings for the Space Debris radar mode.
    """
    uhf_lat = 78.15
    uhf_lon = 16.02
    uhf_alt = 0.0

    rx_beam = alib.uhf_beam(
        az0=90.0,
        el0=75.0,
        I_0=10**4.25,
        f=500e6,
    )
    tx_beam = alib.uhf_beam(
        az0=90.0,
        el0=75.0,
        I_0=10**4.25,
        f=500e6,
    )

    scan = rslib.beampark_model(
        az=90.0,
        el=75.0,
        lat=uhf_lat,
        lon=uhf_lon,
        alt=uhf_alt,
    )

    uhf = antenna.AntennaRX(
        name="Steerable Svalbard",
        lat=uhf_lat,
        lon=uhf_lon,
        alt=uhf_alt,
        el_thresh=30,
        freq=500e6,
        rx_noise=120,
        beam=rx_beam,
        phased=False,
        scan=scan,
    )

    uhf_tx = antenna.AntennaTX(
        name="Steerable Svalbard TX",
        lat=uhf_lat,
        lon=uhf_lon,
        alt=uhf_alt,
        el_thresh=30,
        freq=500e6,
        rx_noise=120,
        beam=tx_beam,
        scan=scan,
        tx_power=0.6e6,  # 600 kW
        tx_bandwidth=1e6,  # 1 MHz
        duty_cycle=0.125,
        pulse_length=30.0 * 64.0 * 1e-6,
        ipp=20e-3,
        n_ipp=10.0,
    )

    # EISCAT UHF beampark
    tx = [uhf_tx]
    rx = [uhf]

    euhf = RadarSystem(tx, rx, 'Eiscat Svalbard Steerable Antenna')
    euhf.set_SNR_limits(14.77, 14.77)
    return euhf
示例#6
0
def tromso_space_radar(freq=1.2e9):
    lat = 69.5866115
    lon = 19.221555
    alt = 85.0

    rx_beam = alib.tsr_beam(
        el0=90.0,
        f=freq,
    )

    scan = rslib.beampark_model(
        az=0.0,
        el=90.0,
        lat=lat,
        lon=lon,
        alt=alt,
    )

    tsr_rx = antenna.AntennaRX(
        name="Tromso Space Radar",
        lat=lat,
        lon=lon,
        alt=alt,
        el_thresh=30,
        freq=freq,
        rx_noise=100,
        beam=rx_beam,
        phased=False,
        scan=scan,
    )

    tx_beam = alib.tsr_beam(
        el0=90.0,
        f=freq,
    )

    tsr_tx = antenna.AntennaTX(
        name="Tromso Space Radar TX",
        lat=lat,
        lon=lon,
        alt=alt,
        el_thresh=30,
        freq=freq,
        rx_noise=100,
        beam=tx_beam,
        scan=scan,
        tx_power=500.0e3,
        tx_bandwidth=1e6,
        duty_cycle=0.125,
        n_ipp=10.0,
        ipp=20e-3,
        pulse_length=30.0 * 64.0 * 1e-6,
    )

    # EISCAT UHF beampark
    tx = [tsr_tx]
    rx = [tsr_rx]

    tsr_r = RadarSystem(tx, rx, 'Tromso Space Radar')
    tsr_r.set_SNR_limits(10.0, 10.0)
    return tsr_r
示例#7
0
SCANS.append(SCAN4)

SCAN5 = rs.radar_scan(lat = 69,lon = 19,alt = 150,\
 pointing_function = point_circle_fence, \
 name = 'Circle fence scan', \
 pointing_coord = 'azel')
n_scan5 = 100
SCAN5._function_data['n'] = n_scan5
SCAN5._function_data['az'] = np.linspace(0, 360, num=n_scan5)
SCAN5._function_data['el'] = [50 for i in range(n_scan5)]
SCAN5._scan_time = n_scan5 * SCAN5._function_data['dwell_time']

SCANS.append(SCAN5)

SCAN6 = rslib.beampark_model(69, 19)
SCANS.append(SCAN6)

for SC in SCANS:
    t = np.linspace(0,
                    SC._scan_time,
                    num=np.round(2 * SC._scan_time /
                                 SC._function_data['dwell_time']))

    fig = plt.figure(figsize=(10, 10))
    ax = fig.add_subplot(111, projection='3d')
    ax.view_init(15, 5)
    plothelp.draw_earth_grid(ax)
    plothelp.draw_radar(ax, 69, 19)
    for i in range(len(t)):
        p0, k0 = SC.antenna_pointing(t[i])
示例#8
0
#!/usr/bin/env python
#
# plot eiscat 2018 beampark pointing directions
#
import numpy as np
import matplotlib.pyplot as plt
import time
from mpl_toolkits.mplot3d import Axes3D

import coord
import plothelp

import radar_scans as rs
import radar_scan_library as rslib

uhf = rslib.beampark_model(90.0, 75.0, lat=69.58, lon=19.23)
esr = rslib.beampark_model(90.0, 75.0, lat=78.15, lon=16.02)

scans.append(uhf)
scans.append(esr)

fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111, projection='3d')
ax.view_init(15, 5)
plothelp.draw_earth_grid(ax)

plothelp.draw_radar(ax, 69.58, 19.23, name="UHF", color="red")
plothelp.draw_radar(ax, 78.15, 16.02, name="ESR", color="blue")

p0, k0 = uhf.antenna_pointing(0.0)
p1 = p0 + k0 * 3000e3
示例#9
0
def test_envisat_detection():
    from mpi4py import MPI

    # SORTS imports CORE
    import population_library as plib
    from simulation import Simulation

    #SORTS Libraries
    import radar_library as rlib
    import radar_scan_library as rslib
    import scheduler_library as schlib
    import antenna_library as alib
    import rewardf_library as rflib

    #SORTS functions
    import ccsds_write
    import dpt_tools as dpt

    sim_root = './tests/tmp_test_data/envisat_sim_test'

    radar = rlib.eiscat_uhf()
    radar.set_FOV(max_on_axis=30.0, horizon_elevation=25.0)

    scan = rslib.beampark_model(
        lat=radar._tx[0].lat,
        lon=radar._tx[0].lon,
        alt=radar._tx[0].alt,
        az=90.0,
        el=75.0,
    )
    radar.set_scan(scan)

    #tle files for envisat in 2016-09-05 to 2016-09-07 from space-track.
    TLEs = [
        ('1 27386U 02009A   16249.14961597  .00000004  00000-0  15306-4 0  9994',
         '2 27386  98.2759 299.6736 0001263  83.7600 276.3746 14.37874511760117'
         ),
        ('1 27386U 02009A   16249.42796553  .00000002  00000-0  14411-4 0  9997',
         '2 27386  98.2759 299.9417 0001256  82.8173 277.3156 14.37874515760157'
         ),
        ('1 27386U 02009A   16249.77590267  .00000010  00000-0  17337-4 0  9998',
         '2 27386  98.2757 300.2769 0001253  82.2763 277.8558 14.37874611760201'
         ),
        ('1 27386U 02009A   16250.12384028  .00000006  00000-0  15974-4 0  9995',
         '2 27386  98.2755 300.6121 0001252  82.5872 277.5467 14.37874615760253'
         ),
        ('1 27386U 02009A   16250.75012691  .00000017  00000-0  19645-4 0  9999',
         '2 27386  98.2753 301.2152 0001254  82.1013 278.0311 14.37874790760345'
         ),
    ]

    pop = plib.tle_snapshot(TLEs, sgp4_propagation=True)

    pop['d'] = n.sqrt(4 * 2.3 * 4 / n.pi)
    pop['m'] = 2300.
    pop['C_R'] = 1.0
    pop['C_D'] = 2.3
    pop['A'] = 4 * 2.3

    ccsds_file = './data/uhf_test_data/events/2002-009A-2016-09-06_08:27:08.tdm'

    obs_data = ccsds_write.read_ccsds(ccsds_file)
    jd_obs = dpt.mjd_to_jd(dpt.npdt2mjd(obs_data['date']))

    jd_sort = jd_obs.argsort()
    jd_obs = jd_obs[jd_sort]

    jd_det = jd_obs[0]

    pop.delete([0, 1, 2, 4])  #now just best ID left

    jd_pop = dpt.mjd_to_jd(pop['mjd0'][0])
    tt_obs = (jd_obs - jd_pop) * 3600.0 * 24.0

    sim = Simulation(
        radar=radar,
        population=pop,
        root=sim_root,
        scheduler=schlib.dynamic_scheduler,
    )

    sim.observation_parameters(
        duty_cycle=0.125,
        SST_fraction=1.0,
        tracking_fraction=0.0,
        SST_time_slice=0.2,
    )

    sim.run_observation(jd_obs[-1] - jd_pop + 1.0)

    sim.print_maintenance()
    sim.print_detections()

    sim.set_scheduler_args(logger=sim.logger, )

    sim.run_scheduler()
    sim.print_tracks()

    print(sim.catalogue.tracklets[0]['t'])
    print(jd_obs)

    shutil.rmtree(sim_root)
    assert False
示例#10
0
def beampark_plot():
    scan = rslib.beampark_model(az=0., el=45.0, lat=69., lon=19., alt=150.)
    plot_radar_scan(scan, earth=True)
    plt.show()
示例#11
0
    #tx_beam = alib.planar_beam(az0 = 0.0,el0 = 90.0,lat = 60,lon = 19,f=233e6,I_0=10**4.2,a0=40.0,az1=0,el1=90.0)
    tx_beam = alib.e3d_array_beam_stage1(opt='dense')
    #antenna.plot_gain(tx_beam,res=300,min_el=80.0)

    radar.set_beam('TX', tx_beam )
    #radar.set_beam('RX', alib.planar_beam(az0 = 0.0,el0 = 90.0,lat = 60,lon = 19,f=233e6,I_0=10**4.5,a0=40.0,az1=0,el1=90.0) )
    radar.set_beam('RX', alib.e3d_array_beam() )

    #initialize the observing mode
    #radar_scan = rslib.ns_fence_rng_model(min_el = 30.0, angle_step = 2.0, dwell_time = 0.1)
    
    #az_points = n.arange(0,360,45).tolist() + [0.0];
    #el_points = [90.0-n.arctan(50.0/300.0)*180.0/n.pi, 90.0-n.arctan(n.sqrt(2)*50.0/300.0)*180.0/n.pi]*4+[90.0];
    #radar_scan = rslib.n_const_pointing_model(az_points,el_points,len(az_points),dwell_time = 0.4)
    radar_scan = rslib.beampark_model(az=0.0,el=90.0)

    radar_scan.set_radar_location(radar)
    radar.set_scan(radar_scan)

    obs_par = sch.calculate_observation_params( \
        duty_cycle = 0.25, \
        SST_f = 1.0, \
        tracking_f = 0.0, \
        coher_int_t=0.2)
    sch.configure_radar_to_observation(radar,obs_par,'scan')

    # get all IODs for one object during 24 hours
    o=so.space_object(a=7000,e=0.0,i=72,raan=0,aop=0,mu0=0,C_D=2.3,A=1.0,m=1.0,diam=0.1)
            
    det_times=st.get_passes(o,radar,69*3600.,70*3600.,max_dpos=50.0)
示例#12
0
def mock_radar():

    lat = 90.0
    lon = 0.0
    alt = 0.0

    rx_beam = alib.planar_beam(
        az0=0,
        el0=90,
        I_0=10**4.5,
        f=233e6,
        a0=40,
        az1=0.0,
        el1=90.0,
    )
    tx_beam = alib.planar_beam(
        az0=0,
        el0=90,
        I_0=10**4.5,
        f=233e6,
        a0=40,
        az1=0.0,
        el1=90.0,
    )

    rx = antenna.AntennaRX(
        name="Top",
        lat=lat,
        lon=lon,
        alt=alt,
        el_thresh=30,
        freq=233e6,
        rx_noise=120,
        beam=rx_beam,
    )

    scan = rslib.beampark_model(
        az=0.0,
        el=90.0,
        lat=lat,
        lon=lon,
        alt=alt,
    )

    tx = antenna.AntennaTX(
        name="Top TX",
        lat=lat,
        lon=lon,
        alt=alt,
        el_thresh=30,
        freq=233e6,
        rx_noise=120,
        beam=tx_beam,
        scan=scan,
        tx_power=5.0e6,
        tx_bandwidth=1e6,  # 1 MHz
        duty_cycle=0.25,
        pulse_length=30.0 * 64.0 * 1e-6,
        ipp=20e-3,
        n_ipp=10.0,
    )

    tx = [tx]
    rx = [rx]

    Mock = RadarSystem(tx, rx, 'Mock radar')
    Mock.set_FOV(max_on_axis=90.0, horizon_elevation=0.0)
    return Mock
示例#13
0
def mock_radar_mult():

    lat = [85.0, 89.0, 90.0, 89.0, 85.0]
    lon = [0, 90.0, 0, 270.0, 180]
    alt = 0.0
    tx_l = []
    rx_l = []

    for ind in range(5):
        rx_beam = alib.planar_beam(
            az0=0,
            el0=90,
            I_0=10**4.5,
            f=233e6,
            a0=40,
            az1=0.0,
            el1=90.0,
        )
        rx = antenna.AntennaRX(
            name="Top",
            lat=lat[ind],
            lon=lon[ind],
            alt=alt,
            el_thresh=30,
            freq=233e6,
            rx_noise=120,
            beam=rx_beam,
        )
        rx_l.append(rx)

    lat = [90.0, 87.0]
    lon = [0, 0.0]

    for ind in range(2):
        tx_beam = alib.planar_beam(
            az0=0,
            el0=90,
            I_0=10**4.5,
            f=233e6,
            a0=40,
            az1=0.0,
            el1=90.0,
        )

        scan = rslib.beampark_model(
            az=0.0,
            el=90.0,
            lat=lat[ind],
            lon=lon[ind],
            alt=alt,
        )

        tx = antenna.AntennaTX(
            name="Top TX",
            lat=lat[ind],
            lon=lon[ind],
            alt=alt,
            el_thresh=30,
            freq=233e6,
            rx_noise=120,
            beam=tx_beam,
            scan=scan,
            tx_power=5.0e6,
            tx_bandwidth=1e6,  # 1 MHz
            duty_cycle=0.25,
            pulse_length=30.0 * 64.0 * 1e-6,
            ipp=20e-3,
            n_ipp=10.0,
        )
        tx_l.append(tx)

    Mock = RadarSystem(tx_l, rx_l, 'bIG Mock radar')
    Mock.set_FOV(max_on_axis=90.0, horizon_elevation=0.0)
    return Mock