SIR-C Standard Data Formats by Bruce Chapman and Anthony Freeman, Jet Propulsion Laboratory For each pixel in a SIR-C image, we obtain a measurement of the "single-look" (not averaged) "scattering matrix" S, which represents the reflectivity of the area being observed at a given radar wavelength. Each of the four complex elements of this matrix is the amplitude and phase of the backscattered radiation as measured at one of four orthogonal transmit/receive polarizations : Horizontal transmit, Horizontal receive (HH); Horizontal transmit, Vertical receive (HV); Vertical transmit, Horizontal receive (VH); and Vertical transmit, Vertical receive (VV). These are denoted: Shh Svh Shv Svv (Sometimes, only two polarizations are acquired, and this is known as the dual pol mode. Occasionally, only one transmit/receive polarization measurement is made, and this is known as the single pol mode. When all four transmit/receive polarizations are acquired, this is known as the quad pol mode. The particular mode selected for any given data take is determined by the scientific requirements at that site. ) When we "multilook" (average) the data, we save only the cross-products of elements of this matrix (e.g. ShhShh* where * means complex conjugate). These complex cross-products preserve most of the important amplitude and phase information that is needed to analyze the data. For SIR-C there are three possible data formats: 1) compressed cross-products data (MLC) (Multilook data) quad-pol, 10 bytes per pixel; or 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; or dual-pol, 6 bytes per pixel; or 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( ). To indicate the real part of a complex number, Re is used. To indicate the imaginary part of a complex number, Im is used. sqrt indicates taking the square root. The image data has a variable number of lines and pixels (range samples). Each pixel of data will be between 2 and 10 bytes long. The bytes of each pixel are numbered such that byte(1) is the first byte, byte(2) is the second byte, etc. For analysis of radar backscatter signatures, most users will be able to use the MLC or MLD data. In studying imaging radar interferometry, the SLC data MUST be used. Single Look Complex data There are three data products for complex scattering matrix data, depending on polarization mode. SIR-C "SLC" quad-pol data - 10 bytes per pixel. Consists of one file for each scene, per frequency. Each line of the file consists of a variable number of range samples (pixels) (found in CEOS header), in which range increases with sample (pixel) number. There are a variable number of lines per file (found in CEOS header), in which each line corresponds to different azimuth or along track locations. The CEOS format data has the 12 prefix bytes of data preceding each line of data. (There are no header lines or prefix bytes after the file has been stripped by the JPL CEOS_READER software). There are also separate CEOS leader and trailer (header) files. This data is single look complex scattering matrix data. Each pixel of data will be 10 bytes long. The following description of decoding the scattering matrix for each pixel assumes that byte(1) of a pixel is the first byte, byte(2) is the second byte, etc. The total power (when decompressing) is : TP = 0.25 ( byte(2) / 254 + 1.5) 2^Byte(1)) (This number is meaningful only for Quad-pol data, and is the sum of the power of the elements of the scattering matrix divided by 4.) The real and imaginary parts of each of the elements of the scattering matrix are given as shown below (using the following scale factor): ysca = sqrt{ [ (Byte(2) / 254 ) + 1.5] 2^Byte(1) } Re(SHH) = byte(3) ysca/127 Im(SHH) = byte(4) ysca/127 Re(SHV) = byte(5) ysca/127 Im(SHV) = byte(6) ysca/127 Re(SVH) = byte(7) ysca/127 Im(SVH) = byte(8) ysca/127 Re(SVV) = byte(9) ysca/127 Im(SVV) = byte(10) ysca/127 The above quantities are dimensionless, but they are the square root of power ratios. If it is desired to compress the scattering matrix to this 10 byte format, the following operations should be performed: Byte(1) : int{log2 (SHHSHH* + SHVSHV* + SVHSVH*+ SVVSVV*)} Byte(2) : nint{254[Mantissa - 1.5]} where Mantissa = (SHHSHH* + SHVSHV* + SVHSVH*+ SVVSVV*) / 2^Byte(1) Then, using the following scale factor, we compress the real and imaginary parts of the scattering matrix: qsca = sqrt{ [ (Byte(2) / 254 ) + 1.5] 2^Byte(1) } Byte(3) : nint{127 Re(SHH)/qsca} Byte(4) : nint{127 Im(SHH)/qsca} Byte(5) : nint{127 Re(SHV)/qsca} Byte(6) : nint{127 Im(SHV)/qsca} Byte(7) : nint{127 Re(SVH)/qsca} Byte(8) : nint{127 Im(SVH)/qsca} Byte(9) : nint{127 Re(SVV)/qsca} Byte(10) : nint{127 Im(SVV)/qsca} SIR-C "SLC" dual-pol data - 6 bytes per pixel. Consists of one file for each scene, per frequency. Each line of the file consists of a variable number of range samples (found in CEOS header), in which range increases with sample number. There are a variable number of lines per file (found in CEOS header), in which each line corresponds to different azimuth or along track locations. The CEOS format data has the 12 prefix bytes of data preceding each line of data. (There are no header lines or prefix bytes after the file has been stripped by the JPL CEOS_READER software). There are also separate CEOS leader and trailer (header) files. This data is single look complex scattering matrix data. The compression format is the same as for the quad-pol data format above, except that only 6 of the 10 bytes are present. The bytes present depend on the polarization mode : HH and VV polarization mode : bytes 1,2,3,4,9,10 HH and HV polarization mode : bytes 1,2,3,4,5,6 VH and VV polarization mode : bytes 1,2,7,8,9,10 Where the numbers refer to the byte numbering used for quad pol data above. SIR-C "SLC" single-pol data - 4 bytes per pixel. Consists of one file for each scene, per frequency. Each line of the file consists of a variable number of range samples (pixels) (found in CEOS header), in which range increases with sample (pixel) number. There are a variable number of lines per file (found in CEOS header), in which each line corresponds to different azimuth or along track locations. The CEOS format data has the 12 prefix bytes of data preceding each line of data. (There are no header lines or prefix bytes after the file has been stripped by the JPL CEOS_READER software). There are also separate CEOS leader and trailer (header) files. This data is single look complex scattering matrix data. The compression format is the same as for the quad-pol data format, except that only 4 of the10 bytes are present. The bytes present depend on the polarization mode: HH polarization mode : bytes 1,2,3,4 VV polarization mode : bytes 1,2,9,10 Where the numbers refer to the byte numbering used for quad pol data above. 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 a variable number of range samples (found in CEOS header), in which range increases with sample number. There are a variable number of lines per file (found in CEOS header), in which each line corresponds to different azimuth or along track locations. The CEOS format data has the 12 prefix bytes of data preceding each line of data. (There are no header lines or prefix bytes after the file has been stripped by the JPL CEOS_READER software). There are also separate CEOS leader and trailer (header) files. This data is multi look complex cross-product data. The data has been symmetrized such that SHV = 0.5 (SHV +SVH). Each pixel of data will be 10 bytes long. The following description of decoding the cross-products of the scattering matrix for each pixel assumes that byte(1) of a pixel is the first byte, byte(2) is the second byte, etc. The total power (when decompressing) is : TP = 0.25 ( byte(2) / 254 + 1.5) 2^Byte(1)) (This number is meaningful only for Quad-pol data, and is the sum of the power of the elements of the scattering matrix divided by 4.) The crossproducts of the scattering matrix are given as shown below (using the following scale factor): qsca = [ (Byte(2) / 254 ) + 1.5] 2^Byte(1) 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} The above quantities are dimensionless, but they are power ratios. If it is desired to compress the cross-products to this 10 byte format, the following operations should be performed: Byte(1) : int{log2(SHHSHH* + 2SHVSHV* + SVVSVV*)} Byte(2) : nint{254[Mantissa - 1.5]} Mantissa = (SHHSHH* + 2SHVSHV* + SVVSVV*) / 2^Byte(1)) Then we compress the real and imaginary parts of the scattering matrix: Byte(3) : nint{255 sqrt(SHVSHV* / qsca)} - 127 Byte(4) : nint{255 (SVVSVV* / qsca)} - 127 Byte(5) : 127 nint{sign[Re(SHHSHV*)] sqrt(2|Re(SHHSHV*) | / qsca)} Byte(6) : 127 nint{sign[Im(SHHSHV*)]sqrt(2|Im(SHHSHV*) | / qsca)} Byte(7) : nint{127 (2Re(SHHSVV* ) / qsca)} Byte(8) : nint{127 (2Im(SHHSVV* ) / qsca)} Byte(9) : 127nint{sign[Re(SHVSVV*)]sqrt(2|Re(SHVSVV*) | / qsca)} Byte(10) : 127nint{sign[Im(SHVSVV*)]sqrt(2|Im(SHVSVV*) | / qsca)} 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 a variable number of range samples (found in CEOS header), in which range increases with sample number. There are a variable number of lines per file (found in CEOS header), in which each line corresponds to different azimuth or along track locations. The CEOS format data has the 12 prefix bytes of data preceding each line of data. (There are no header lines or prefix bytes after the file has been stripped by the JPL CEOS_READER software). There are also separate CEOS leader and trailer (header )files. This data is multi look complex cross-product data. The data has been symmetrized such that SHV = 0.5 (SHV +SVH). The compression format is the same as for the quad-pol data format, except that only 5 of the 10 bytes are present. The bytes present depend on the polarization mode : HH and VV polarization mode : bytes 1,2,4,7,8 HH and HV polarization mode : bytes 1,2,3,5,6 VH and VV polarization mode : bytes 1,2,3,9,10 Where the numbers refer to the byte numbering used for quad pol data above. Multi Look Detected data There is one Multilook detected data product : SIR-C "MLD" single pol data - 2 bytes per pixel. Consists of one file for each scene, per frequency. Each line of the file consists of a variable number of range samples (found in CEOS header), in which range increases with sample number. There are a variable number of lines per file (found in CEOS header), in which each line corresponds to different azimuth or along track locations. The CEOS format data has the 12 prefix bytes of data preceding each line of data. (There are no header lines or prefix bytes after the file has been stripped by the JPL CEOS_READER software). There are also separate CEOS leader and trailer (header) files. This data is multi look detected power values. The polarization will be either HH , HV, VH, or VV, depending on mode. Each pixel of data will be 2 bytes long. The following description of decoding the cross-products of the scattering matrix for each pixel assumes that byte(1) of a pixel is the first byte, byte(2) is the second byte. The total power (when decompressing) is : pow = ( byte(2) / 254 + 1.5) 2^Byte(1)) The above quantity is dimensionless, but it is a power ratio. If it is desired to compress the cross- products to this 2 byte format, the following operations should be performed: Byte(1) : int{log2(SXYSXY*)} Byte(2) : nint{254[SXYSXY*/2^Byte(1) - 1.5]}