minrcs
Module to compute PCL minimum detectable rcs for a given bistatic pair (rx,tx) and target positions.
- minrcs.calculate_min_rcs_los_single_pos(tgt_x, tgt_y, tgt_z, los_height_rx, los_height_tx, Rx, Tx, tx_horiz_diagr_att_interp, rx_horiz_diagr_att_interp, interpol_atten_in_advance, snr_const, snr_thresh, atten_db_km, dist_delay_limit, static_rcs, radioprop_enabled, total_splat_loss)
Calculates rcs for one single target position, is called by calculate_min_rcs_with_los
- minrcs.calculate_min_rcs_with_los(snr_thresh, use_grid, points_x, points_y, points_z, t_max, los_height_rx_grid, los_height_tx_grid, rx_in, tx_in, delay_thresh, static_rcs, radioprop_enabled, radioprop_params, input_splat_loss=0, splat_obj=None)
function calculates the minimal rcs detectable given the target position if there is LOS between Tx-tgt and Rx-tgt and if the delay of the echo of the target is above the threshold and some other criteria.
- minrcs.calculate_min_rcs_without_los_single_pos(tgt_x, tgt_y, tgt_z, Rx, Tx, tx_horiz_diagr_att_interp, rx_horiz_diagr_att_interp, interpol_atten_in_advance, snr_const_splat, snr_thresh, atten_db_km, dist_delay_limit, static_rcs, total_splat_loss)
Calculates min_rcs and snr for one single target position,
- minrcs.find_attenuation_for_angle(angle_bearing, atten_diagr_interp, angle_step, _)
Finds the attenuation of a Tx or a Rx represented by its attenuation diagram for a specific angle. The angle_bearing is such that 0rad represents north whereas the first entry of the atten_diagr represents 0rad north, or pi/2. - angle_bearing [rad] - if interpol_atten==1, will interpolate the attenuation matrix to the correct value
todo: interpol_atten_in_advance ignored
- minrcs.get_mainlobe_heading(horiz_diagr)
computes the heading of mainlobe.
- minrcs.get_vertical_attenuation(theta_bearing, theta_vert, has_vert_diagr_att, phi_h_max_bear, phi_v_max, vert_diagr_att, vert_angles)
Computes vertical attenuation as minimal depending on direction of main lobe. for different azimuths the vertical attenuation will be different.
- minrcs.get_vertical_attenuation_easy_interpol(theta_vert, has_vert_diagr_att, vert_diagr_att, vert_angles)
computes vertical attentuation (simple variant): vertical attenuation is considered the same for all azimuthal directions
- minrcs.interpolate_attenuation(atten_diagr, new_interpol_angles)
This function will interpolate the attenuation diagram by a set of new interpolation angles. Computationally efficient as interpolation all the angles in advance is carried out, instead of interpolating for every target position.
- minrcs.query_bistatic_pairwise_los(tgt_z, los_height_tx, los_height_rx, Rx, Tx, tgt_x, tgt_y)
returns true/false for tg-tgt and rx-tgt LoS
!= -999 needed to check if target Route - only array with ‘1’ or ‘-1’ as LOS
- minrcs.setup_vertical_attenuation(tx_or_rx, _, tx_or_rx_horiz_diagr_att_interp)
Function to configure vertical attenuation. elevation angle defined such that 0rad denotes the horizontal plane, pi/2 rad points upwards and -pi/2 rad points downwards has to be called after interpolation of horiz_diagr (needs np.array)
- minrcs.vertic_att_half_wave_dipole(theta)
This function calculates the vertical attenuation of a half-wave dipole antenna theta being elevation angle in rad (0rad == horizontal plane)