Metadata-Version: 2.4
Name: perseo-quality
Version: 1.0.0
Summary: Python Ecosystem for Remote Sensing & Earth Observation: SAR Products Quality analyses.
Project-URL: Homepage, https://github.com/aresys-srl/perseo
Project-URL: Repository, https://github.com/aresys-srl/perseo
Project-URL: Documentation, https://aresys-srl.github.io/perseo
Author-email: "Aresys S.R.L." <info@aresys.it>
License: MIT License
        
        Copyright (C) Aresys S.r.l. <info@aresys.it>
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE.txt
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: netcdf4>=1.7.2
Requires-Dist: numba>=0.61
Requires-Dist: numpy>2
Requires-Dist: pandas>=1.4.0
Requires-Dist: perseo-core>=1.0.0
Requires-Dist: pydantic
Requires-Dist: scipy>1.13
Requires-Dist: xarray
Provides-Extra: dev
Requires-Dist: nox; extra == 'dev'
Requires-Dist: pylint; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocstrings-python; extra == 'docs'
Requires-Dist: zensical; extra == 'docs'
Provides-Extra: graphs
Requires-Dist: matplotlib>=3.5; extra == 'graphs'
Provides-Extra: local-testing
Requires-Dist: sct-aresys-reader>=1.2.0; extra == 'local-testing'
Requires-Dist: sct-sentinel1-reader>=1.2.0; extra == 'local-testing'
Requires-Dist: sct[graphs]>=2.2.0; extra == 'local-testing'
Provides-Extra: test
Requires-Dist: matplotlib>=3.5; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-mock>=3.15.1; extra == 'test'
Description-Content-Type: text/markdown

# perseo-quality

[![PyPI version](https://img.shields.io/pypi/v/perseo-quality)](https://pypi.org/project/perseo-quality/)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue)](https://python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE.txt)

**P**ython **E**cosystem for **R**emote **S**ensing & **E**arth **O**bservation (PERSEO) QUALITY package for SAR products
quality analysis and calibration assessment.

## Features

### Point Target Analysis

Analysis of point targets (passive corner reflectors or transponders) in SAR scenes.

- **Impulse Response Function (IRF)**: range and azimuth resolution, PSLR, ISLR, SSLR (1D and 2D)
- **Radar Cross-Section (RCS)**: RCS estimation, RCS errors, peak phase error, clutter, SCR
- **Localization Errors**: slant range and ground localization error, azimuth localization error

### Radiometric Analysis

Global quality assessment on homogeneous distributed targets.

- **Block-wise**: automatic scene partitioning into azimuth blocks (bursts for TopSAR/ScanSAR)
  - Noise Equivalent Sigma-Zero (NESZ) profiles
  - Average Elevation Profiles
  - Scalloping Profiles
  - KPI estimation
  - Configurable block size, range margin, outlier removal and smoothing
- **Point-wise**: profiles extracted around a selected location

### Interferometric Analysis

Coherence analysis from interferometric SAR products.

- 2D coherence intensity histograms along range and azimuth
- Burst-by-burst processing with configurable partitioning
- Graphical representation

### Spectral Analysis

Spectral content investigation in the frequency domain.

- **Point Target**: absolute and phase spectra at each target location
- **Distributed Target**: spectral amplitude on bursts or azimuth blocks
- Range and azimuth profiles at each third of the data portion

### Elevation Notch Analysis

Antenna pointing calibration from dedicated Elevation Notch (EN) products.

- Mis-pointing angle estimation by matching measured range profiles with theoretical EAP
- Robust estimation using EN patterns with central low-power "hole"

### Target Ambiguity Ratio (PTAR / DTAR)

Signal-to-ambiguity ratio computation.

- **PTAR**: Point Target Ambiguity Ratio
- **DTAR**: Distributed Target Ambiguity Ratio
- Left and right ambiguity localization

### Data Model

All analyses are designed around a generic Python protocol, making them format-agnostic and independent of the
input product type. The protocol and its utilities are available in the `perseo_quality.io` module.

## Installation

```bash
pip install perseo-quality[graphs]
```

The `[graphs]` extra enables graphical output (`matplotlib`). For development:

```bash
pip install perseo-quality[dev,test,docs]
```

## License

This project is licensed under the MIT License. See the [LICENSE.txt](LICENSE.txt) file for details.

Copyright &copy; 2026-present Aresys S.r.L. <info@aresys.it>
