PDS_VERSION_ID = PDS3|
RECORD_TYPE = STREAM
OBJECT = TEXT
PUBLICATION_DATE = 2004-02-27
NOTE = "
WFRWBR.TXT provides quick-start help for anyone wanting to write
software to make use of the Cassini RPWS WAVEFORM or WIDEBAND data on
END_OBJECT = TEXT
DATA FILE OVERVIEW
The binary files containing the RPWS WAVEFORM or WIDEBAND data
samples are found under directories named
DATA/RPWS_WAVEFORM_FULL and DATA/RPWS_WIDEBAND_FULL
The WAVEFORM data files are named
Tyyyyddd_2_5KHZn_WFRFR.DAT for 0.1-2.5 KHz data
Tyyyyddd_25HZn_WFRFR.DAT for 1-25 Hz data
where yyyy is the year of the data, ddd is the day of year and n is the
length of the data record in kilosamples, i.e., 1=1024, 2=2048, etc.
Details about each file can be found in detached PDS labels named with
The WIDEBAND data files are named
Tyyyyddd_hh_10KHZn_WBRFR.DAT for 0.1-10 KHz data
Tyyyyddd_hh_75KHZn_WBRFR.DAT for 1-75 KHz data
where yyyy is the year of the data, ddd is the day of year, hh is the
hour of the day, and n is either the character D to indicate a "Dust"
data record, or a digit to indicate the length of the data record in
kilobytes, i.e., 1=1024, 2=2048, etc.
Details about each file can be found in detached PDS labels named with
DATA PROCESSING OVERVIEW
There are generally two ways to use these data:
1. Plot, list, or listen to the time-domain electric field samples.
2. Plot or list the frequency-domain power spectra resulting from
processing the electric field samples through an FFT.
Although advanced analysis details are beyond the scope of this
document, the most important first steps of extracting individual
samples and associating them with time are addressed.
The following facts are essential in using these data:
1. The waveform samples are 12-bit values (range 0 - 4095),
while the wideband samples are 8-bit values (range 0 - 255).
2. The samples represent a field strength, either electric field
or magnetic field strength. There are occasionally instrument
modes which make use of the antennas in a Langmuir Probe "density"
mode, instead of the usual electric field mode, but those modes
are not discussed here.
3. Time between samples is either 0.10 second (25 Hz WFR), or
140 microseconds (2.5 KHz WFR), or 36 microseconds (10 KHz WBR),
or 4.5 microseconds (75 KHz WBR).
4. In the archive data, the band status also indicates which receiver
the data comes from. In other words WFR only produces 25Hz and
2.5Khz, while WBR only produces 10Khz and 75Khz.
5. The steps to apply calibrations to the raw 8-bit or 12-bit data are:
a) Find the average value for the sensor's data set. For example,
if there are 2048 samples of WFR data for the EX antenna, sum
them and divide by 2048.
b) Subtract this "DC" value from all values of the data set.
c) Depending upon the receiver (WBR or WFR) and bandwidth, determine
the Calibration Factor. For 25 Hz WFR data, this is 9.63. For
2.5 KHz WFR data, this is 9.45. For 10 KHz WBR data, this is
6.33. And for 75 KHz WBR data, this is 6.43. This number is in
dB, and is defined as the decibels below a maximum amplitude sine
wave which the waveform would measure if a 1 volt rms signal were
injected into the EX input. A maximum amplitude sine wave is
defined as 127.5 for 8-bit data (which can range from 0 through
255), and 2047.5 for 12-bit data (which can range from 0 through
d) Determine the gain amp setting, Gain, for the receiver channel.
This is also given in terms of dB.
e) Add the Calibration Factor to the Gain, then convert from dB to
linear scale using the equation 10**(Scale_Factor/20). Since the
Calibration Factor was given in terms of volts rms, we also need
to divide by square root of 2.
f) For all data samples determined above, normalize them by dividing
by the maximum amplitude sine wave (127.5 or 2047.5). Then
divide by the Scale_Factor. What we have now is the actual
voltage measured by the receiver as a function of time.
g) To convert to electric field strength for the receivers connected
to electric antennas, we simply divide this voltage by the
geometric antenna length. For the EX dipole, this is 9.26 meters,
and for all the monopoles EU, EV, and EW, this is 5.00 meters.
h) To convert to magnetic field strength, an additional factor of 24
has to be multiplied by all the data points. This is because
there are amplifiers with a gain of 1/24 following the search
coils. Then finally, the voltage should be divided by the search
coil calibration factor, given at a midband point. This
calibration factor has units of volts per nanoTesla. This factor
is given at 10 HZ for the 25-Hz WFR data, at 1 KHz for the 2.5
KHz WFR and also for 10 KHz WBR, and at 10 KHz for the 75 KHz WBR
data. The resulting numbers are magnetic field strength in
'C' CODE EXAMPLE
See EXTRAS/SOFTWARE/WBR_WFR_LIST.C and EXTRAS/SOFTWARE/README.TXT
The code example, WBR_WFR_LIST.C, shows how to extract status fields
and perform a basic time-domain calibration of the wideband and
waveform data. This code adjusts to the various record sizes as well
as adjusting for wideband and waveform (it works on all datasets that
use the same matching 32 byte header, currently WBR and WFR). Also
included in this directory are example output of WBR and WFR data
contained on this volume (.TXT files).
Running the example code:
Use the following switches to duplicate the example output:
wbr_wfr_list -aerclsv data_file.LBL ❯ data_file.TXT
The example code has been successfully compiled and run on Sun (sparc
64) and Linux (i386/P-III). These architectures are opposite byte
order. On the Sun both the sun compiler and the GNU compiler were
used. See the source code for an example of the compiler switches that
were used in each configuration.
Note that the example code may be supplied with either with a label
file or a datafile. If given a label file, it searches the file for
the pointer to the datafile.
We have tried to make the sample code flow much the same as the above
description when performing the time-domain calibration. NO attempt at
optimization, we leave that entirely up to the compiler. You will find
steps 5a through 5h above in the comments of the source code.
In addition to the example code, there is an example run of the example
code in /EXTRAS/SOFTWARE (same directory as the example code). The
source of the data is in a file with the same name somewhere in the
/DATA directory tree. The files are named the same as the source data
files, with the filetype being .TXT (hope this makes life a little
easier for our windows users).
The example code does not need to see file labels in order to process
the data files as there are length indicators in the data records. If
label files are specified, however, the code will use the length
specified in the label file. When the label file is specified, we
also do some sanity checking to verify that the data file and the label
have the same length. Another check with the label file is the record
count (i.e. FILE_RECORDS). If the entire file is processed, the record
count extracted from the label file is compared against the actual
record count and an error indication is printed if a mismatch occurs.
The sample code is shipped with calls to the NAIF routines disabled.
If you have these routines available, the code may be enabled, see the
comments for an indication of the code that may be changed. The calls
used in this example are from the Fortran library, so you will
typically need to make use of the Fortran loader when linking to
produce an executable.
The Spacecraft CLocK contained in the record header is extracted from
the instrument telemetry. From this clock we calculate the SpaceCraft
Event Time (using the spice routines). The time is the start of the
RTI period in which the data was collected. For WFR, this is the start
of the data sampling as it is synchronized with the RTI pulse
(hardware). Most of the time we operate WBR in the same manner (i.e.
hardware synchronization with the RTI signal from CDS). See comments
in the example code for how to recognize and adjust for when WBR is
free running (look for the string "sub-RTI").
You may encounter data that is corrupt. We have specifically avoided
removing any data from the dataset, it is presented as we have it
at Iowa, having only been reformatted (the time series data is
unchanged). There are some checks in the example code that look
for problems, you should expect to see these error messages at
times when the original data has gaps.
WBR_WFR_LIST -h (the help file!)
CASSINI/RPWS, Wideband/Waveform, Archive Dataset Example, V1.14, 2004-03-04
Problem Contact: William-Robison@UIowa.edu
This example code dumps the
following archive data products
usage: ./WBR_WFR_LIST ❮-flags❯ ❮filename❯
-a header decoded dump
WFR cnt: 19 1/4E4D8240.3.0 15205-21:14:16.286
-e header hex dump
hdr 4E 4C 8B 4D 01 60 3B 64 00 C9 FD C5 08 20
-r raw data dump
raw 7C7 791 76E 76B 772 77C 78E 7A1 7A7 78B 768
32: 7B3 7CD 7E0 7F3 7FC 800 808 815 82F 845 84D
-c calibrated data dump
DC_value 2053.599 maximum_amplitude_sine_wave 2047.500
db_full_scale 39.450 linear_scale 66.372
sample # mSec raw counts B Field
0 0.000 2021 7E5 -3.906e-02
1 0.140 2024 7E8 -3.546e-02
2 0.280 2029 7ED -2.947e-02
-l limit dump to 10 records
-x force record length from file
(rather than from the labels)
-z suppress new line after SPICE time
-v verbose error messages
-t test data structure (#pragma pack)
data may be piped to ❮stdin❯