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