High-performance radio astronomy single pulse search tools
Project description
AstroFlow is an end-to-end search pipeline for radio single pulses and fast radio bursts (FRBs). It combines CUDA-accelerated dedispersion, RFI mitigation, AI-assisted candidate detection, and publication-ready candidate visualization in a YAML-configured command-line workflow. The pipeline supports FILTERBANK (.fil) and PSRFITS (.fits) observations and is designed for high-throughput offline or near-real-time searches.
Documentation: https://lintian233.github.io/astroflow/
Preview
Installation
Python 3.10 to 3.12 is recommended.
pip install pulseflow
Read the full documentation: https://lintian233.github.io/astroflow/
Source Build
Source builds require CUDA Toolkit 12.6 or newer, GCC/G++ 11.4 or compatible, CMake 3.22 or newer, Conan 2.x, Ninja, and Python 3.10 to 3.12.
git clone https://github.com/lintian233/astroflow
cd astroflow
bash configure.sh
conda activate dev-astroflow-ml
bash build.sh
pip install -e .
Development builds are also published to TestPyPI:
pip install --pre -i https://test.pypi.org/simple/ pulseflow --extra-index-url https://pypi.org/simple
Citation
If AstroFlow is useful in your research, please cite:
ASTROFLOW: A Real-Time End-to-End Pipeline for Radio Single-Pulse Searches
https://doi.org/10.3847/1538-4365/ae4a26
Limitations
- For best throughput, keep individual observations below roughly 300 seconds and below 5 GB per input file. Larger files may become I/O-bound and increase memory pressure.
- When a file produces more than roughly 50 candidates, Python-side candidate object construction and plotting can become the dominant runtime cost.
Roadmap
- Add PSRDADA ingestion and zero-copy memory mapping for high-throughput streaming.
- Reuse dedispersed data products across multi-parameter searches.
- Complete the injection-pulse and model fine-tuning workflow.
- Expand automated test coverage.
Community
Star History
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6143c2a9e9e983d180f9d7df1bc645577c08c060166cadef9fde3b60e47b6a63
|
|
| MD5 |
a2eb3333659022960f537ae6e06ff933
|
|
| BLAKE2b-256 |
eb6ccc49f4f2b0714e7120ffbe74679e61590a5b896319cd706e05f95b9cb001
|
Provenance
The following attestation bundles were made for pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on lintian233/astroflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
6143c2a9e9e983d180f9d7df1bc645577c08c060166cadef9fde3b60e47b6a63 - Sigstore transparency entry: 1678330307
- Sigstore integration time:
-
Permalink:
lintian233/astroflow@aefb2f5e3bb2a83adf5b4d4d2dd7ebc2718fb7ce -
Branch / Tag:
refs/tags/v0.1.12 - Owner: https://github.com/lintian233
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aefb2f5e3bb2a83adf5b4d4d2dd7ebc2718fb7ce -
Trigger Event:
push
-
Statement type:
File details
Details for the file pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9092dd306350ddbe81b96fb7527d85d94f88176c14ba8877401d4b54228f11c
|
|
| MD5 |
a9282886fe5874873656851794e8109d
|
|
| BLAKE2b-256 |
eb2455b53379b75e6f8536b42277bdef6c72d3dedd140e15cbbde85fbdc41596
|
Provenance
The following attestation bundles were made for pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on lintian233/astroflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
a9092dd306350ddbe81b96fb7527d85d94f88176c14ba8877401d4b54228f11c - Sigstore transparency entry: 1678329899
- Sigstore integration time:
-
Permalink:
lintian233/astroflow@aefb2f5e3bb2a83adf5b4d4d2dd7ebc2718fb7ce -
Branch / Tag:
refs/tags/v0.1.12 - Owner: https://github.com/lintian233
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aefb2f5e3bb2a83adf5b4d4d2dd7ebc2718fb7ce -
Trigger Event:
push
-
Statement type:
File details
Details for the file pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c25ab67aa2a54a35a9fc414095ebb85e66e17eb5c36edfa29613b14b9c8d8774
|
|
| MD5 |
77697d2b6ae307c07cabdef57d1ea6b8
|
|
| BLAKE2b-256 |
e2e15cdb8cda0bc76c7d4579ad0c38900dbad023558e7ab95631f2be7cf80229
|
Provenance
The following attestation bundles were made for pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on lintian233/astroflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
c25ab67aa2a54a35a9fc414095ebb85e66e17eb5c36edfa29613b14b9c8d8774 - Sigstore transparency entry: 1678330071
- Sigstore integration time:
-
Permalink:
lintian233/astroflow@aefb2f5e3bb2a83adf5b4d4d2dd7ebc2718fb7ce -
Branch / Tag:
refs/tags/v0.1.12 - Owner: https://github.com/lintian233
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aefb2f5e3bb2a83adf5b4d4d2dd7ebc2718fb7ce -
Trigger Event:
push
-
Statement type: