Skip to main content

Generate noisified lightcurves based on the BTS sample and retrain Parsnip with these.

Project description

ztfparsnip

PyPI version CI Coverage Status

Retrain Parsnip for ZTF. This is achieved by using fpbot forced photometry lightcurves of the Bright Transient Survey. These are augmented (redshifted, noisified and - when possible - K-corrected).

The package is maintained by A. Townsend (HU Berlin) and S. Reusch (DESY).

The following augmentation steps are taken for each parent lightcurve to generate a desired number of children (calculated via weights):

  • draw a new redshift from a cubic distribution with maximum redshift increase delta_z
  • only accept the lightcurve if at least n_det_threshold datapoints are above the signal-to-noise threshold SN_threshold
  • if the lightcurve has an existing SNCosmo template, apply a K-correction at that magnitude (if k_corr=True)
  • randomly drop datapoints until subsampling_rate is reached
  • add some scatter to the observed dates (jd_scatter_sigma in days)
  • if phase_lim=True, only keep datapoints during a typical duration (depends on the type of source)

:warning: Note that a high delta_z without loosening the SN_threshold and n_det_threshold will result in a large dropout rate, which will ultimately lead to far less lightcurves being generated than initially desired.

Usage

Create an augmented training sample

from pathlib import Path
from ztfparsnip.create import CreateLightcurves

weights = {"sn_ia": 9400, "tde": 9400, "sn_other": 9400, "agn": 9400, "star": 9400}

if __name__ == "__main__":
    sample = CreateLightcurves(
        output_format="parsnip",
        classkey="simpleclasses",
        weights=weights,
        train_dir=Path("train"),
        plot_dir=Path("plot"),
        seed=None,
        phase_lim=True,
        k_corr=True,
    )
    sample.select()
    sample.create(plot_debug=False)

Train Parsnip with the augmented sample

from ztfparsnip.train import Train

if __name__ == "__main__":
    train = Train(classkey="simpleclasses", seed=None)
    train.run()

Evaluate the Parsnip model

from ztfparsnip.train import Train

if __name__ == "__main__":
    train = Train(classkey="simpleclasses", seed=None)
    train.classify()

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

ztfparsnip-0.3.0.tar.gz (3.1 MB view hashes)

Uploaded Source

Built Distribution

ztfparsnip-0.3.0-py3-none-any.whl (3.2 MB view hashes)

Uploaded Python 3

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