Skip to main content

Feature extractor from noisy time series

Project description

light-curve processing toolbox for Python

This package provides a collection of light curve feature extractions classes.

Installation

python3 -mpip install light-curve-python

Note that in the future the package will be renamed to light-curve

Feature evaluators

Most of the classes implement various feature evaluators useful for astrophysical sources classification and characterisation using their light curves.

import light_curve as lc
import numpy as np

# Time values can be non-evenly separated but must be an ascending array
t = np.linspace(0.0, 1.0, 101)
perfect_m = 1e3 * t + 1e2
err = np.sqrt(perfect_m)
m = perfect_m + np.random.normal(0, err)

# Half-amplitude of magnitude
amplitude = lc.Amplitude()
# Fraction of points beyond standard deviations from mean
beyond_std = lc.BeyondNStd(nstd=1)
# Slope, its error and reduced chi^2 of linear fit
linear_fit = lc.LinearFit()
# Feature extractor, it will evaluate all features in more efficient way
extractor = lc.Extractor(amplitude, beyond_std, linear_fit)

# Array with all 5 extracted features
result = extractor(t, m, err)

print('\n'.join(f'{name} = {value:.2f}' for name, value in zip(extractor.names, result)))

Print feature classes list

import light_curve as lc

print(lc._FeatureEvaluator.__subclasses__())

Read feature docs

import light_curve as lc

help(lc.BazinFit)

dm-dt map

Class DmDt provides dm–dt mapper (based on Mahabal et al. 2011, Soraisam et al. 2020).

import numpy as np
from light_curve import DmDt
from numpy.testing import assert_array_equal

dmdt = DmDt.from_borders(min_lgdt=0, max_lgdt=np.log10(3), max_abs_dm=3, lgdt_size=2, dm_size=4, norm=[])

t = np.array([0, 1, 2], dtype=np.float32)
m = np.array([0, 1, 2], dtype=np.float32)

desired = np.array(
    [
        [0, 0, 2, 0],
        [0, 0, 0, 1],
    ]
)
actual = dmdt.points(t, m)

assert_array_equal(actual, desired)

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

light_curve_python-0.3.1_beta.0.tar.gz (48.9 kB view hashes)

Uploaded Source

Built Distributions

light_curve_python-0.3.1_beta.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

light_curve_python-0.3.1_beta.0-cp39-cp39-macosx_10_7_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.9 macOS 10.7+ x86-64

light_curve_python-0.3.1_beta.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

light_curve_python-0.3.1_beta.0-cp38-cp38-macosx_10_7_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.8 macOS 10.7+ x86-64

light_curve_python-0.3.1_beta.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

light_curve_python-0.3.1_beta.0-cp37-cp37m-macosx_10_7_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.7m macOS 10.7+ x86-64

light_curve_python-0.3.1_beta.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.1 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

light_curve_python-0.3.1_beta.0-cp36-cp36m-macosx_10_7_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.6m macOS 10.7+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page