SterlingYM / astroPIPS

A set of tools for photometric analysis. Determines the period of short-period variable stars.
https://pips.readthedocs.io/en/latest/
MIT License
7 stars 0 forks source link
astronomy jupyter-notebook pipelines python variable-stars

Period-determination and Identification Pipeline Suite (PIPS)

GitHub tag (latest SemVer pre-release) GitHub Run tests codecov Documentation Status

PIPS is a Python pipeline designed to analyze the lightcurves of astronomical objects whose brightness changes periodically. Our pipeline can be imported quickly and is designed to be user friendly. PIPS was originally developed to determine the periods of RR Lyrae variable stars and offers many features designed for variable star analysis. We have expanded PIPS into a suite that can obtain period values for almost any type of lightcurve with both speed and accuracy. PIPS can determine periods through several different methods, analyze the morphology of lightcurves via fourier analysis, estimate the statistical significance of the detected signal, and determine stellar properties based on preexisting stellar models. Currently our team is also exploring the possibility of using this pipeline to detect periods of exoplanets as well.

A detailed description of PIPS and its algorithms is provided in our paper.

NOTE: We are currently updating the documentation to match the content with the paper

(last edit: February 24th, 2022)


Developers


Publications

Please cite the following if PIPS is utilized for a scientific project:


Dependencies


Usage (ver 0.3.0)

  1. $ git clone https://github.com/SterlingYM/PIPS
  2. $ cd PIPS
  3. $ jupyter notebook
  4. Start a new Python notebook. In a jupyter cell, run the following:
    
    import PIPS

data preparation -- create [time,mag,mag_err] list

data = PIPS.data_readin_LPP('sample_data/005.dat',filter='V') phot_obj = PIPS.photdata(data)

period detection

star.get_period(multiprocessing=False)

generate best-fit light curve

x_th,y_th = star.get_bestfit_curve()

plot light curve

star.plot_lc() plt.plot(x_th/star.period,y_th,c='yellowgreen',lw=3,alpha=0.7) # x-axis normalized to unitless phase plt.plot(x_th/star.period+1,y_th,c='yellowgreen',lw=3,alpha=0.7)



Sample data credit: UCB SNe Search Team (Filippenko Group)