radfunctions

Active monostatic radar probability of detection (pd) computation from SNR. Python implementation of the thesis Matlab code from: “A MATLAB Radar Range Equation and Probability of Detection Evaluation Tool” Barry Scheiner Army Research Laboratory 1999 https://apps.dtic.mil/sti/pdfs/ADA360040.pdf

radfunctions.dbm2si(dbm_val)

returns si from dBm

radfunctions.get_detection_latlon_matrix(power, antenna_diam, freq, pulse_width, cpi_pulses, bandwidth, pfa, rcs, mpi_los_arr, mpi_prop_loss_arr, mpi_free_loss_arr, mpi_dist_arr, dest_lat_arr, dest_lon_arr, max_distance, queue, rad_id, radar_lat, radar_lon, theta_res, dist_step, snd_msg, flight_height, radar_z, radar_z_offset, origin, max_elev_deg, theta_arr)

returns detection lat/lon when propagtion is enabled should append to send message 0.0 or 1.0 at lat,lon: snd_msg = np.append(snd_msg, [lat, lon, 0.0]) depending on coverage given or not

radfunctions.get_rad_pd(power, antenna_diam, freq, pulse_width, cpi_pulses, bandwidth, pfa, rcs, dist, max_distance, rad_lat, rad_lon, rad_height, tgt_lat, tgt_lon, tgt_height, splat_obj)

computes pd from given radar parameters

radfunctions.marcum_q_fn(v)

integrand function to evaluate the Marcum Q function that provides the probability of detection for a single pulse out of a quadrature detector.

radfunctions.pet_eq_max_dist(erp_dbm, threshold_dbm, freq)

returns max distance in kms for detection using a pet sensor with sensitivity: threshold_dbm for a given emitter at freq (MHz) with erp in erp_dbm. see pet detection formula on picture on the PET folder

radfunctions.pet_get_max_dist_with_ant_diag(v_alpha, h_alpha, erp_dbm, threshold_dbm, freq, h_antenna_diagramm, v_antenna_diagramm, main_beam_azimuth, main_beam_elevation)

! returns max distance in kms for detection using a pet sensor with sensitivity: threshold_dbm for a given emitter at freq with erp in erp_dbm but also using the sensor_pos, h and v angles in direction of target_pos and antenna diagramms. antenna diagramms should be given for each angle (0 to 360 for H and V) in units of dBi as antenna gains. for H 0 means north looking and then clockwise for V 0 means horizontal looking and then clockwise towards the sky (i.e. 90 means looking straight up, 270 straight down ). erp_dbm is the max erp in the main beam. v_alpha and h_alpha: are vertical and horizontal degrees

radfunctions.radar_detection_given(power, antenna_diam, freq, pulse_width, cpi_pulses, bandwidth, pfa, rcs, one_way_pure_prop_loss, dist, max_distance)

! this function will return True if detection is given for the given values else False

radfunctions.radar_detection_given_with_splat(justlos, trans_pwr, antenna_diam, frequency, pulse_width, cpi_pulses, bandwidth, pfa, rcs_sm, tgt_rad_dist, max_distance, los_ok, prop_loss, free_space_loss, fresnel_free)

returns pd given the radar parameters and the target rcs and the distance [m] between radar and target. if one_way_pure_prop_loss_db is given: we do not compute prop loss in both directions (Rad->Tgt and Tgt->Rad, instead we assume the prop loss is the same in both directions)

This uses the results from splat computation to determine the radar detection: used for LIVE detection and by coverage computation with prop model. justlos should be always 0, then we always want to consider splat! for propagation losses

radfunctions.radar_eq_max_dist(trans_pwr, antenna_diam, frequency, pulse_width, cpi_pulses, bandwidth, pfa, rcsSM)

! returns maximal distance given the radar parameters and the target rcs. MAX RANGE IS SET TO 400kms, due to the HARD LIMIT in SPLAT! (see MAXPAFES in splatBurst.h)

radfunctions.radar_eq_pd(trans_pwr, antenna_diam, frequency, pulse_width, cpi_pulses, bandwidth, pfa, rcs_sm, tgt_rad_dist, one_way_pure_prop_loss_db=0)

! returns pd given the radar parameters and the target rcs and the distance [m] between radar and target. if one_way_pure_prop_loss_db is given: we do not compute prop loss in both directions (Rad->Tgt and Tgt->Rad, instead we assume the prop loss is the same in both directions)