icebear.processing

icebear.processing.process

icebear.processing.process.append_level1_hdf5(filename, hour, minute, second, data_flag, doppler, rf_distance, logsnr, noise, spectra, spectra_variance, spectra_median, spectra_clutter_corr, xspectra, xspectra_variance, xspectra_median, xspectra_clutter_corr)[source]

Append spectra and cross-spectra ICEBEAR data to previously created HDF5 file

Parameters
  • filename

  • hour

  • minute

  • second

  • data_flag

  • doppler

  • rf_distance

  • logsnr

  • noise

  • spectra

  • spectra_variance

  • spectra_median

  • spectra_clutter_corr

  • xspectra

  • xspectra_variance

  • xspectra_median

  • xspectra_clutter_corr

Returns

Todo – Make sure everything is put into numpy arrays

icebear.processing.process.create_level1_hdf5(config, filename, year, month, day)[source]

Create a level1 HDF5 formatted file for storage of ICEBEAR spectra and cross-spectra

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

  • filename

Returns

None

Todo

Make sure everything is put into numpy arrays

icebear.processing.process.decx(config, time, data, bcode, channel1, channel2, correction1, correction2)[source]

Performs cross-correlation and decimation for inputed baseline from the radar data

Notes

  • ssmfx CUDA can only handle number_ranges = 2000 exactly. For farther ranges we loop at step size 2000.

  • Currently the rea_vector command is resulting in an error at the end of execution. This oes not appear to affect the output of the script. Issue may be in h5py or digital_rf. This error only appears when using python3

icebear.processing.process.func()[source]

Python wrapper for GPU CUDA code in the libssmf.so file.

Parameters

*

Returns

func (wrapper) – Python function wrapper with inputs identical to wrapped CUDA function in the ssmf.cu file.

Noes:
  • Wrapped function is ssmf.cu is denoted by extern “C” {} tag

  • Inputs are (cufftComplex *meas1, cufftComplex *meas2, cufftComplex *code, cufftComplex *result, size_t measlen, size_t codelen, size_t size, ing avg, ing check)

icebear.processing.process.generate_bcode(filepath)[source]

Uses the pseudo-random code file to generate the binary code for signal matching

todo

Make function able to take any code length and resample at any rate

icebear.processing.process.generate_level1(config)[source]
Parameters

config

icebear.processing.process.ssmf(meas, code, averages, nrang, fdec, codelen)[source]

Formats measured data and CUDA function inputs and calls wrapped function to determine single antenna spectra.

Parameters
  • meas (complex64 np.array) – Antenna voltages loaded from HDF5 with phase and magnitude corrections.

  • code (float32 np.array) – Transmitted psuedo-random code sequence.

  • averages (int) – The number of 0.1 second averages to be performed on the GPU.

  • nrang (int) – Number of range gates being processed. Nominally 2000.

  • fdec (int) – Decimation rate to be used by GPU processing, effects Doppler resolution. Nominally 200.

  • codelen (int) – Length of the transmitted psuedo-random code sequence.

Returns

S (complex64 np.array) – 2D Spectrum output for antenna (Doppler shift x Range).

Notes

  • ssmf.cu could be modified to allow code to be a float32 input. This would reduce memory requirements on the GPU.

  • ‘check’ input of __fmed is 0 which indicates a single antenna is being processed.

icebear.processing.process.ssmfx(meas0, meas1, code, averages, nrang, fdec, codelen)[source]

Formats measured data and CUDA function inputs and calls wrapped function for determining the cross-correlation spectra of selected antenna pair.

Parameters
  • meas0 (complex64 np.array) – First antenna voltages loaded from HDF5 with phase and magnitude corrections.

  • meas1 (complex64 np.array) – Second antenna voltages loaded from HDF5 with phase and magnitude corrections.

  • code (float32 np.array) – Transmitted psuedo-random code sequence.

  • averages (int) – The number of 0.1 second averages to be performed on the GPU.

  • nrang (int) – Number of range gates being processed. Nominally 2000.

  • fdec (int) – Decimation rate to be used by GPU processing, effects Doppler resolution. Nominally 200.

  • codelen (int) – Length of the transmitted psuedo-random code sequence.

Returns

S (complex64 np.array) – 2D Spectrum output for antenna pair (Doppler shift x Range).

Notes

  • ssmf.cu could be modified to allow code to be a float32 input. This would reduce memory requirements on the GPU.

  • ‘check’ input of __fmed is 1 which indicates a pair of antennas is being processed.