PSFREDUR

Freeman-Durden classification


EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Example :: Algorithm :: Acknowledgements :: References :: Related

Back to top

Description


PSFREDUR performs an unsupervised Freeman-Durden classification of a fully polarimetric SAR (POLSAR) data set. It partitions the total power at every image pixel into contributions from three scattering mechanisms: double-bounce, such as urban features; volume, such as vegetation canopy; and rough-surface, such as water.
Back to top

Parameters


psfredur(fili, filo)

Name Type Caption Length Value range
FILI* str Input polarimetric SAR image 1 -    
FILO* str Output Freeman-Durden classified raster 1 -    

* Required parameter
Back to top

Parameter descriptions

FILI

The name of the input polarimetric SAR data set. The input data set must contain either non-symmetrized or symmetrized fully polarimetric (quad-polarization complex) data in scattering, covariance, coherence, or Kennaugh format. To minimize noise, it is recommended that the input data set have an equivalent number of looks (ENL) of at least 25, which can be done by applying a polarimetric filter to the image, such as a boxcar filter, when the input data set is single-look complex.

The input file must be a data set that has already been imported in PCIDSK (.pix) format by SARINGEST. Alternatively, it can be the key-file name of any GDB-supported POLSAR data set in its distribution format. For more information, and a complete list of supported POLSAR sensors and data products, see SARINGEST.

FILO

The name of the output file that will hold the classification results. The output file has the same dimensions as the input file, and three floating-point channels representing the contribution to the total power from each of the three scattering mechanisms.

The specified file must not already exist.

Back to top

Details

PSFREDUR performs an unsupervised Freeman-Durden classification of a fully polarimetric SAR data set. It partitions the total power at every image pixel into contributions from three scattering mechanisms: double-bounce, volume, and rough-surface.

The input data set must contain either non-symmetrized or symmetrized fully polarimetric (quad-polarization) data in one of the following matrix formats: scattering (s4c or S3c), covariance (c4r6c or C3r3c), coherency (t4r6c or T3r3c), or Kennaugh (k16r or K9r).

The output file is a three-channel raster with floating-point pixel values. Each pixel represents the contribution to the total power from the three scattering mechanisms:

The processing of PSFREDUR is similar to that of PSVANZYL. The main difference is that while PSFREDUR partitions the total scattered power into contributions from the three scattering mechanisms, and then returns the three contributions, PSVANZYL finds the single dominant scatterer type for each pixel, and then assigns the pixel to the corresponding class.

Back to top

Example

Perform a classification of an SLC RADARSAT-2 image that has already been imported in PCIDSK (.pix) format by SARINGEST. The SLC image is first averaged by PSBOXCAR using a 5 x 5 window. PSBOXCAR also converts the image from the original non-symmetrized scattering matrix (s4c) format to the non-symmetrized covariance matrix format (c4r6c). The averaged image is then used as an input to PSFREDUR.

from pci.psboxcar import psboxcar
from pci.psfredur import psfredur

fili	="rast2.pix"
filo	="r2_enl25.pix"
flsz= [5]
psboxcar( fili, filo, flsz )

fili	="r2_enl25.pix"
filo	="r2_psfredur.pix"
psfredur( fili, filo)
      
Back to top

Algorithm

The algorithm in PSFREDUR is based on the article cited in References. It uses the elements of the symmetrized covariance matrix C3r3c to partition the total power at each pixel (Ptot) into contributions from the three scattering mechanisms: rough surface (Ps), double-bounce (Pd), and volume scattering (Pv). The partitioning is performed as follows:

      Ptot = Ps + Pd + Pv = <|Shh|^2> + 2*<|Shv|^2> + <|Svv|^2>

Sij represents the elements of the scattering matrix, and the angular brackets (< >) represent the spatial averaging over the ENL.

The three power contributions are expressed as follows:

        Ps = fs * (1 + beta^2)
        Pd = fd * (1 + |alpha|^2)
      Pv = 8 * fv / 3

Here, fs, fd, and fv represent the VV power from the rough-surface, double-bounce, and volume scattering; alpha represents the HH to VV amplitude ratio for double-bounce scattering, and beta represents the HH to VV amplitude ratio for rough-surface scattering. It is assumed beta is real, while alpha can be complex.

The three scattering mechanisms are modeled by expressions that relate the parameters fs, fd, fv, alpha, and beta to the elements of the covariance matrix C3r3c (which are themselves given by the elements of the scattering matrix, Sij). The overall model is as follows:

        <|Shh|^2> = fs * beta^2 + fd * |alpha|^2 + fv
        <|Svv|^2> = fs + fd + fv
        <Shh * (Svv*)> = fs * beta + fd * alpha + fv / 3
        <|Shv|^2> = fv / 3
      <Shh * (Shv*)> = <Shv * (Svv*)> = 0

The asterisk (*) represents the complex conjugate of a number.

The algorithm first derives the volume scattering contribution, fv, and subtracts it from the total power before computing the rough-surface and double-bounce contributions. The values of alpha and beta depend on the dominant effect in the remaining power. If the rough-surface scattering is dominant (Re(<Shh*(Shv*)>)>0), alpha=-1. If the double-bounce scattering is dominant (Re(<Shh*(Shv*)>)<0), beta=1.

Re() represents the real part of a complex number. Im(), used in the following expressions, represents the imaginary part of a complex number. The following elements of the symmetrized covariance matrix C3r3c, Pij, are used in the algorithm:

        P11 = |Shh|^2
        P22 = |Shv|^2
        P33 = |Svv|^2
        P13 = Re((Shh*) * Svv)
      P13 = Im((Shh*) * Svv)

The processing in PSFREDUR proceeds as follows:

  1. If required, convert the input data set to the symmetrized covariance matrix format. For details on the conversion process, follow the link to the related function PSCONV at the end of this topic.
  2. Loop over all image pixels. At each pixel:
-->

Any negative power values are replaced by zero, and the positive values are rescaled to preserve the total power. For example, TP = Pd + Pv + Ps.

Back to top

Acknowledgements

PCI Geomatics gratefully acknowledges the financial support provided by the Canadian Space Agency through the Earth Observation Application Development Program (EOADP), contract number 9F028-034946.

Back to top

References

Freeman, T. and S.L. Durden. "A three-component scattering model for polarimetric SAR data", IEEE Trans. Geosci. Remote Sensing, 36, no. 3 (1998): 963-973.

© PCI Geomatics Enterprises, Inc.®, 2024. All rights reserved.