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