示例#1
0
def n_const_pointing_model(az, el, lat, lon, alt, dwell_time = 0.1):
    '''Model for a n-point beampark with fixed dwell-times.
    
    :param list az: Azimuths in degrees east of north.
    :param list el: Elevations in degrees above horizon.
    :param float lat: Geographical latitude of radar system in decimal degrees  (North+).
    :param float lon: Geographical longitude of radar system in decimal degrees (East+).
    :param float alt: Geographical altitude above geoid surface of radar system in meter.
    :param float dwell_time: Time spent at each azimuth-elevation pair of pointing direction.
    '''
    assert len(az) == len(el), 'Length of az and el lists do not match ({} and {})'.format(len(az), len(el))
    
    n_const_pointing = rs.RadarScan(
        lat = lat,
        lon = lon,
        alt = alt,
        pointing_function = point_n_beampark,
        min_dwell_time=dwell_time,
        name = '%i beampark scan' %(len(az),),
        pointing_coord = 'azel',
    )
    n_const_pointing.keyword_arguments(
        dwell_time = dwell_time,
        az = az,
        el = el,
    )
    n_const_pointing._scan_time = len(az)*dwell_time
    return n_const_pointing
示例#2
0
def n_dyn_dwell_pointing_model(az, el, dwells, lat, lon, alt):
    '''Model for a n-point beampark with variable dwell-times.
    
    :param list az: Azimuths in degrees east of north.
    :param list el: Elevations in degrees above horizon.
    :param list dwells: Times to spend at each azimuth-elevation pair of pointing direction.
    :param float lat: Geographical latitude of radar system in decimal degrees  (North+).
    :param float lon: Geographical longitude of radar system in decimal degrees (East+).
    :param float alt: Geographical altitude above geoid surface of radar system in meter.
    '''
    n_dyn_pointing = rs.RadarScan(
        lat = lat,
        lon = lon,
        alt = alt,
        pointing_function = point_n_dyn_beampark,
        min_dwell_time=np.min(dwells),
        name = 'Dynamic dwell scan',
        pointing_coord = 'azel',
    )
    n_dyn_pointing._scan_time = np.sum(dwells)

    n_dyn_pointing.keyword_arguments(
        dwell_time = dwells,
        az = az,
        el = el,
        scan_time = n_dyn_pointing._scan_time,
    )
    
    return n_dyn_pointing
示例#3
0
def sph_rng_model(lat, lon, alt, min_el = 30, dwell_time = 0.1):
    sph_rng = rs.RadarScan(
        lat = lat,
        lon = lon,
        alt = alt,
        pointing_function = point_sph_rng_scan,
        min_dwell_time = dwell_time,
        name = 'Spherical random scan',
        pointing_coord = 'ned',
    )
    sph_rng.keyword_arguments(
        dwell_time = dwell_time,
        min_el = min_el/180.0*np.pi,
        state = 86246443,
    )
    sph_rng._info_str = 'Dwell time: %.2f s, Minimum elevation=%.2f deg' % (dwell_time, min_el,)
    sph_rng._scan_time = dwell_time*1000.0
    return sph_rng
示例#4
0
def ew_fence_model(lat, lon, alt, min_el = 30, angle_step = 1.0, dwell_time = 0.1):
    ew_fence = rs.RadarScan(
        lat = lat,
        lon = lon,
        alt = alt,
        pointing_function = point_ew_fence_scan,
        min_dwell_time = dwell_time,
        name = 'East west fence scan',
        pointing_coord = 'ned',
    )
    angles = calculate_fence_angles(min_el = min_el, angle_step = angle_step)
    ew_fence.keyword_arguments(
        dwell_time = dwell_time,
        angles = angles,
    )

    ew_fence._scan_time = len(angles)*dwell_time
    ew_fence._info_str = 'Dwell time: %.2f s, Scan time: %.2f s, Minimum elevation=%.2f deg' % (dwell_time, ew_fence._scan_time, min_el,)
    return ew_fence
示例#5
0
def beampark_model(az, el, lat, lon, alt, name="Beampark"):
    '''A beampark model.
    
        :param float az: Azimuth in degrees east of north.
        :param float el: Elevation in degrees above horizon.
        :param float lat: Geographical latitude of radar system in decimal degrees  (North+).
        :param float lon: Geographical longitude of radar system in decimal degrees (East+).
        :param float alt: Geographical altitude above geoid surface of radar system in meter.
    '''
    beampark = rs.RadarScan(
        lat=lat,
        lon=lon,
        alt=alt,
        pointing_function=point_beampark,
        min_dwell_time=10.0,
        name=name,
        pointing_coord='azel'
    )
    beampark.keyword_arguments(
        az = az,
        el = el,
    )
    beampark._info_str = 'Dwell time: Inf, Pointing: azimuth=%.2f deg,elevation=%.2f deg' % (az, el,)
    return beampark