Multi Look Complex Data Description

This manual is still being converted...


SIR-C Data Compression Formats

	For SIR-C  there are three possible data formats:

		1) compressed cross-products data (MLC)  (Multilook data)
			 quad-pol, 10 bytes per pixel
		 	 dual-pol 5 bytes per pixel 

		2) compressed detected data (MLD)  (Multilook data)
			 single-pol, 2 bytes per pixel

		3) compressed scattering matrix data (SLC)  (Singlelook data)
			 quad-pol, 10 bytes per pixel
			 dual-pol, 6 bytes per pixel
			 single-pol, 4 bytes per pixel 

	In the following descriptions:
	
		sign( ) will return the sign of the argument ( ± 1) 

		nint( ) will indicate that the nearest integer value is calculated of its 
argument.  

		int( ) will indicate that the truncation of the floating point value to integer 
is calculated of its argument, and that, if the floating point value is less than zero, 
subtraction by 1.0 is additionally required.  Note that this is not the same as FORTRAN 
int( ).



Multi Look Complex data

	There are two possible data formats for Cross-products data, depending on 
polarization mode.

	SIR-C "MLC" quad-pol data - 10 bytes per pixel.  Consists of one file for each 
scene, per frequency.  Each line of the file consists of TBD range samples, in which range 
increases with sample number.  There are a TBD number of lines per file, in which each 
line corresponds to different azimuth or along track locations.  There are no header lines 
after the file has been stripped for the header by the CEOS reader. The standard output 
product by the GDPS will not have 12 bytes of file information at the beginning of each 
line.  There will be separate header files.  This data will be multi look complex cross-
product data.  The bytes present depend on the polarization mode.  The data has been 
symmetrized such that SHV = 0.5 (SHV +SVH).  

¡ 10 bytes per pixel - quad-pol data, with:
	¡ Byte(1) :  int{log2(SHHSHH* + 2SHVSHV* + SVVSVV*)}
	¡ Byte(2) : nint{254[Mantissa  - 1.5]}
		Mantissa = (SHHSHH* + 2SHVSHV* + SVVSVV*) / 2Byte(1))
		qsca = [ (Byte(2) / 254 ) + 1.5] 2Byte(1)

	¡ Byte(3) : nint{255 sqrt(SHVSHV* / qsca)} - 127
	¡ Byte(4) : nint{255 (SVVSVV* / qsca)} - 127
	¡ Byte(5) : nint{sign[Re(SHHSHV*)]
				127sqrt(2|Re(SHHSHV*) | / qsca)}	
	¡ Byte(6) : nint{sign[Im(SHHSHV*)]
				127sqrt(2|Im(SHHSHV*) | / qsca)}
	¡ Byte(7) : nint{127 (2Re(SHHSVV* )  / qsca)}
	¡ Byte(8) : nint{127 (2Im(SHHSVV* )  / qsca)}
	¡ Byte(9) : nint{sign[Re(SHVSVV*)]
				127sqrt(2|Re(SHVSVV*) | / qsca)}
	¡ Byte(10) : nint{sign[Im(SHVSVV*)]
				127sqrt(2|Im(SHVSVV*) | / qsca)}
	The total power is :

		TP =  0.25 ( byte(2) / 254 + 1.5) 2Byte(1))

	The remaining terms are given by :

		SHVSHV* = qsca[ (byte(3) + 127)/255]2
		SVVSVV* = qsca[ (byte(4) + 127)/255]
		SHHSHH* = qsca - SVVSVV* - 2 SHVSHV*
			Re(SHHSHV*) = 0.5 qsca {sign(byte(5)) [byte(5)/127]2}
			Im(SHHSHV*) = 0.5 qsca {sign(byte(6)) [byte(6)/127]2}
			Re(SHHSVV*) =   qsca  [byte(7)/254]
			Im(SHHSVV*) =   qsca  [byte(8)/254]
			Re(SHVSVV*) = 0.5 qsca {sign(byte(9)) [byte(9)/127]2}
			Im(SHVSVV*) = 0.5 qsca {sign(byte(10)) [byte(10)/127]2}

	SIR-C "MLC" dual-pol data - 5 bytes per pixel.  Consists of one file for each 
scene, per frequency.  Each line of the file consists of TBD range samples, in which range 
increases with sample number.  There are a TBD number of lines per file, in which each 
line corresponds to different azimuth or along track locations.  There are no header lines 
after the file has been stripped for the header by the CEOS reader.  The standard output 
product by the GDPS will have 12 bytes of file information at the beginning of each line.  
There will be separate header files.  This data will be multi look complex cross-product 
data.  The compression format is the same as for the quad-pol data format, except that not 
all 10 bytes are present.  The bytes present depend on the polarization mode. 

	HH and VV polarizations : bytes 1,2,4,7,8
	HH and HV polarizations : bytes 1,2,3,5,6
	VH and VV polarizations : bytes 1,2,3,9,10


The Stokes matrix and Cross-Products

The symmetrized Stokes matrix may be formed from the cross-products of the scattering 
matrix that are stored by SIR-C in the MLC format as follows:

	m(1,1) = (ShhShh* + SvvSvv* + 2ShvShv*) / 4.0
	m(1,2) = (ShhShh* - SvvSvv*) / 4.0
	m(1,3) = (Re(ShhShv*) + Re(ShvSvv*) ) / 2.0
	m(1,4) = (-Im(ShhShv*) - Im(ShvSvv*) ) / 2.0
	m(2,1) = m(1,2)
	m(2,2) = (ShhShh* +SvvSvv* - 2ShvShv* ) / 4.0
	m(2,3) = ( Re(ShhShv*) - Re(ShvSvv*) ) / 2.0
	m(2,4) = (-Im(ShhShv*) + Im(ShvSvv*) )/ 2.0
	m(3,1) = m(1,3)
	m(3,2) = m(2,3)
	m(3,3) = (ShvShv*  + Re(ShhSvv*) / 2.0
	m(3,4) = -Im(ShhSvv*) / 2.0
	m(4,1) = m(1,4)
	m(4,2) = m(2,4)
	m(4,3) = m(3,4)
	m(4,4) = (ShvShv* - Re(ShhSvv*) )/ 2.0

	The cross-products in terms of the symmetrized Stokes matrix elements are :

	ShhShh* = 2m(1,2) + 2m(1,1) - m(3,3) - m(4,4)
	ShvShv* = m(3,3) + m(4,4)
	SvvSvv* = 2m(1,1) - 2m(1,2) - m(3,3) - m(4,4)
	ShhShv* = complex( m(1,3) + m(2,3), -m(1,4) - m(2, 4) )
	ShhSvv* = complex(  m(3,3) - m(4,4), -2m(3,4) )
	ShvSvv* = complex( m(1,3) - m(2,3), -m(1,4) + m(2,4) )
 

	For SLC data, the Stokes matrix will not be symmetrized.  The unsymmetrized 
Stokes Matrix is given by:

	m(1,1) = (ShhShh* + ShvShv* + SvhSvh* + SvvSvv*) / 4.0
	m(1,2) = (ShhShh* - ShvShv* + SvhSvh* - SvvSvv*) / 4.0
	m(1,3) = (Re(ShhShv*) + Re(SvhSvv*) ) / 2.0
	m(1,4) = (-Im(ShhShv*) - Im(SvhSvv*) ) / 2.0
	m(2,1) = (ShhShh* + ShvShv* - SvhSvh* - SvvSvv*) / 4.0
	m(2,2) = (ShhShh* + SvvSvv* - ShvShv* - SvhSvh*) / 4.0
	m(2,3) = ( Re(ShhShv*) - Re(SvhSvv*) ) / 2.0
	m(2,4) = (-Im(ShhShv*) + Im(SvhSvv*) )/ 2.0
	m(3,1) = (Re(ShhSvh*) + Re(ShvSvv*) ) / 2.0
	m(3,2) = ( Re(ShhSvh*) - Re(ShvSvv*) ) / 2.0
	m(3,3) = (ShvShv*  + Re(ShhSvv*) / 2.0
	m(3,4) = (-Im(ShhSvv*+Im(ShvSvh*) / 2.0
	m(4,1) =  (-Im(ShhSvh*) - Im(ShvSvv*) ) / 2.0
	m(4,2) = (-Im(ShhSvh*) + Im(ShvSvv*) )/ 2.0
	m(4,3) =  (-Im(ShhSvv* - Im(ShvSvh*) / 2.0
	m(4,4) = (Re(ShvSvh*) - Re(ShhSvv*) )/ 2.0

Updated 8/25/94
bruce.chapman@jpl.nasa.gov