icebear.processing¶
icebear.processing.process¶
-
icebear.processing.process.append_level1_hdf5(filename, hour, minute, second, data_flag, doppler_shift, rf_distance, snr_db, noise, spectra, spectra_variance, spectra_noise, spectra_clutter_corr, xspectra, xspectra_variance, xspectra_noise, xspectra_clutter_corr)[source]¶ Append spectra and cross-spectra ICEBEAR data to previously created HDF5 file
- Parameters
filename –
hour –
minute –
second –
data_flag –
doppler_shift –
rf_distance –
snr_db –
noise –
spectra –
spectra_variance –
spectra_noise –
spectra_clutter_corr –
xspectra –
xspectra_variance –
xspectra_noise –
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 –
year –
month –
day –
- 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.
-
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.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.