isarpy
Inverse Synthetic Aperture Radar processing library in Python
Features
- 1-D convolution (
convolve_1d) – FFT, overlap-add, or direct methods. - 2-D convolution (
convolve_2d) – FFT-based for range-Doppler maps. - Matched filter / pulse compression (
matched_filter) – cross-correlation with arbitrary reference waveforms.
Installation
# runtime only
pip install isarpy
# with dev tools (pytest, ruff)
pip install "isarpy[dev]"
With uv:
uv add isarpy
Quick start
import numpy as np
from isarpy.core import matched_filter
# LFM chirp reference
ref = np.exp(1j * np.pi * np.arange(64) ** 2 / 64)
# received signal (noisy)
signal = np.zeros(256, dtype=complex)
signal[50:114] = ref # chirp at delay 50
compressed = matched_filter(signal, ref, mode="same")
peak = np.argmax(np.abs(compressed))
print(f"Detected target at range-bin {peak}") # → ~82
Running tests
# with uv
uv run pytest
# or directly
pytest
Project layout
isarpy/
├── src/
│ └── isarpy/
│ ├── __init__.py
│ └── core/
│ ├── __init__.py
│ └── convolution.py
├── tests/
│ ├── conftest.py
│ └── core/
│ └── test_convolution.py
├── notebooks/
├── pyproject.toml
└── LICENSE
Contributing
- Fork the repository.
- Create a feature branch:
git checkout -b feat/my-feature. - Run
uv run ruff check src testsanduv run pytestbefore pushing. - Open a pull request.
License
Apache 2.0 – see LICENSE.
Metadata
Release files for isarpy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| isarpy-0.1.0.tar.gz | 209.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| isarpy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 221.6 kB
Release files / isarpy-0.1.0.tar.gz
| Download URL | isarpy-0.1.0.tar.gz |
|---|---|
| Size | 209.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b0d75eb6efedc2f523d464d3d367dca1d43508fc1255cf0dc48a529a355ad5d
|
|
BLAKE2b-256 checksum How to use checksums |
7c201a30620cf9be743a3cab9b6528caded103d212c68bb3e70dcf1a5e6d9699
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.
Transparency logRelease files / isarpy-0.1.0-py3-none-any.whl
| Download URL | isarpy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a91f1b5f2bf0208dd21b89308cddcc0d5a6dfeaebbd7dcba0ad55f02c51b76aa
|
|
BLAKE2b-256 checksum How to use checksums |
c37d9db515576631e906978319fa61cdf50e694e928cc76a8c7c991db9668443
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.
Transparency log