- Added flux_unit and flux_quantity properties to the LightCurve class to enable users to keep track of a light curve's flux units. [#591]
- Changed the default behavior of LightCurve.plot() to use normalize=False, ie. plots now display a light curve in its intrinsic units by default. [#591]
- Added an optional unit argument to LightCurve.normalize() to make it convenient to obtain a relative light curve in percent (unit='percent'), parts per thousand (unit='ppt') or parts per million (unit='ppm'). [#591]
- Changed LombScarglePeriodogram.from_lightcurve() to not normalize the input light curve by default. [#591]
- Changed LightCurve.normalize() to emit a warning if the light curve appears to be zero-centered. [#589]
- Fixed an issue which caused the search functions to be incompatible with the latest version of astroquery (v0.3.10). [#598]
- Added support for performing mathematical operations involving LightCurve objects, e.g. two LightCurve objects can now be added together. [#532]
- Updated the online tutorials (https://docs.lightkurve.org/tutorials) to take all recent Lightkurve API changes into account. [#596]
Lightkurve v1.1.1 is a bugfix release which includes the following changes:
- Changed search_targetpixelfile() and search_lightcurvefile() to emit a helpful warning if an ambigous target identifier is used, i.e. if a number is entered in the range where the K2 EPIC and TESS TIC catalogs overlap. [#558]
- Changed TargetPixelFile.plot() to always display the cadence number. [#562]
- Changed TargetPixelFile.interact() to store light curves created using the tool in the SAP_FLUX column rather than the FLUX column of the new light curve file, for consistency with pipeline products. [#559]
- Added scatter() and errorbar() methods to the LightCurveFile class to make it consistent with the plotting methods provided by LightCurve objects. [#382]
- Fixed a bug in KeplerTargetPixelFile.from_fits_images() to ensure the correct pixels are selected in cutout mode. [#571]
- Fixed a series of minor documentation and code quality issues to enable Lightkurve to receive the "code quality A" certification by codacy.com. [#557, #560, #564, #565, #566, #568, #573, #574, #575]
- Added the lightkurve.seismology sub-package which enables quick-look asteroseismic quantities to be extracted from Periodogram objects. [#496]
- Added the stitch() method to LightCurveCollection and LightCurveFileCollection to enable multi-sector/multi-quarter data to be combined more easily. [#548]
- Improved the LightCurve.fill_gaps() method to fill gaps in a light curve with Gaussian noise proportional to the light curve's CDPP. [#548]
- Added the TargetPixelFile.cutout() method which enables smaller Target Pixel Files to be extracted from larger ones. [#537]
- Added the pld_aperture_mask argument to PLDCorrector.correct() to enable users to select the pixels used for creating the PLD basis vectors. [#523]
- Added a new unit test module (test_synthetic_data.py) which utilizes synthetic Target Pixel Files to validate Lightkurve features. [#534]
- Added extra log.debug messages to lightkurve.search to enable users to track the status of search and download operations. [#547]
- Added several new usage examples to the docstrings of functions. [#516]
- Removed seven methods which had been deprecated prior to v1.0: [#515]
- removed lc.cdpp() in favor of lc.estimate_cdpp();
- removed lc.correct() in favor of lc.to_corrector().correct();
- removed lcf.from_fits() in favor of lightkurve.open();
- removed tpf.from_fits() in favor of lightkurve.open();
- removed lcf.from_archive() in favor of search_lightcurvefile();
- removed tpf.from_archive() in favor of search_targetpixelfile();
- removed tpf.centroids() in favor of tpf.estimate_centroids().
- Moved the Corrector systematics removal classes into their own sub-package, named lightkurve.correctors. [#519]
- Fixed a bug which prevented lightkurve.open() from raising a FileNotFoundError when a file does not exist. [#540]
- Fixed a bug which caused BoxLeastSquaresPeriodogram to ignore the period parameter. [#514]
- Fixed a bug which prevented the t0 argument of lc.fold() from being an AstroPy Quantity object. [#521]
This is a minor bugfix release containing the following improvements:
- Fixed minor bugs in
PLDCorrector.correct()
[#498],TargetPixelFile.create_threshold_mask()
[#502], andLightCurve.bin()
[#503]. - Ensure users are alerted if a large number of cadences are masked out by quality_bitmask when opening data products. [#495]
- CBVCorrector now accepts a KeplerLightCurve as input. [#504]
- The ~lightkurve.search functions now provide a more helpful error message if the download cache contains a corrupt file. [#512]
- Switched continuous integration from Travis/Appveyor to Azure pipelines. [#497]
This is the first stable release of Lightkurve. It was prepared with the help of 45 contributors!
This release contains major changes to the LombScarglePeriodogram
class:
- Changed the default behavior of
LombScarglePeriodogram.from_lightcurve()
to usenormalization='amplitude'
andoversample_factor=5
(the previous defaults werenormalization='psd'
andoversample_factor=1
). The docstring has been expanded to help users understand these options. [#491] - Added a
LightkurveWarning
to alert users of the changes to the default behavior. [#493] - Deprecated the
min_frequency
/max_frequency
arguments in favor ofminimum_frequency
/maximum_frequency
to be consistent with the other Periodogram classes. [#478] - Likewise, deprecated the
min_period
/max_period
arguments in favor ofminimum_period
/maximum_period
to be consistent with the other Periodogram classes. [#478]
Other changes are:
- Improved
PLDCorrector
to be more robust against the presence of NaNs. [#479, #488] - Improved
search_tesscut
to avoid crashing in the event of an empty search result, and to ensure that the files it returns carry the search string as thetargetid
attribute. [#475, #477] - Various minor bug fixes. [#488, #490, #494]
- Significantly improved the performance of the
PLDCorrector
feature for systematics removal. [#470] - Improved the normalization of the result returned by
Periodogram.smooth(method='logmedian')
. [#453] - Improved the visualization of NaN values in
TargetPixelFile.plot()
. [#455] - Various minor bug fixes. [#448, #450, #463, #471]
- The
search_tesscut(...).download()
feature now supports downloading rectangular TESS FFI cut-outs. It previously only supported squares. [#441] - Fixed a bug which prevented
search_tesscut(...).download_all()
from downloading all sectors. [#440] - Minor bug fixes and performance improvements. [#439, #446]
- Simplified the installation of Lightkurve by turning several packages into optional rather than required dependencies (
celerite
,pybind
,scikit-learn
, andbokeh
). [#436] - Added
search_tesscut()
: an easy interface to access data produced using the MAST TESSCut service. This service extracts Target Pixel Files (TPFs) from TESS Full Frame Images (FFIs). [#418] - Added
TargetPixelFile.interact_sky()
: an interactive Bokeh widget to overlay Gaia DR2 source positions on top of TPFs. [#124] - Changed
LightCurve.fold()
: thetransit_midpoint
parameter has been deprecated in favor of thet0
parameter. [#419]
- Made
BoxLeastSquaresPeriodogram
robust against light curves that contain NaNs. [#432] TargetPixelFile.wcs
now works for Target Pixel Files produced using the MAST TessCut service. [#434]
- Introduced a new layout for the
online documentation <https://docs.lightkurve.org>
_. [#360, #400, #406] - Added
LightCurve.interact_bls()
: an interactive Bokeh widget to find planets using the Box Least Squares (BLS) method. [#401] - Added
LombScarglePeriodogram
andBoxLeastSquarePeriodogam
sub-classes to distinguish periodograms generated using different methods. [#403] - Added the
PLDCorrector
class to remove instrument systematics using the Pixel Level Decorrelation (PLD) method. [#305] - Added the
TargetPixelFile.to_corrector()
convenience method to make systematics correction classes easy to access. [#305] - Refactored
SFFCorrector
to make its API consistent withPLDCorrector
, and deprecated theLightCurve.correct()
method in favor ofLightCurve.to_corrector()
. [#408, #417] - Made
SFFCorrector
robust against light curves that contain big gaps in time. [#414] - Minor bug fixes. [#392, #397, #420]
- Increased the unit test coverage. [#387, #388]
- The
TargetPixelFile.interact()
bokeh app now includes aSave Lightcurve
button [#329]. - Fixed a minor bug in
LightCurve.bin()
[#377].
- Added support for TESS to
search_targetpixelfile()
andsearch_lightcurvefile()
[#367]. - Added support for data generated by the TESScut service [#369, #375].
- Removed "Impulsive outliers" from the default set of quality constraints applied to TESS data [#374].
LightCurve.flatten()
is now more robust against outliers [#372].LightCurve.fold()
now takes atransit_midpoint
parameter instead of thephase
parameter [#361, #363].- Various minor bugfixes [#372].
TargetPixelFile.create_threshold_mask()
now only returns one contiguous mask, which is configurable using the newreference_pixel
argument [#345].TargetPixelFile.interact()
: now requiresBokeh v1.0
or later [#355].utils.detect_filetype()
automatically detects Kepler or TESS Target Pixel Files and Light Curve files [#340, #350, #356].LightCurve.estimate_cdpp()
: the argumentsigma_clip
was renamed intosigma
[#359].- Fixed minor bugs in
LightCurve.to_pandas()
[#343],LightCurve.correct()
[#347],FoldedLightCurve.errorbar()
[#352],LightCurve.fold()
[#353]. - Documentation improvements [#344, #358].
- Increased the unit test coverage [#351].
lightkurve.open()
was added to provide a single function to read in any light curve or target pixel file from Kepler or TESS and return the appropriate object [#317].- The
from_fits()
methods have been deprecated in favor oflightkurve.open()
[#336]. - The
lightkurve.mast
module has been removed in favor of the newlightkurve.search
module. - Various small bugfixes, speed-ups, and documentation improvements [#314, #315, #322, #323, #325, #331, #334, #335].
- The
from_archive()
methods ofKeplerTargetPixelFile
andKeplerLightCurveFile
have been deprecated in favor of the newsearch_targetpixelfile()
andsearch_lightcurvefile()
functions. These allow users to inspect the results of their queries and offer more powerful features, e.g. cone-searches. If you are currently usingtpf = KeplerTargetPixelFile.from_archive("objectname")
, please start usingtpf = search_targetpixelfile("objectname").download()
instead. TargetPixelFile
objects can now be indexed and sliced. [#308]- The default number of
windows
used by the SFF systematics removal algorithm has been changed from 1 to 10. [#312] - Various small bug fixes and unit test improvements.
- We adopted a rule that all method names must include a verb, and all class properties must be a noun [#286]. As a result, we renamed the following methods:
LightCurve.cdpp()
is nowLightCurve.estimate_cdpp()
LightCurve.periodogram()
is nowLightCurve.to_periodogram()
LichtCurve.properties()
is nowLightCurve.show_properties()
TargetPixelFile.aperture_photometry()
is nowTargetPixelFile.extract_aperture_photometry()
TargetPixelFile.centroids()
is nowTargetPixelFile.estimate_centroids()
TargetPixelFile.header()
is now a property.
- Added
Periodogram.smooth()
[#288]. Periodogram.estimate_snr()
was renamed toPeriodogram.p.flatten()
[#290].- Lightkurve can now read in light curve files produced using
LightCurveFile.to_fits()
[#297].
- The
Periodogram
class has been refactored; - The
LightCurve.remove_outliers()
method now acceptssigma_lower
andsigma_upper
parameters.