iqdat_mapping

IQDAT SDARN FIELDS

This conversion is done in pyDARNio here in the __convert_bfiq_record method: Link to Source

SDARN DMAP FIELD NAME
type
SDARN description

Borealis Conversion

radar.revision.major
char
Major version number
borealis_git_hash major version number
or 255 if not a commit with a version tag

radar.revision.minor
char
Minor version number
borealis_git_hash minor version number
or 255 if not a commit with a version tag

origin.code
char
Code indicating origin of data
= 100, this can be used as a flag that the
origin code was Borealis

origin.time
string
ASCII representation of when
the data was generated
timestamp_of_write conversion



origin.command
string
The command line or control
program used to generate the
data
Borealis vXXX + borealis_git_hash +
experiment_name



cp
short
Control program identifier
experiment_id, truncated to short


stid
short
Station identifier
station conversion


time.yr
short
Year
sqn_timestamps [0] conversion


time.mo
short
Month
sqn_timestamps [0] conversion


time.dy
short
Day
sqn_timestamps [0] conversion


time.hr
short
Hour
sqn_timestamps [0] conversion


time.mt
short
Minute
sqn_timestamps [0] conversion


time.sc
short
Second
sqn_timestamps [0] conversion


time.us
short
Microsecond
sqn_timestamps [0] conversion


txpow
short
Transmitted power (kW)
= -1 (filler)


nave
short
Number of pulse sequences
transmitted
num_sequences



atten
short
Attenuation level
= 0 (filler)


lagfr
short
Lag to first range
(microseconds)
first_range_rtt



smsep
short
Sample separation
(microseconds)
(rx_sample_rate)^ -1



ercod
short
Error code
= 0 (filler)


stat.agc
short
AGC status word
= agc_status_word


stat.lopwr
short
LOPWR status word
= lp_status_word


noise.search
float
Calculated noise from clear
frequency search
noise_at_freq [0] conversion



noise.mean
float
Average noise across frequency
band
= 0 (filler)



channel
short
Channel number for a stereo
radar (zero for all others)
slice_id



bmnum
short
Beam number
beam_nums [i]


bmazm
float
Beam azimuth
beam_azms [i]


scan
short
Scan flag
scan_start_marker (0 or 1)


offset
short
Offset between channels for a
stereo radar (zero for all
others)
= 0 (filler)




rxrise
short
Receiver rise time
(microseconds)
= 0.0



intt.sc
short
Whole number of seconds of
integration time.
int_time conversion



intt.us
short
Fractional number of
microseconds of integration
time
int_time conversion




txpl
short
Transmit pulse length
(microseconds)
tx_pulse_len



mpinc
short
Multi-pulse increment
(microseconds)
tau_spacing



mppul
short
Number of pulses in sequence
len(pulses)


mplgs
short
Number of lags in sequence
lags.shape[0]


nrang
short
Number of ranges
num_ranges


frang
short
Distance to first range
(kilometers)
first_range



rsep
short
Range separation (kilometers)
range_sep


xcf
short
XCF flag
If xcfs exist, then =1


tfreq
short
Transmitted frequency
freq


mxpwr
int
Maximum power (kHz)
= -1 (filler)


lvmax
int
Maximum noise level allowed
= 20000 (filler)


iqdata.revision.major
int
Major version number of the
iqdata library
= 1 (meaning Borealis conversion)



iqdata.revision.minor
int
Minor version number of the
iqdata library
= 0 (Borealis conversion)



combf
string
Comment buffer


Original Borealis filename, ‘converted
from Borealis file ’ , number of beams in
this original record (len(beam_nums)),
experiment_comment and slice_comment
from the file
seqnum
int
Number of pulse sequences
transmitted
num_sequences



chnnum
int
Number of channels sampled
(both I and Q quadrature
samples)
len(antenna_arrays_order)




smpnum
int
Number of samples taken per
sequence
num_samps



skpnum
int
Number of samples to skip
before the first valid sample


math.ceil(first_range/range_sep). In
theory this should =0 due to Borealis
functionality(no rise time).
However make_raw in RST requires this to
be indicative of the first range so we
provide this.
ptab[mppul]
short
Pulse table
pulses


ltab[2][mplgs]
short
Lag table
np.transpose(lags)


tsc[seqnum]
int
Seconds component of time past
epoch of pulse sequence
sqn_timestamps conversion



tus[seqnum]
int
Microsecond component of time
past epoch of pulse sequence
sqn_timestamps conversion



tatten[seqnum]
short
Attenuator setting for each
pulse sequence
= [0,0…] (fillers)



tnoise[seqnum]
float
Noise value for each pulse
sequence
noise_at_freq conversion



toff[seqnum]
int
Offset into the sample buffer
for each pulse sequence
Offset = 2 * num_samps *
len(antenna_arrays_order), toff = [i *
offset for i in range(v[‘num_sequences’])]

tsze[seqnum]
int
Number of words stored for this
pulse sequence
= [offset, offset, offset….]



data[totnum]
int
Array of raw I and Q samples,
arranged: [[[smpnum(i),
smpnum(q)] * chnnum] * seqnum],
so totnum =
2*seqnum*chnnum*smpnum
Data conversion for correct dimensions
and scaled to max int (-32768 to 32767)





If blanked_samples != ptab, or pulse_phase_offset contains non-zeroes, no conversion to iqdat is possible.