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 this volume." END_OBJECT = TEXT END ======================================================================== 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 corresponding names Tyyyyddd_2_5KHZn_WFRFR.LBL Tyyyyddd_25HZn_WFRFR.LBL 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 corresponding names Tyyyyddd_hh_10KHZn_WBRFR.LBL Tyyyyddd_hh_75KHZn_WBRFR.LBL ======================================================================== 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 4095). 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 nanoTesla. ======================================================================== '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). LABEL Notes: 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. SPICE Notes: 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. SCLK/SCET Notes: 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"). DATA NOTES 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 Tyyyyddd_hh_nnKHZn_WBRFR.DAT Tyyyyddd_nnHZn_WFRFR.DAT Tyyyyddd_hh_nnKHZn_WBRFR.LBL Tyyyyddd_nnHZn_WFRFR.LBL usage: ./WBR_WFR_LIST <-flags> -flags -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 cal_factor 9.450 gain_setting 30.000 db_full_scale 39.450 linear_scale 66.372 calibrated samples 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 ========================================================================