Skip to main content

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

Project description

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

Silver Medal 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

🏆 Awards & Recognition

ISRS I-CON (Silver)

This award was presented by the Indian Society of Remote Sensing (ISRS) during the Innovation Contest for Geo Spatial Information Technology-2025.

Why this work was recognized: Our project was honored for addressing the "Big Data" challenges of the current generation of SAR missions (such as NISAR, EOS-04, BIOMASS, and Sentinel-1). The judges recognized PolSARtools for:

  • ☁️ Cloud-Native Innovation: Bridging the gap between raw polarimetric data and Analysis Ready Data (ARD) using cloud-optimized formats.
  • 🔓 Open Science: Promoting inclusive research by lowering the coding barrier through our integrated QGIS plugin.
  • 🏗️ Scalability: Providing a reproducible architecture capable of handling the petabyte-scale influx of modern satellite imagery.

💠 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, C4, C3, T4, 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/polsartools/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

The following code example demonstrates a typical processing pipeline using polsartools on NASA-ISRO SAR (NISAR) Geocoded Single-look Complex (GSLC) data. It includes polarimetric covariance matrix (C3) extraction, Pauli RGB visualization, speckle filtering, H/A/α decomposition, and plotting in the H/α and H/A/α feature spaces.

import polsartools as pst

def main():
  # Generate C3 from NISAR GSLC full-pol data with 5x5 multilooking
  pst.import_nisar_gslc('path/to/nisar_gslc.h5',mat='C3',
                    azlks=5, rglks=5,
                    fmt='tif', cog=False, 
                    )

  # Visualize Pauli-decomposition RGB
  c3path = 'path/to/nisar_gslc/C3'
  pst.pauli_rgb(c3path)

  # Apply 3x3 refined-Lee speckle filter
  pst.filter_refined_lee(c3path,win=3)

  # Perform H-A-Alpha decomposition
  c3_rlee = 'path/to/nisar_gslc/rlee_3x3/C3'
  pst.h_a_alpha_fp(c3_rlee)

  # Generate H-Alpha 2d plot
  entropy_path = c3_rlee+'/H_fp.tif'
  alpha_path = c3_rlee+'/alpha_fp.tif'
  pst.plot_h_alpha_fp(entropy_path, alpha_path,
                      ppath='./halpha_2D.png')

  # Generate H-A-Alpha 3d plot
  ani_path = c3_rlee + '/anisotropy_fp.tif'
  pst.plot_h_a_alpha_fp(entropy_path, ani_path,alpha_path,
                      ppath='./haalpha_3D.png')

if __name__ == "__main__":
    main()

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

💠 Available functionalities:

Full list of available functions is provided here : Functions

🎨 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/polsartools/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 polsartoos in your research or projects, please cite the official journal paper:

Bhogapurapu, N., Siqueira, P., & Bhattacharya, A. 2025. polsartools: A Cloud-Native Python Library for Processing Open Polarimetric SAR Data at Scale. SoftwareX, 33, 102490. doi: 10.1016/j.softx.2025.102490

BibTeX

@article{bhogapurapu2025polsartools,
title = {Polsartools: A cloud-native python library for processing open polarimetric SAR data at scale},
author = {Narayanarao Bhogapurapu and Paul Siqueira and Avik Bhattacharya},journal = {SoftwareX},
volume = {33},
pages = {102490},
year = {2026},
publisher={Elsevier},
issn = {2352-7110},
doi = {https://doi.org/10.1016/j.softx.2025.102490},
}

💠 Funding

This research was partially supported by NASA through the NISAR grant (#80NSSC22K1869), with additional support from the Multi-Mission Algorithm and Analysis Platform (MAAP).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polsartools-0.11.tar.gz (6.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

polsartools-0.11-cp313-cp313-win_amd64.whl (518.8 kB view details)

Uploaded CPython 3.13Windows x86-64

polsartools-0.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

polsartools-0.11-cp313-cp313-macosx_11_0_arm64.whl (539.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

polsartools-0.11-cp312-cp312-win_amd64.whl (518.8 kB view details)

Uploaded CPython 3.12Windows x86-64

polsartools-0.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

polsartools-0.11-cp312-cp312-macosx_11_0_arm64.whl (539.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

polsartools-0.11-cp311-cp311-win_amd64.whl (514.9 kB view details)

Uploaded CPython 3.11Windows x86-64

polsartools-0.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

polsartools-0.11-cp311-cp311-macosx_11_0_arm64.whl (535.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

polsartools-0.11-cp310-cp310-win_amd64.whl (513.0 kB view details)

Uploaded CPython 3.10Windows x86-64

polsartools-0.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

polsartools-0.11-cp310-cp310-macosx_11_0_arm64.whl (532.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

polsartools-0.11-cp39-cp39-win_amd64.whl (514.2 kB view details)

Uploaded CPython 3.9Windows x86-64

polsartools-0.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

polsartools-0.11-cp39-cp39-macosx_11_0_arm64.whl (532.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

polsartools-0.11-cp38-cp38-win_amd64.whl (511.9 kB view details)

Uploaded CPython 3.8Windows x86-64

polsartools-0.11-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

polsartools-0.11-cp38-cp38-macosx_11_0_arm64.whl (531.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file polsartools-0.11.tar.gz.

File metadata

  • Download URL: polsartools-0.11.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11.tar.gz
Algorithm Hash digest
SHA256 df362c3a249429b74db9a38954f12fba91c9433a76011b8aa938bff134f18d55
MD5 b2b3f973ea6036b1d412fe12543f8b03
BLAKE2b-256 42fcb39345829fc0112310ed2b72d7849f1ef37605bc4e2716bb7e41a467184f

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: polsartools-0.11-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 518.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 738c5853b9ae7bf68d70abd6ba181a91c5c7f9b80e2bab33ef86de19714a8dd6
MD5 1c32389c7bb5156f6945dfe651762414
BLAKE2b-256 fddef1729380dda0b7a3e0d94932a3592700a320aac110876c4a537bbf9386b7

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82fcd7d8a857874b1cd2f79df8980361d69a7cec3c7cee57bc49759b331bb1c6
MD5 657a1b055938f2135e1a7adda8ca51b1
BLAKE2b-256 d313efeb0d10aaf490aa7527ae0f114e8c90b9a1d7c71650c3b9b7a2dee5208c

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 198a117ab39b8100e4fcf2a227bacf6ed40d5b75adab77158d02fd65824279dd
MD5 348466090224f5b3d8137eab0f6643d5
BLAKE2b-256 c414e04b64cef1078ebdf917465ccac3a241e3d750c87b364232d6994bc23c27

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: polsartools-0.11-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 518.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e731205da24947cf15ed7f60ca84582e61b0593a937e1e5876192e0f61043c06
MD5 ff92f2f75b4833a5274d2cef1e2c7cb3
BLAKE2b-256 c309cbb6a59ddaee448f605630f8d98320b40971971ba48a8edd8be050c70dbe

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfb165525d448f069fc6bd47e2a99610711931fbeb265cd0a002a840da85c7d3
MD5 35bfe15a2ad914712fb83f72bcc4b303
BLAKE2b-256 702247e319a27604f5c15dbc9be300cc25714bb624edd4102c2060bd1e322a39

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b6833fa0211b4dfaa5a9dcdb5a244b7a04155407bf012ff959003b0f7455ab3
MD5 924125aa7aec21d792dd14e12d880352
BLAKE2b-256 06e17867bfac6083c46796f6cbbc063706cc0ed14e8ed1f7abf8d7bdd9706042

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: polsartools-0.11-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 514.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bec402832e04f5919a3278ebf000f2a32742977df14dde571b1cf383900e9591
MD5 dd28594a1a7d1e0871fa3d593b3f84de
BLAKE2b-256 5af20e4be594c8d9dd22962db85a23a012080ba44281338171c7938045541f58

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 345bf11eef09e1a1eaa9802966d70714c19f93b6467c0815d7348cd0ef7e09d5
MD5 684457f353e3fdf058e08a05af15a4d7
BLAKE2b-256 38f95f05140c6c31e4f8a3d60238534207a475af0429e8b11dfec8f296e732f7

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b36cafce688a1264a977b84c624166369b0bf4c8fcd92dae7566d0e63b43c900
MD5 7fa58ea53fdc71b6569db9fb34d65cfa
BLAKE2b-256 bfab2e450815bf5b086d3e4e3c8a29e7c18f9123b2d2655a127bd58d0392be42

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: polsartools-0.11-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 513.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 abdcff93678b28fb74aa97462fa5192b418941faa6da71aa2e59cf25b4ca9294
MD5 a571fc08daebd88ca09f5b8d1b31dac3
BLAKE2b-256 97abcbb0e348fdb04ec2c587711656f98ed1b861e6669361f37edcb365f223c2

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d75493237da913db4694ec57537e685a83694c44194ea37be5db22abfba25fb
MD5 1b3400fcf9294bfe91f1470f023fa3cd
BLAKE2b-256 363f4fc807e0b474d59d2228026737983c9720cdff5272083af8d4ea9f74bf11

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91c0b35f2ec701f8c94268b1b13ceaecb3488f7c2fd0b7cb82c45bf8f8c73aac
MD5 23468d479842cf495706b29a125fc59b
BLAKE2b-256 612a05b3059a63813c1eaf5f43721a1e15660c05b9a5e938133f854a2379d94c

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: polsartools-0.11-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 514.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a177820c584e05819f891313c2b071940ffaff13015435b89ca3985c76a5ea6d
MD5 a833a24aa26e060272c68831f60368c8
BLAKE2b-256 66eb05835e1df8ccb60ef203bf470aa8ad9d2b288a2f89b465550dfabe3f4e95

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f9344afd0ff170b498090c2ebd3039a120f06c108b331eec6115e290d2df43e
MD5 36a2adc483ebf0c7ddc1aa490fe62e86
BLAKE2b-256 1de53e1eba81761788f157354d57ae69fbeadd4a6211624b339cf12931b3ca9c

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72af36695c9843c9b06444d213c2d6d8869b1a327048e7ff27727b311c7145c2
MD5 2de0247fbe40904ae468d941cdb1e4b0
BLAKE2b-256 71c695e98749d167d1a7c6d0eef76d745069f9d92c66a686b5b500e7f8e9aba7

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: polsartools-0.11-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 511.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for polsartools-0.11-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 727e4b1a1de379a4b39c083836094e95531124111467b8013b48fa97383ee4b7
MD5 ccb6a7917a68c1c7d3e2f01ad063b2fa
BLAKE2b-256 c3e94615ca43b59fc80e33a5117ccf1faea3ce3dd9653f4511191d35fe28a7a8

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 285db9390c67726147f466b39e00d47d4592e0b06b5d29e7f9eef978ae5baabb
MD5 ac88699e83abf8a2ba1af3281be50b32
BLAKE2b-256 c60383f2a6e6f41b81776c00bcca1f04616c82a310bf4f8b2a1c123e5bf0c203

See more details on using hashes here.

File details

Details for the file polsartools-0.11-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polsartools-0.11-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2095d3c9a2fdb26f0dbfc7c8003b01d918cc1ac5ea13120c522613dd5210e080
MD5 4aed7952d7605af5f1a58c22ff4c6855
BLAKE2b-256 723f27c80bb877737e26a7abd14210e5307fd98b42d2b7479473a6b5611c95e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page