Skip to content

Narayana-Rao/polsartools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A python package for processing Polarimetric Synthetic Aperture Radar (PolSAR) data.

Build Documentation Status

image

image image

GitHub commits License: GPL 3.0

Jointly Developed By

MRSLab
Microwave Remote Sensing Lab (MRSLab)
Indian Institute of Technology Bombay, India
MIRSL
Microwave Remote Sensing Laboratory (MiRSL)
University of Massachusetts Amherst, USA

💠General Information

This package generates derived SAR parameters (viz. polarimetric descriptors, vegetation indices, polarimetric decomposition parameters) from various SAR sensors or input polarimetric matrix (S2, C3, T3, Sxy, C2, T2).

💠Installation

  1. Install gdal Package

    conda install gdal -c conda-forge
  2. Install polsartools Package

    You may choose any of the following options

    • a. pip (stable release):

      pip install polsartools
    • b. conda (stable release)

      conda install polsartools -c bnarayanarao
    • c. GitHub (Weekly Build)

      pip install git+https://github.com/Narayana-Rao/polsartools.git#egg=polsartools

      Use this if you encounter errors like: AttributeError: module 'polsartools' has no attribute 'xyzabc'

      Note for Windows users: If installing via GitHub (option c), make sure to install Microsoft C++ build tools first. Download here: https://visualstudio.microsoft.com/visual-cpp-build-tools

💠Example Usage

Sample use cases and notebooks are provided at polsartools-notebooks repo. Detailed documentation is available at polsartools.readthedocs.io

💠Available functionalities:

  • Supported sensors

    • Airborne
      • UAVSAR (GRD, MLC)
      • ISRO ASAR (H5)
      • E-SAR (GTC)
    • Spaceborne
      • NISAR (RSLC, GSLC)
      • RISAT-1 (Compact-pol)
      • RADARSAT-2 (Full-pol)
      • ALOS-2 (Fine Beam Dual-pol (FBD), Quad-pol (HBQ) Level 1.1 CEOS)
    • Planetary
      • Chandrayaan-II DFSAR (Full-pol)
  • Full-pol :

    • H-A-Alpha decomposition
    • Yamaguchi 4-Component decomposition
    • Shannon Entropy parameters
    • Non-negative Eigen value decomposition
    • Neumann Decomposition
    • Model free 4-Component decomposition for full-pol data (MF4CF)[11]
    • Model free 3-Component decomposition for full-pol data (MF3CF)[4]
    • Radar Vegetation Index (RVI) [8]
    • Generalized volume Radar Vegetation Index (GRVI) [2]
    • Polarimetric Radar Vegetation Index (PRVI) [1]
    • Degree of Polarization (DOP) [10]
  • Dual-pol:

    • H-Alpha parameters
    • Shannon Entropy parameters
    • Dual-pol Radar Vegetation Index (DpRVI) [5]
    • Dual-pol Radar Vegetation Index for GRD data (DpRVIc) [12]
    • Radar Vegetation Index (RVI) [9]
    • Degree of Polarization (DOP) [10]
    • Polarimetric Radar Vegetation Index (PRVI) [1]
    • Dual-pol descriptors [13]
    • Model free 3-Component decomposition for dual-copol data (MF3CD)
  • Compact-pol :

    • Model free 3-Component decomposition for compact-pol data (MF3CC) [4]
    • Improved S-Omega decomposition for compact-pol data (iS-Omega) [7]
    • Compact-pol Radar Vegetation Index (CpRVI) [6]
    • Degree of Polarization (DOP) [10]
  • Polarimetric speckle filters:

    • boxcar
    • refine lee
  • Other polarimetric functions

    • Stokes parameters
    • multi-look PolSAR matrix
    • Convert matrices
    • Pauli RGB from full-pol data
    • Psuedo RGB from Dual/compact pol data
    • Polarimetric signatures
    • Full-pol and Dual-pol H-Alpha plot
    • Full-pol H-A-Alpha plot
    • H-Alpha clusters (Full-pol)

🎨 Logo Vibes Explained

The package logo visually encapsulates key concepts in PolSAR data processing:

  • Poincaré Sphere Representation: Central to the logo is a stylized visualization of the Poincaré sphere, highlighting the diversity of polarization states encountered in SAR imaging.
  • Huynen Polarization Fork: A dotted elliptical curve represents the great circle containing Huynen's characteristic polarization states: co-polarized maximum, saddle point, and minima. These vectors lie in a common plane, revealing target symmetries and scattering behaviors.
  • Quadrant Background: The four background squares reflect brightness variations in SAR intensity data, showcasing:
    • Bright vs. dark reflectivity regions
    • Co-polarized (diagonal) vs. cross-polarized (off-diagonal) intensity distribution

Designed to reflect what this package does best: demystify PolSAR, one pixel at a time.

💠Contributing

We welcome contributions! Whether it's fixing bugs, adding new features, or improving documentation, your help is greatly appreciated.

How to Contribute

  1. Fork the repository - Fork this repository to your GitHub account.

  2. Clone your fork - Clone the repository to your local machine:

    git clone https://github.com/Narayana-Rao/polsartools.git
  3. Create a branch - Create a new branch for your changes:

    git checkout -b feature-branch
  4. Make changes - Implement your changes or additions.

  5. Test your changes - Run the tests to ensure that your changes don’t break anything.

  6. Commit and push - Commit your changes and push them to your fork:

        git commit -am "Description of changes"
        git push origin feature-branch
  7. Create a Pull Request - Open a pull request to the main repository with a clear description of the changes.

💠Bug Reporting

If you encounter a bug or issue, please follow these steps to report it:

  1. Check the existing issues: Before submitting a new bug report, check if the issue has already been reported in the Issues section.

  2. Submit a bug report: If the issue hasn’t been reported, please open a new issue and include the following information:

    • A clear description of the problem.
    • Steps to reproduce the issue.
    • Expected vs actual behavior.
    • Any error messages or stack traces.
    • Relevant code snippets or files if possible.
    • Version of polsartools and Python you're using.

Click here to report a bug

💠Feature Requests

We’re always open to suggestions for new features or improvements!

  1. Check existing feature requests: Please make sure the feature request hasn't already been made in the Issues section.

  2. Submit a feature request: If it hasn’t been requested already, please open a new issue with the following information:

    • A clear description of the feature.
    • Why you think this feature would be beneficial.
    • Any specific use cases or examples.

Click here to request a feature

💠Cite

If you use PolSARtools in your research or projects, please cite it as follows:

Bhogapurapu, N., Dey, S., Mandal, D., Bhattacharya, A. and Rao, Y.S., 2021. PolSAR tools: A QGIS plugin for generating SAR descriptors. Journal of Open Source Software, 6(60), p.2970. doi: 10.21105/joss.02970

@article{bhogapurapu2021polsar,
  title={PolSAR tools: A QGIS plugin for generating SAR descriptors},
  author={Bhogapurapu, Narayanarao and Dey, Subhadip and Mandal, Dipankar and Bhattacharya, Avik and Rao, YS},
  journal={Journal of Open Source Software},
  volume={6},
  number={60},
  pages={2970},
  year={2021},
  doi= {10.21105/joss.02970}
}