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
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
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
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
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