![]() Microwave Remote Sensing Lab (MRSLab) Indian Institute of Technology Bombay, India |
![]() Microwave Remote Sensing Laboratory (MiRSL) University of Massachusetts Amherst, USA |
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.
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).
-
Install
gdalPackageconda install gdal -c conda-forge
-
Install
polsartoolsPackageYou 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
-
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
Full list of available functions is provided here : Functions
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.
We welcome contributions! Whether it's fixing bugs, adding new features, or improving documentation, your help is greatly appreciated.
-
Fork the repository - Fork this repository to your GitHub account.
-
Clone your fork - Clone the repository to your local machine:
git clone https://github.com/polsartools/polsartools.git
-
Create a branch - Create a new branch for your changes:
git checkout -b feature-branch
-
Make changes - Implement your changes or additions.
-
Test your changes - Run the tests to ensure that your changes donโt break anything.
-
Commit and push - Commit your changes and push them to your fork:
git commit -am "Description of changes" git push origin feature-branch -
Create a Pull Request - Open a pull request to the main repository with a clear description of the changes.
If you encounter a bug or issue, please follow these steps to report it:
-
Check the existing issues: Before submitting a new bug report, check if the issue has already been reported in the Issues section.
-
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
polsartoolsand Python you're using.
Weโre always open to suggestions for new features or improvements!
-
Check existing feature requests: Please make sure the feature request hasn't already been made in the Issues section.
-
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.
If you use polsartoos in your research or projects, please cite the official journal paper:
Bhogapurapu, N., Siqueira, P., & Bhattacharya, A. 2026. polsartools: A Cloud-Native Python Library for Processing Open Polarimetric SAR Data at Scale. SoftwareX, 33, 102490. doi: 10.1016/j.softx.2025.102490
@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},
}This research was partially supported by NASA through the NISAR grant (#80NSSC22K1869), with additional support from the Multi-Mission Algorithm and Analysis Platform (MAAP).


