icebear.imaging

icebear.imaging.image

icebear.imaging.image.append_level2_hdf5(filename, hour, minute, second, doppler_shift, snr_db, rf_distance, azimuth, elevation, azimuth_spread, elevation_spread, area)[source]
Parameters
  • filename

  • hour

  • minute

  • second

  • doppler_shift

  • snr_db

  • rf_distance

  • azimuth

  • elevation

  • azimuth_spread

  • elevation_spread

  • area

icebear.imaging.image.brightness_cutoff(brightness, threshold=0.5)[source]

Given a Brightness array this normalizes then removes noise in the image below a power threshold. The default threshold is 0.5 (3 dB).

Parameters
  • brightness

  • threshold

icebear.imaging.image.calculate_image(visibilities, coeffs)[source]
Parameters
  • visibilities

  • coeffs

icebear.imaging.image.centroid_center(brightness)[source]

Given a Brightness array this returns the centroid as x, y index of the array and the area of the largest blob.

Parameters

brightness

Returns

  • cx

  • cy

  • area

icebear.imaging.image.create_level2_hdf5(config, filename, year, month, day)[source]
Parameters
  • config

  • filename

  • year

  • month

  • day

icebear.imaging.image.frequency_difference_beamform()[source]
icebear.imaging.image.generate_level2(config)[source]
Parameters

config

icebear.imaging.image.max_center(brightness)[source]

Given a Brightness array this returns the x, y index of the array of the brightest point.

Parameters

brightness

Returns

  • cx

  • cy

  • area

icebear.imaging.swht

icebear.imaging.swht.append_coeffs_hdf5(filename, l, coeffs)[source]
icebear.imaging.swht.calculate_coeffs(filename, az, el, ko, r, t, p, lmax=85)[source]

Makes an array containing all the factors that do not change with Visibility values. This array can then be saved to quickly create Brightness values given changing Visibilities. The array is then stored as a HDF5 file.

Parameters
  • filename (string) – Filename and path to the HDF5 file the calculated coefficients are to be appended.

  • az (float np.array) – An array of azimuth angles in radians to calculate coefficients for.

  • el (float np.array) – An array of elevation angles in radians to calculate coefficients for.

  • lmax (int) – The maximum harmonic degree.

  • ko (float) – Radar signal wave number, ko = 2pi/wavelength.

  • r (float np.array) – Radius baseline coordinate divided by wavelength.

  • t (float np.array) – Theta (elevation) baseline coordinate.

  • p (float np.array) – Phi (azimuthal) baseline coordinate.

Returns

None

Notes

  • Maximum harmonic degree is Lmax = 85. Above this scipy crashes.

Todo
  • Add functionality to go to harmonic degrees above lmax = 85.

icebear.imaging.swht.create_coeffs_hdf5(filename, date, array_name, azimuth, elevation, resolution, lmax, wavelength, r, t, p)[source]
icebear.imaging.swht.generate_coeffs(config, azimuth=(0, 360), elevation=(0, 90), resolution=1.0, lmax=85)[source]

Makes an array containing all the factors that do not change with Visibility values. This array can then be saved to quickly create Brightness values given changing Visibilities. The array is then stored as a HDF5 file.

Parameters
  • config (Class Object) – Config class instantiation.

  • azimuth (float np.array) – [start, stop] angles within 0 to 360 degrees.

  • elevation (float np.array) – [start, stop] angles within 0 to 180 degrees.

  • resolution (float) – Angular resolution in degree per pixel.

  • lmax (int) – The maximum harmonic degree.

Returns

None

Notes

The array file must contain: wavelength : float

Radar signal wavelength in meters.

ufloat np.array

East-West baseline coordinate divided by wavelength.

vfloat np.array

North-South baseline coordinate divided by wavelength.

wfloat np.array

Altitude baseline coordinate divided by wavelength.

icebear.imaging.swht.swht_cuda()[source]

Wrapper to implement the spherical wave harmonic transform (Carozzi, 2015) in CUDA.

Parameters
  • visibilities (complex64 np.array) – Data cross-correlation values.

  • coeffs (complex64 np.array) – Array of pre-calculated SWHT coefficients.

Returns

intensity (complex64 np.array) – Array of image domain intensity values.

icebear.imaging.swht.swht_py(visibilities, coeffs)[source]

Apply a spherical wave harmonic transforms (Carozzi, 2015) to the given visibility values using the pre-calculated transform coefficients.

Parameters
  • visibilities (complex64 np.array) – Data cross-correlation values.

  • coeffs (complex64 np.array) – Array of pre-calculated SWHT coefficients.

Returns

intensity (complex64 np.array) – Array of image domain intensity values.

Notes

  • The coeffs is calculated for a specific antenna array pattern and wavelength. The visibilities must be from the matching coeffs.

  • np.matmul method is faster than CUDA for array size less than 10e6.

icebear.imaging.swht.unpackage_factors_hdf5(filename, ind)[source]

factors: Array to be saved into pickle file. filename: Name of the pickle file to store the SWHT Factors array.

icebear.imaging.icebear_3d_linear_mapping

icebear.imaging.icebear_3d_linear_mapping.coherence_calc_gauss(lambda_r, distance, imag_azi, imag_width)[source]
icebear.imaging.icebear_3d_linear_mapping.fit_results(x, spectra_values_antennas, xspectra_values, logsnr_single, coherence_values_calc_gauss, baseline_lengths)[source]
icebear.imaging.icebear_3d_linear_mapping.generate_azimuth_data()[source]
icebear.imaging.icebear_3d_linear_mapping.level2_hdf5_data_write(year, month, day, hours, minutes, seconds, snr_cutoff, averages, data_flag, doppler, range_values, logsnr, azimuth, azimuth_extent, least_squares_fit)[source]
icebear.imaging.icebear_3d_linear_mapping.level2_hdf5_file_write(year, month, day, hours, level1_icebear_file)[source]
icebear.imaging.icebear_3d_linear_mapping.linear_least_square_fit(exp_data, calc_data, weights)[source]