AIRSAR Compressed Stokes Matrix Data (CM) Description

This manual is still being converted...



AIRSAR Data Compression Formats


	For AIRSAR data, there are four possible formats :  

		1) compressed stokes matrix data 
			(multilook,quad-pol, low-res, 10 bytes/pixel)
		2) compressed scattering matrix (730 processor) data 
			(single look,quad-pol,10 bytes/pixel)
		3) compressed scattering matrix (3.5 processor) data 
			(single look,quad-pol, low-res, 10 bytes/pixel)
		4) uncompressed synoptic amplitude data 
			(vax real*4, single pol, low-res, 4 bytes/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( ).

		gen_fac is the AIRSAR general scale factor whose value is recorded in the 
header of the oldheader, field 133.




Stokes matrix data

	AIRSAR compressed Stokes matrix "CM" quad-pol data - 10 bytes per pixel.   
Consists of one file for each scene, per frequency.  Each line of each file consists of 1024 
azimuth samples.  There are 750 or 1282 lines depending on the processor, each 
corresponding to progressively greater range from the radar.  The azimuth pixel spacing 
is 12.1 meters for the pre-1993 prf, and 8 meters for the 1993 and later prf.  The range 
pixel spacing is 6.66 meters (assumes 20 MHz data).  The first two or three lines in the 
file are header lines.  The data has been symmetrized such that SHV = 0.5 (SHV +SVH), 
and is usually calibrated.  For the "730 processor", the data has been multilooked by 4, 
while for the "3.5 processor", the data has been multilooked by 16.  

¡ 10 bytes per pixel - quad-pol data, with:
	¡ Byte(1) :  int{log2(M11)}
	¡ Byte(2) : nint{254[Mantissa  - 1.5]}
		Mantissa = (M11) / 2Byte(1))
		qsca = gen_fac [ (Byte(2) / 254 ) + 1.5] 2Byte(1)
	¡ Byte(3) : nint{127 M12/qsca}
	¡ Byte(4) : nint{127 sign(M13/qsca) sqrt(M13/qsca)}
	¡ Byte(5) : nint{127 sign(M14/qsca) sqrt(M14/qsca)}
	¡ Byte(6) : nint{127 sign(M23/qsca) sqrt(M23/qsca)}
	¡ Byte(7) : nint{127 sign(M24/qsca) sqrt(M24/qsca)}
	¡ Byte(8) : nint{127 M33/qsca}
	¡ Byte(9) : nint{127 M34/qsca}
	¡ Byte(10) : nint{127 M44/qsca}
	The total power is :
		TP = M11 = gen_fac ( byte(2) / 254 + 1.5) 2Byte(1)) 
	The remaining terms are given by :

		M12 = M11 byte(3) /127
		M13 = sign(byte(4)) M11 (byte(4) /127)**2
		M14 = sign(byte(5)) M11 (byte(5) /127)**2
		M23 = sign(byte(6)) M11 (byte(6) /127)**2
		M24 = sign(byte(7)) M11 (byte(7) /127)**2
		M33 = M11 byte(8) /127
		M34 = M11 byte(9) /127
		M44 = M11 byte(10) /127
		M22 = M11 - M33 - M44

	The difference between the AIRSAR 'CM' data and SIR-C MLC data is chiefly 
that, for AIRSAR, the elements of the Stokes Matrix are stored directly to each 
compressed byte;  while for SIR-C, the cross-products (that when combined appropriately 
comprise the Stokes matrix) are stored.  In addition, the AIRSAR data employs a general 
scale factor, while SIR-C does not.  And finally, the value stored in the first two bytes by 
AIRSAR is the total power divided by the general scale factor, while the value stored in 
the first two bytes by SIR-C is four times the total power.



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

Imaging Radar Home Page
Updated 8/25/94
bruce.chapman@jpl.nasa.gov