Skip to main content

ALeRCE light curve classifier

Project description

unittest codecov

Light Curve Classifier Library

Installing late_classifier

From PyPI stable version:

pip install numpy Cython
pip install -e git+https://git@github.com/alercebroker/turbo-fats#egg=turbofats
pip install -e git+https://git@github.com/alercebroker/mhps#egg=mhps
pip install -e git+https://git@github.com/alercebroker/P4J#egg=P4J
pip install lc-classifier

For development:

git clone https://github.com/alercebroker/lc_classifier.git
python -m pip install -e .

How to use the library?

Check the available Jupyter notebooks in the examples directory.

Functionalities

Feature computation

This library provides an extensive number of feature extractors for astronomical light curves, including period computation, autoregresive models, parametric models, statistical features, etc. We also provide tools to transform your data into the format that this library expects (Pandas dataframes).

Augmentation

If you want more samples you can use our ShortTransientAugmenter class. More data augmentation techniques will be implemented in further releases.

Classifier

Two classifiers are available: A traditional Random Forest model, and a hierarchical model made from 4 Random Forest classifiers.

Preprocessing for ZTF data:

Before computing features, we preprocess the time series with filters and boundary conditions:

  • Drop duplicate observations.
  • Discard noisy detections.
  • Discard bogus.
  • Filter time series with more than 5 detections.
  • Discard invalid values (like nans and infinite).

How can I add my own feature extractors to the library?

Feature extractors extend the following classes:

  • FeatureExtractor
  • FeatureExtractorSingleBand. This type of feature extractor runs independently on each available band.

Check out the existent feature extractors in the directory lc_classifier/features/extractors.

Profile functionalities

The easiest way to profile a step is using cProfile, for this we just have to run the step with the following command:

python -m cProfile -o <outputfile> profiling/<functionality>.py

After that you can run snakeviz (first install it).

snakeviz <outputfile>

Test functionalities

You must first install the following packages:

pip install coverage pytest

All scripts of tests must be in tests folder. For run all tests:

coverage run --source lc_classifier -m pytest -x -s tests/

If you want run a specify functionality you can run:

coverage run --source lc_classifier -m pytest -x -s tests/<functionality>

After that you can see a report of tests:

coverage report

Run a container

This repository comes with a Dockerfile to test the model.

To build the image run

docker build -t alerce/lc_classifier

Then run the container

docker run --rm -p 8888:8888 alerce/lc_classifier

The container comes with a jupyter notebook and some examples in http://localhost:8888

Reference

If you use this library, please cite our work:

@inproceedings{sanchez2020alert,
  title={Alert Classification for the ALeRCE Broker System: The Light Curve Classifier},
  author={S{\'a}nchez-S{\'a}ez, P and Reyes, I and Valenzuela, C and F{\"o}rster, F and Eyheramendy, S and Elorrieta, F and Bauer, FE and Cabrera-Vives, G and Est{\'e}vez, PA and Catelan, M and others},
  year={2020}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lc_classifier-2.0.2.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

lc_classifier-2.0.2-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file lc_classifier-2.0.2.tar.gz.

File metadata

  • Download URL: lc_classifier-2.0.2.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for lc_classifier-2.0.2.tar.gz
Algorithm Hash digest
SHA256 0b253181d9106bcb71c4848d420695f4e976979201cddb798315757d9155c37f
MD5 ea7a43881fca6869f3e928e913de9faf
BLAKE2b-256 623910a8a99abee1e149dfcb6f601aa2871aa68f8c264a30572830624629c8f6

See more details on using hashes here.

File details

Details for the file lc_classifier-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: lc_classifier-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for lc_classifier-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0abe20e645f2dfb768dfea50d70c69208d102c525e6d89554a5260071bff6b9b
MD5 76151ff46f123e7fc30156323d0a1820
BLAKE2b-256 ac5c5fcfec1352b02ce50aefd5ff71c53f1bff612859c37a84b10dec46aeeef8

See more details on using hashes here.

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