Welcome to nicerlab’s documentation!

The nicerlab package offers x-ray timing analysis tools for python. The goal of nicerlab is not to present a comprehensive timing library, but rather to give a framework of efficient processing methods and convenient data classes. These tools are intended to be used as building blocks for a customized python-based pipeline.

To achieve flexibility, the data objects of nicerlab are derived from numpy’s array object. This allows, for instance, a Light curve object to be reshaped and binned as though it is simply a multi-dimensional ndarray.

The I/O operations of nicerlab use astropy to interface directly with fits formatted data.

To give a taste of what a nicerlab implementation might look like, the following code block reads a standard event list and computes a power spectrum for each good time interval.

import nicerlab as ni

filename = "my_file.fits"

events, gti = ni.read_events_and_gti(filename)

light_curves = [
    ni.make_light_curve(events, dt=1, tstart=t0, tstop=t1) for t0,t1 in gti
]

power_spectra = [
    ni.make_power_spectrum(lc, tseg=64, collect='avg') for lc in light_curves
]

for i,pds in enumerate(power_spectra):
    ni.io.write_pds(pds, "pds{}.fits".format(i))

Warning

While most of the current implementation will work as expected, nicerlab is still in development. Some