Mars_Lightning_Machine - david-macmahon/wiki_convert_test GitHub Wiki

Mars Weather Reports

http://www.msss.com/msss_images/subject/weather_reports.html

People

William Barott (Embry-Riddle)

Geoff Bower (Berkeley)

Tom Kuiper (JPL)

Walid Majid (JPL)

Imke de Pater (Berkeley)

Nilton Renno (U. Michigan)

Chris Ruf (U. Michigan)

Dan Werthimer (Berkeley)

Marin Anderson (Berkeley)

Andrew Siemion (Berkeley)

Specifications

Frequency channels: 1024
Clock input: usrclk 2x @ 50-75 MHz
Signal input: XAUI dual-pol 8 bit r/i
Integration time: 10 microsec to 10 ms
Polyphase filter: 4taps, Hamming window
Output: 10 Gbit Ethernet, 8 bit x/y power, 16 bit x/y power squared, 8 bit xy r/i
Libraries used: mlib_devel 7.1
hardware: BEE2 or iBOB, iADC (legacy version)

Models and Software

Mars Lightning SVN Repository

Description: bofs/ - compiled bof files init_scripts/ - initialization scripts matlab_scripts/ - matlab scripts for testing mdls/ - model files reg_tools/ - bee2/borph tools

Instrument

Configuration

From Processor Software Registers and Recommended Values

Register

Data Type

Description

Recommended Value

reg_sync_period

UFIx 32.0

Period of fiducial sync pulse / vector warning signal.
Should be equal to (reg_acclen + 1) * 1024

131072

reg_acclen

UFix 32.0

Accumulation length - 1, in units of number of frames.
Should be equal to reg_sync_period/1024 - 1

127

reg_coeff_stokes1

UFix 18.12

X-polarization scaling value

12288
During tests all scaling values have been equal

reg_coeff_stokes2

UFix 18.12

XY real scaling value

12288
During tests all scaling values have been equal

reg_coeff_stokes3

UFix 18.12

XY imaginary scaling value

12288
During tests all scaling values have been equal

reg_coeff_stokes4

UFix 18.12

Y-polarization scaling value

12288
During tests all scaling values have been equal

kurt_scale_1a

UFix 18.12

X-polarization power^2 scaling value

12288
During tests all scaling values have been equal

kurt_scale_1b

UFix 18.12

Y-polarization power^2 scaling value

12288
During tests all scaling values have been equal

kurt_output1a

UFIx 3.0

X-pol power^2 short selector

2

kurt_output1b

UFIx 3.0

Y-pol power^2 short selector

2

reg_output_bitselect1

UFIx 3.0

X-pol power byte selector

1

reg_output_bitselect2

UFIx 3.0

XY real byte selector

1

reg_output_bitselect3

UFIx 3.0

XY imag byte selector

1

reg_output_bitselect4

UFIx 3.0

Y-pol power byte selector

1

Packet_Size

UFIx 32.0

Size of packets in 64 bit words

1025

reg_ip

UFIx 32.0

destination ip address

10.0.0.4 == 0167772164

reg_10GbE_destport0

UFIx 32.0

Destination port number

6001

xaui_error_reset

UFIx 32.0

Used to reset the xaui error counters, drive high then low

0,1,0

To Processor Software Registers and Recommended Values

Register Data Type Description Characteristic Value
rx_valid indicates reception of valid data 1
rx_linkdown counts every clock rx_linkdown is high 0, if the link is up
rx_empty counts every clock rx_empty is high 0, if the link is properly configured

Design Files

IBOB Design (not used)

BEE2 Design (02/05/10)

iBOB ADC -> XAUI Beamformer Mimicker

PDF of Feb 8, 2010 Model

Description

total spectral output: 1024 channels * (8 bits X power + 8 bits Y power

  • 8 bits XY real + 8 bits XY imag + 16 bits SK X + 16 bits SK Y) + 8 byte counter = 8200 bytes = 5 x 1640 byte packets

It looks like pulsing the 10GbE end-of-frame several times during 1025 clocks of valid data doesn't work. Probably will just dump the entire 8200 bytes in a single jumbo frame. - never mind, this works fine.

Data rate: 8200 bytes / sampling period

Ex: 1 millisecond period -> 8 MB/sec

Diagram of original IBOB design:

Kurt_spec.png‎

Testing

18:0:32, Thu Feb 4, 2010

Image:qDiSYq2f_kurt_spec_test.png|kurt_spec_test.png

Operation Instructions

Data Collection

An appropriate 'gulp' command line for capturing all ethernet traffic to interface eth0:

sudo gulp -i eth0 > out.pcap

Separating a two-beamformer capture into individual captures:

/usr/sbin/tcpdump 'src host <beamformer ip address 1>' -r <input file.pcap>  -w <output ip 1.pcap>
/usr/sbin/tcpdump 'src host <beamformer ip address 2>' -r <input file.pcap>  -w <output ip 2.pcap>

Pre-Observing / Testing Procedures

Below are instructions for taking a quick look at a .pcap capture from the MLM

- Setup path (tools used are in ~siemion/bin on pulsar-1)

siemion@pulsar-1:~> export PATH=$PATH:~siemion/bin
siemion@pulsar-1:~> ls -al *.pcap
-rw-r--r-- 1 siemion obs 7507222 2010-02-10 02:12 test.pcap

- Run the MLM pcap processor, meat_pcap, on the test pcap file. 'prefix' is the file prefix for extracted files

siemion@pulsar-1:~> meat_pcap32 test.pcap prefix
Completed Successfully
Spectra count: 908
Dropped packet count: 0

- Note that above the dropped packet count is zero, this is calculated by following the clock cycle counter in each packet. - This will create a series of binary files containing extracted and reordered spectra for each polarization and moment:

siemion@pulsar-1:~> ls -al *.bin
-rw-r--r-- 1 siemion obs  929792 2010-02-10 02:37 prefix_xpower.bin
-rw-r--r-- 1 siemion obs 1859584 2010-02-10 02:37 prefix_xpowersq.bin
-rw-r--r-- 1 siemion obs  929792 2010-02-10 02:37 prefix_ypower.bin
-rw-r--r-- 1 siemion obs 1859584 2010-02-10 02:37 prefix_ypowersq.bin

- Run the 'mkfits.sh' script to create .fits files, syntax is: mkfits.sh <file_prefix>

siemion@pulsar-1:~> mkfits.sh prefix 908
siemion@pulsar-1:~> ls -al *.fits
-rw-r--r-- 1 siemion obs  933120 2010-02-10 02:37 prefix_xpower.fits
-rw-r--r-- 1 siemion obs 1863360 2010-02-10 02:37 prefix_xpowersq.fits
-rw-r--r-- 1 siemion obs  933120 2010-02-10 02:37 prefix_ypower.fits
-rw-r--r-- 1 siemion obs 1863360 2010-02-10 02:37 prefix_ypowersq.fits

- Launch ds9 to view one of the .fits files

siemion@pulsar-1:~> ds9 prefix_ypowersq.fits

- You should see a plot like this (note that I selected the View -> Horizontal Graph option to see the slice plot at bottom. I also zoomed to 1/2):

Image:xFxNO5yg_saods9.png|plot of ypol-squared from a test pcap capture

Data File Format

.pcap captures created on hcro node pulsar-1 should be processed using:

siemion@pulsar-1:~> meat_pcap32 <input pcap file> <output prefix>

The four .bin files output as

<output prefix>_xpower.bin
<output prefix>_ypower.bin
<output prefix>_xpowersq.bin
<output prefix>_ypowersq.bin

are concatenated unsigned binary values with no header information. ...power.bin files are formatted as 8 bit unsigned integers (uint8), ...powersq.bin files are formatted as 16 bit unsigned integers (uint16)

all files contain 1024 point spectra ordered as:

spectra_1, freq_1023, spectra_1, freq_1022, spectra_1, freq_1021 ... spectra_1, freq_0

spectra_2, freq_1023, spectra_2, freq_1022, spectra_2, freq_1021 ... spectra_2, freq_0

...

spectra_N, freq_1023, spectra_N, freq_1022, spectra_N, freq_1021 ... spectra_N, freq_0

Where freq_1023 is the highest frequency channel (upper side of the band), freq_0 is the lowest frequency (lower side of the band)

For example, these files can be read in Matlab using commands like:

power_file = fopen('~/jupiter_on_xpower.bin')
powersq_file = fopen('~/jupiter_on_xpowersq.bin')

power_spectra = fread(power_file, 1024, 'uint8');
powersq_spectra = fread(powersq_file, 1024, 'uint16');

Extracting Small Portions of Captures

Extract 5000 packets from an existing pcap file:

-bash-3.00$ /usr/sbin/tcpdump -r jupiter_on.pcap -c 5000 -w jupiter_on_5000.pcap
-bash-3.00$ zip jupiter_on_5000.pcap.zip jupiter_on_5000.pcap
  adding: jupiter_on_5000.pcap (deflated 18%)
-bash-3.00$ ls -alh *.zip
-rw-r--r--  1 siemion werthimer 25M Mar 26 17:26 jupiter_on_5000.pcap.zip

{{bit|SL2WeyGy_jupiter_on_5000.pcap.zip|jupiter_on_5000.pcap.zip}}

Observations

4 pm - 10 pm PST

5 pm - 11 pm PST

5 pm - 11 pm PST

2:45 pm - 10:45 pm PDT

2:45 pm - 10:45 pm PDT

Mailing List Archive

marslightning mailing list

References

Ruf et al GRL

Ruf et al detector

Ruf et al Kurtosis as an RFI Discriminant

⚠️ **GitHub.com Fallback** ⚠️