A package for filtering triggers from radio astronomical matched template pulse searches.
Project description
astro-trigger-filter
A Python package for filtering radio astronomical pulse matched template searches.
Installation
pip install astro-trigger-filter
Usage
First generate a set of random triggers, sorten on time:
import random
N = 1000
# Generate random trigger data
start_times = [random.uniform(0.0, 1.0) for _ in range(N)]
widths = [random.uniform(0.00, 0.01) for _ in range(N)]
DMs = [random.uniform(0.0, 100.0) for _ in range(N)]
SNRs = [random.uniform(5.0, 10.0) for _ in range(N)]
# Reformat data into a list of tuples
triggers = [t for t in zip(start_times, widths,DMs, SNRs)]
# Make sure the list is sorted on start time
# aditional reverse sorting on DM improves the effiency
triggers.sort(key=lambda tup: (tup[0], -tup[2]))
Now filter the triggers:
from astrotf.radio_pulse import RadioPulseFilterGen
freq_lo_mhz = 1249.8
freq_hi_mhz = 1549.8
# Itialize the filter generator
gen = RadioPulseFilterGen(freq_lo_mhz, freq_hi_mhz)
# Apply the filter to the list of triggers and print results
for filtered_trigger in gen(triggers):
print(filtered_trigger)
print('Filtered {} triggers out of a set of {}'.format(gen.num_out, gen.num_in))
Usage with Pandas
import pandas as pd
import random
from astrotf.radio_pulse import RadioPulseFilterGen
N = 1000 # Number of random triggers
freq_lo_mhz = 1249.8
freq_hi_mhz = 1549.8
# Generate a Pandas Data Frame with random trigger data
# ..or read triggers from a file:
# triggers = pd.read_csv('triggers.txt', delim_whitespace=True)
triggers = pd.DataFrame(
[
[
random.uniform(0.0, 1.0),
random.uniform(0.0, 0.01),
random.uniform(0.0, 100.0),
random.uniform(5.0, 10.0)
]
for _ in range(N)
],
columns=['t', 'w', 'DM', 'SNR']
)
# sort time increasing, then DM descending, then width descending
triggers.sort_values(by=['t', 'DM', 'w'], ascending=[True, False, False], inplace=True)
# Itialize the filter generator
gen = RadioPulseFilterGen(freq_lo_mhz, freq_hi_mhz)
for filtered_trigger in gen((e.t, e.w, e.DM, e.SNR) for e in triggers.itertuples()):
print(filtered_trigger)
print('Filtered {} triggers out of a set of {}'.format(gen.num_out, gen.num_in))
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 Distribution
Built Distribution
Close
Hashes for astro-trigger-filter-0.1.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 473fac8bd5fe78d605248d08cf53124ef08862877337acd0bb242b17047a5123 |
|
MD5 | 39de866d5ea6c1c6f5ca3222931ac5c6 |
|
BLAKE2b-256 | cd0dc8fbc40efac7abe7d57ec06da4a4f15a388ad90b0331693f581624c96c61 |
Close
Hashes for astro_trigger_filter-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4217c65d6afe463be2148bad67be1d7828edc70290c7904d046dfaa4d8a1178 |
|
MD5 | 5e4f348c53590290fe00c136189a0adc |
|
BLAKE2b-256 | 4d210109d211cec8066ecbc10f0899a7179edcc42bbb45cc44282b8f5701c922 |