Full changelog#
2.5.2dev (unreleased)#
2.5.1 (2025-05-20)#
Fixed pixel to world coordinate transformation in
TargetPixelFile.get_coordinates()in line 488 (“ra, dec = w.wcs_pix2world(X.ravel(), Y.ravel(), 1)”), where for consistency with Gaia the origin should be 0 instead of 1. [#1465]Fixed
LightCurve.select_flux()in edge cases, where the unit of the newfluxcolumn is different from that of theflux_errcolumn. [#1467]Fixed numpy v2 compatibility for
tpf.interact(). [#1473]Modified RegressionCorrector.correct() to add the model flux error in quadrature. [#1439]
Updated the default TESS quality mask to include Argabrightening, Impulsive Outlier, and Bad Calibration Exclude flags (see issue #1230). [#1336]
Updated tutorial notebook links [#1484]
Author keyword now specifies between SPOC and TESS-SPOC [#1487]
Changed calls of
np.in1dtonp.isinfor numpy v2 compatibility [#1492]Loosen dependency on oktopus (and autograd) to facilitate Numpy v2 support, along with updates of some deprecated numpy calls. They will still be pulled in with a default
pip install, but this allows Lightkurve to be run without oktopus with onlytpfmodeldisabled [#1452]Fixed the bug in
bin()function withbinparameter forFoldedLightCurveobjects. [#1491]Modified
copy()andbin()functions forFoldedLightCurveobjects to fix issues with normalized phase [#1491]Removed
binsizeandtime_bin_endas input options forFoldedLightCurveobjects [#1491]Changed calls of
`np.in1d`tonp.isinfor numpy v2 compatibility [#1492]
2.5.0 (2024-08-29)#
Fixed memory leak in reading Lightcurve / TargetPixel FITS files in v2.4.2 [#1390]
Added support for changes in QLP High Level Science Product in TESS sectors 56 and later. [#1392]
Added an informative error message when data products downloaded are corrupted. [#1399]
Fixed to ensure file handles are properly released when reading corrupted TargetPixelFile. [#1399]
Fixed
FoldedLightCurve.cycle, caseepoch_timenot specified [#1398]Various improvements to the online documentation. [#1400, #1425]
Fixed a bug in
tpf.interact()so that proper y label is displayed when lightcurve is normalized withtransform_func. [#1387]Changed ‘short’ cadence in search.py to be <200s so the new TESS FFI cadence is excluded [#1394]
Fixed
lightkurve.utils.centroid_quadratic()in edge cases, e.g., fluxes are all negative with mask specified, NaN in the identified brightest 3X3 patch. [#1426]Fixed interact features, e.g.
tpf.interact(), to be compliant with Bokeh v3.4.0. The minimum Bokeh version is raised to v2.3.2 accordingly. [#1428]Updated aperture plotting to speed it up in the case of large (bleed column) apertures. [#1434]
Fixed time format for KEPSEISMIC light curves from bjkd to mjd. [#1443]
Fixed flux unit bug in to_fits [#1454]
Added support to read data products hosted on public AWS S3 buckets. [#1451]
Added functions to read in collections of light curves or target pixel files. [#1451]
2.4.2 (2023-11-03)#
Fixed download issue due to MAST API change [#1380]
2.4.1 (2023-09-06)#
Updated interact features to work with JupyterHub (e.g. TiKE) [#1349]
Exposed niters parameter in the PCA function of design matrix
Fixed the aperture parsing functions inside TPFs to be compliant with
numpyv1.25 [#1360]Made
LombScarglePeriodogramcompatible with Astropy v5.3 [#1342]Updated the TPF plotting function to work correctly with WCS plotting [#1298]
Added the ability to open light curves from the TGLC High Level Science Product
Added in a flux_err mask to remove NaNs in pldcorrector
2.4.0 (2023-02-14)#
Added the ability to configure the default cache directory used by
SearchResult.download()/SearchResult.download_all(). [#1214]Moved the default cache directory from
$HOME/.lightkurve-cacheto$HOME/.lightkurve/cache. [#1214]Fixed interact features, e.g.
tpf.interact(), to work with bokeh v3.x [#1262]Fixed
SearchResultHTML display for links to TESS GI cycles 3/4 proposals. [#1260]Fixed references to np.int and np.float due to changes in numpy v1.24. [#1279]
2.3.0 (2022-07-07)#
Added support for reading light curves created using the
eleanorpackage or provided by the GSFC-ELEANOR-LITE High Level Science Product. [#1217, #1236]Added data product specific documentation. [#1233]
Added the ability to include more columns in
SearchResultdisplay via a newSearchResult.display_extra_columnsattribute, with defaults set by an Astropy-based configuration system. [#1134, #1232]Added a
show_progressparameter toquery_solar_system_objects(), which shows the download progress by default. [#1225]Added the new TESS quality flag bits 13-15 to
TessQualityFlags. [#1218]Added an informative error message when data products downloaded are corrupted or download failed due to remote server error. [#1228]
Fixed an issue which caused unnecessary
UnitsWarningbeing raised when reading light curve files and CBV files with AstroPy v5.1 installed. [#1226, #1229]
2.2.1 (2022-05-26)#
Fixed a bug in
LightCurve.flatten()which caused the flux unit of flattened light curves to be non-dimensionless. [#1195]Improved
TargetPixelFile.interact_sky()to include TIC information even when the TICs are not found in Gaia. [#1204]Removed extraneous warnings from
TargetPixelFile.interact_sky(). [#1204]Fixed a bug in
FoldedLightCurve.odd_maskand.even_maskwhich caused the mask to be incorrect when the phase is literal time. [#1105]Added a new
FoldedLightCurve.cycleattribute. [#1105]Fixed a bug in
LightCurve['time', '<some-column>'], which triggered anAttributeErrorwhen selecting a subset of columns includingtime. [#1199]Fixed a bug in
LightCurve()constructor, which triggered anAttributeErrorwhendataparameter is alistorndarray[#1199]Fixed a bug in
LightCurve.query_solar_system_objectswhich caused an excessive search radius to be used for TESS light curves. [#1208]Various improvements to the online documentation. [#1197, #1210]
2.2.0 (2022-04-12)#
Fixed a bug in
TargetPixelFile.interact()which prevented custom pixels from being selected with Bokeh v2.3.x and later. [#1177]Improved
TargetPixelFile.interact_sky()by introducing an arrow to highlight selected stars, adding anaperture_maskargument, and defaulting to box zoom. [#1082]Fixed a bug in
LightCurve.select_flux()to ensureNORMALIZEDheader is set based on the newfluxcolumn. [#1094]Fixed a bug in
LightCurveCollection.stitch()which triggered aValueErrorwhen a mix of normal and masked columns was encountered. [#1182]Removed the
QColumn,QMaskedColumn, andQTimeSeriesclasses which were temporarily added in Lightkurve v2.0 to support AstroPy v4.2 and earlier. [#1188]Fixed a
FutureWarningtriggered byquery_solar_system_objects(). [#1189]Removed
setup.pybecausepip>=21.3now enables editable installs to be executed using thepyproject.tomlfile instead. [#1185]
2.1.1 (2022-03-24)#
Fixed a bug in
LightCurve.plot_river()which triggered aTypeError: cannot write to unmasked output. [#1175]Fixed a bug in
search_tesscut(...).download()which caused TESSCut downloads to fail when Astroquery v0.4.6 or later is installed. [#1176]Fixed a bug in
LightCurve.fill_gaps()which caused incorrect results in the presence of masked data. [#1172]
2.1.0 (2022-02-10)#
Made Lightkurve compatible with AstroPy v5.0, which introduced masked quantities. Lightkurve v2.1 now requires AstroPy v5.0 and Python v3.8 or later. [#1162]
Added the
cbv_dirparameter toCBVCorrector,load_kepler_cbvs, andload_tess_cbvsto enable CBVs to be loaded from a local directory. [#1122]Deprecated
download_kepler_cbvsanddownload_tess_cbvsin favor ofload_kepler_cbvsandload_tess_cbvs. [#1122]Restored original
binsfunctionality from v1.x inLightCurve.bin()and enabled iterable inputs totime_bin_start,time_bin_end,time_bin_sizefor custom bin sizes. [#1042]
2.0.11 (2021-09-22)#
Modified
TargetPixelFile.interact_sky()to enable it to work with pixel files which lack proper motion or coordinate information. [#1088]Fixed excessive memory usage by
LightCurve.bin(). [#1096]Various improvements to the online documentation. [#1102]
Fixed a bug in
TargetPixelFile.estimate_centroids()which caused the column and row coordinates to be off by 0.5. [#1103]Fixed a bug which caused a light curve’s meta data to be lost after calling
LightCurve.bin(). [#1041]Modified the BKJD and BTJD AstroPy time formats to use the Barycentric Dynamical Time (TDB) scale by default. [#1112]
Modified
LightCurve.create_transit_mask()to accept AstroPyQuantityobjects forperiod,transit_time, andduration. [#1119, #1141]Modified
CBVCorrectorto issue a warning message if the CBVs are poorly aligned to the input light curve. [#1113]Fixed a bug in
underfit_metric_neighbors()which caused the alignment of light curves to fail. [#1120]Removed an unnecessary warning triggered when
LightCurve.normalize()is called on an already-normalized light curve. [#1128]Fixed an AstroPy warning (“dropping mask in Quantity column”) which was encountered when opening a light curve with AstroPy v4.3 installed.
Fixed a bug in
TargetPixelFile.animate()which caused aModuleNotFoundErrorto be raised when using older versions of matplotlib. [#1139]Added a
columnparameter toLightCurve.truncate(). [#1116]
2.0.10 (2021-06-04)#
Modified the search functions to ensure the two parts of K2 Campaigns 9, 10, and 11 are more clearly marked. [#1018]
Fixed a bug in
LightCurvewhich caused left-hand side multiplication with NumPy floats and AstroPy Quantity objects to fail. [#925]Fixed a bug which caused
TargetPixelFile.to_lightcurve()to fail when a pixel file lacked the keywords “TUNIT5” or “TUNIT6”.Fixed a bug which caused the
columnparameter to be ignored inTargetPixelFile.animate().Fixed a bug in
TargetPixelFile.interact()whenylim_funcis specified and users tap to select custom apertures. [#1033]Improved the user interface of
TargetPixelFile.interact_sky(), including providing TIC information when applicable. [#1050]Fixed a bug in
search_tesscut().download()whendownload_diris specified. [#1063]Fixed a bug in
LightCurveCollectionandTargetPixelFileCollection, where indexing by slice, e.g.,lc_collection[0:2], incorrectly returns alist[#1077]Added the
LightCurve.select_flux()method to make it easier to use a different column to populate thefluxandflux_errcolumns. [#1076]Modified the MIT Quicklook Pipeline (QLP) light curve file reader to use the “SAP_FLUX” column as the default flux column. [#1083]
2.0.9 (2021-03-31)#
Added the
head(),tail(), andtruncate()convenience methods to theLightCurveclass. [#1017]Modified
TargetPixelFile.to_lightcurve()to accept “sff”, “cbv”, and “pld” as options for themethodkeyword argument. [#1017]Fixed a bug in
LightCurve.append()which caused the method to crash if the light curves contained incompatible column types. [#1015]
2.0.8 (2021-03-30)#
Fixed a bug which caused the
stepandintervalparameters to be ignored inTargetPixelFile.animate().Modified
TargetPixelFile.pipeline_maskto return a default mask if the aperture extension is missing from the file.
2.0.7 (2021-03-24)#
Added support for reading CDIPS light curves. [#980]
Fixed a bug which caused
LightCurveobject instantiation to fail if a string-typed column had a unit set. [#980]Fixed a bug in
CBVCorrectorcausing it to not work on K2 data. [#1012]Modified
LightCurveCollectionto have a more simple and generic__repr__()which does not group objects by target id. [#1002]Fixed a bug in
LightCurveCollection.plot()which caused an incorrect y label when the collection contained normalized and non-normalized light curves. [#1002]Modified the search functions to make the
exptimeparameter case-insensitive.
2.0.6 (2021-03-15)#
Removed
ipythonfrom the installation requirements. [#999]Added the
LightCurve.to_excel()convenience method. [#1000]Added a new tutorial demonstrating how to load a light curve into Excel.
2.0.5 (2021-03-13)#
Removed
numbafrom the installation requirements and modifiedSparseDesignMatrixto no longer usenumba.jit. [#997]Modified
LightCurve.bin()to partially restore thebinsparameter which was available in Lightkurve v1.x, to improve backwards compatibility. [#995]Modified
LightCurveCollection.stitch()to ignore incompatible columns instead of having them raise aValueError. [#996]
2.0.4 (2021-03-11)#
Added the
TargetPixelFile.animate()feature to display Target Pixel Files as HTML animations inside Jupyter notebook environments. [#991]Fixed a bug in
SFFCorrectorwhich causedprior_muandprior_sigmato be Quantity objects rather than arrays. [#982]
2.0.3 (2021-02-23)#
Added support for reading KEPSEISMIC light curves. [#972]
Modified the top-level namespace of lightkurve to include the contents of
lightkurve.correctorsagain. This was removed in 2.0.0 to speed upimport lightkurve, but the change affects too many existing packages. [#977]Fixed a bug affecting the alignment of vectors in
CBVCorrector. [#964]
2.0.2 (2021-02-19)#
Added the
lightkurve.unitsmodule to ensure “ppt” and “ppm” are enabled AstroPy units when Lightkurve is imported. [#959]Fixed a bug which made it impossible to use
bin()afterfold(). [#953]Fixed a bug which caused
LightCurve.plot(offset=N)to permanently increase a light curve’s flux by N. [#961]
2.0.1 (2021-02-16)#
Fixed an issue which caused the installation of Lightkurve 2.0 to fail under Python 3.9. [#951]
2.0.0 (2021-02-15)#
Major changes#
Removed support for Python 2. [#733]
LightCurveis now a sub-class ofastropy.time.TimeSeries. This enables the use of custom data columns and enables a closer integration with AstroPy. As a result, light curve objects now behave just like tables. [#744]The data search features have been modified to support and display community-contributed data products by default, and to support the new TESS exposure time modes (e.g. 20-second cadence).
The
CBVCorrectorclass has been re-implemented to enable users to remove instrumental noise from light curves in a way that is nearly identical to the method used by the official Kepler/TESS pipeline.The online documentation has been updated to include a dozen new tutorials, a new layout, and an extended API reference guide. [#926]
The structure of the source code repository has been modified to separate source files (
src/) from test files (tests/). [#947]
Other changes#
lightkurve.lightcurve#
Added the
LightCurve.search_neighbors()convenience method to search for light curves around an existing one. [#907]Added the
LightCurve.create_transit_mask(period, transit_time, duration)method to conveniently mask planet or eclipsing binary transits. [#808]Added a
columnparameter toLightCurve’splot(),scatter(), anderrorbar()methods to enable any column to be plotted. [#765]Added a
columnparameter toLightCurve.remove_nans()to enable cadences to be removed which contain NaN values in a specific column. [#828]interact_bls(): added the support zoom by scrolling mouse wheel. [#854]interact_bls(): modified so that it normalizes the lightcurve to match the generated transit model. [#854]interact_bls(): fixed a bug which caused the LightCurve panel to be scaled incorrectly. [#902]
lightkurve.targetpixelfile#
Added the ability to perform math with
TargetPixelFileobjects, e.g.,tpf = tpf - 100will subtract 100 from thetpf.fluxvalues. [#665]Added the
TargetPixelFile.plot_pixels()method to plot light curves and periodograms for each individual pixel in a TPF. [#771]Added the
estimate_backgroundmethod toTargetPixelFilewhich returns a 1D estimate of the residual background present in e.g. TESSCut data. [#746]Added a
columnparameter toTargetPixelFile.plot()to enable any column in a pixel file to be plotted (e.g.column="BKG_FLUX"). [#738]Added the
flux_methodkeyword toextract_aperture_photometryto allow photometry to be obtained using"sum","median", or"mean". [#932]Modified
to_lightcurve()to default to usingaperture_mask='threshold'if the'pipeline'mask is missing or empty, e.g. for TESSCut files. [#833]Modified
plot()to use a more clear hatched style when visualizing the aperture mask on top of pixel data. [#814]Modified
_parse_aperture_mask()to ensure that masks composed of integer or floats are always converted to booleans. [#694]Modified
interact()to usemax_cadences=200000by default to allow it to be used on fast-cadence TESS data. [#856]Modified
TargetPixelFactoryto support creating TESS Target Pixel Files and to enable it to populate all data columns. [#768, #857]Fixed a bug in
TargetPixelFile.__getitem__()which caused a substantial memory leak when indexing or slicing a tpf. [#829]Fixed a bug in
TargetPixelFile.wcswhich caused it to raise an error if the tpf does not contain all expected WCS keywords. [#892]
lightkurve.collections#
Added the ability to filter a collection by
quarter,campaignorsector. [#815]
lightkurve.search#
Added support for the new 20-second and 10-minute TESS cadence modes in the search functions by allowing the exact exposure time to be specified via the optional
exptimeargument. In addition, the functions now also acceptexptime='fast'(for 20s) andexptime='ffi'(for 10m or 30m). [#831]Modified the search operations to show all available data products at MAST by default, including community-contributed light curves. [#933]
Modified the search functions to show the author and exposure time of each data product in the search results table. [#831]
Added support for reading in High Level Science Product light curves, including TESS-SPOC, QLP, TASOC, K2SFF, EVEREST, PATHOS. [#739, #913, #935, #939]
Modified the search functions such that exact mission target identifiers, such as “KIC 5112705” or “TIC 261136679”, only return products known under those names, unless a search radius is specified. [#796]
Added in-memory caching of the search operations. [#907]
Improved the performance of
download()operations by checking if a file exists in local cache prior to contacting MAST. [#915]
lightkurve.correctors#
Added the
CotrendingBasisVectorsclass to provide a convenient interface to work with TESS and Kepler basis vector data products. [#826]Modified the
CBVCorrectorclass to perform the correction in a way that is more similar to the official Kepler/TESS pipeline. [#855]Added
SparseDesignMatrixand modifiedRegressionCorrectorto enable systematics removal methods to benefit fromscipy.sparsespeed-ups. [#732]Modified
PLDCorrectorto make use of the newRegressionCorrectorandDesignMatrixclasses. [#746, #847]Fixed a bug in
SFFCorrectorwhich caused correction to fail if a light curve’scentroid_colorcentroid_rowcolumns contained NaNs. [#827]Modified the
Correctorabstract base class to better document the desired structure of its sub-classes. [#907]Added a
metricsmodule with two functions to measure the degree of over- and under-fitting of a corrected light curve. [#907]
lightkurve.seismology#
Modified the
estimate_radius,estimate_mass, andestimate_loggmethods to default to theteffvalue in the meta data. [#766]Added an error message to
estimate_numax()orestimate_deltanu()if the underlying periodogram does not have uniformly-spaced frequencies. [#780]
lightkurve.periodogram#
Modified
create_transit_maskmethod to returnTrueduring transits andFalseelsewhere for consistent mask syntax. [#808]Modified
BoxLeastSquaresPeriodogramto useduration=[0.05, 0.10, 0.15, 0.20, 0.25, 0.33]by default, which yields more accurate results (albeit slower). [#859, #860]
1.11.3 (2020-10-06)#
Fixed inline plots not appearing in Jupyter Notebooks and Google Colab. [#865]
1.11.2 (2020-08-28)#
Fixed a warning being issued (
"LightCurveFile.header is deprecated") when downloading light curve files from MAST. [#819]
1.11.1 (2020-06-18)#
Fixed a bug in
TargetPixelFile.cutout()which prevented image edges from being included in cut-outs. [#749]Fixed a bug in
tpf.interact()which caused the pixel selection to be off by half a pixel. The bug was introduced in v1.11.0. [#754]Fixed
tpf.plot()andtpf.interact_sky()to reflect that Kepler and TESS pixel coordinates refer to pixel centers. [#755]Fixed broken links in tutorials. [#756]
1.11.0 (2020-05-20)#
Deprecated the
TargetPixelFile.headerproperty andLightCurveFile.header()method in favor of a consistentget_header()method. [#736]Fixed a bug in
tpf.interact_sky()which caused star positions to be off by half a pixel. [#734]
1.10.0 (2020-05-14)#
Added the
query_solar_system_objects()method to search for solar system objects inTargetPixelFileandLightCurveobjects. [#714]Added the
extra_columnsattribute toLightCurveobjects. [#724]Fixed the URL to the Point Response Function (PRF) files in
KeplerPRF. [#727]Fixed a bug which caused searches to fail with Astroquery v0.4.1 and later. [#728]
Fixed a bug in
TargetPixelFile.interact_sky()which caused high proper motion stars to be shown at incorrect locations. [#730]
1.9.1 (2020-03-25)#
Increased the speed of
search_lightcurvefile()andsearch_targetpixelfile()by a factor ~10x. [#715]Fixed an issue which caused
interact()andinteract_bls()to be incompatible with Bokeh v2.0.0. [#716]Fixed a bug in
LightCurve.bin()which caused the method to fail if thequalityarray has a floating point data type. [#705]
1.9.0 (2020-02-25)#
Added an experimental
TessPLDCorrectorclass designed to correct TESS FFI light curves by detrending against local pixel time series. [#687]Added a
LightCurve.plot_river()method to plot river diagrams, which uses colors to visualize fluxes by period cycle (row) and phase (column). [#625]Added caching to
search_tesscutto avoid requesting an identical cut out more than once. [#481]
1.8.0 (2020-02-09)#
Added the
Seismology.interact_echelle()method for creating interactive asteroseismic echelle diagrams. [#625]Added
odd_maskandeven_maskproperties toFoldedLightCurveto make it easy to plot odd- and even-numbered transits. [#425]Fixed a bug which caused
TargetPixelFile.interact()to raise aValueErrorif the pixel file contained NaN flux values. [#679]Fixed minor issues in the tutorials. [#662, #683]
1.7.0 (2020-01-29)#
Added a
scale='linear'option toTargetPixelFile.interact()to show pixels using a linear stretch. The default isscale='log'. [#664]Added a warning if
SFFCorrectoris used to correct TESS data. [#660]Added improved sigma-clipping inside
RegressionCorrector. [#654]Fixed a bug which caused
LightCurve.show_properties()to raise aValueErrorwhen the time format was not set. [#655]Fixed a bug which caused
TargetPixelFile.interact()to crash if the pipeline aperture mask did not contain pixels. [#667]Fixed a bug which caused
RegressionCorrector.correct()to crash if the input light curve contained flux uncertainties <= 0. [#668]
1.6.0 (2019-12-16)#
Fixed a bug in
tpf.to_lightcurve()which causedfluxandflux_errto be0instead ofNaNfor cadences with all-NaN pixels. [#651]Added a new TESS data anomaly flag (bit 13 / value 4096) which was introduced in Sector 14 to mark cadences affected by strong scattered light. Compared to the original stray light flag (bit 12), this flag is set automatically by the pipeline based on background level thresholds. [#652]
Changed the requirements to make
fbpcaa required dependency, because it allowsDesignMatrix.pca()to be faster and more robust. [#653]
1.5.2 (2019-12-05)#
Fixed a bug introduced in v1.5.0 which caused an
ImportErrorrelated toastropy.stats.calculate_bin_edgesto be raised when a user has an older version of AstroPy installed (version <3.1 or <2.10). [#644]Fixed a bug which caused the positions of stars in
tpf.interact_sky()to be off by one pixel. [#638]
1.5.1 (2019-11-22)#
Fixed a bug introduced in Lightkurve v1.5 which caused
import lightkurveon Mac OSX to automatically select the Matplotlib Agg backend. [#640]
1.5.0 (2019-11-20)#
Changed the representation of
SearchResultobjects to make it easier to see at a glance which quarter/campaign/sector a result belongs to. [#632]Added
mission,sector,camera, andccdproperties toTessLightCurveFilefor consistency withTessTargetPixelFile. [#633]Added the
binsargument toLightCurve.bin()to enable custom binning by specifying the bin edges or the total number of bins. [#629]Added
transform_func&ylim_funckeywords tointeract()to support user-defined light curve transformations and y-axis limits. [#600]Added
to_stringray()andfrom_stingray()toLightCurveto enable interoperability with the Stingray spectral timing package. [#567]Added an
ax(axes) keyword toSeismology.plot_echelle()to enable Echelle diagrams to be plotted into an existing Matplotlib figure. [#635]
1.4.1 (2019-11-18)#
Fixed a bug which caused
search_targetpixelfileandsearch_lightcurvefileto raise anIndexErrorif the sector keyword was passed and the target was observed by both TESS & Kepler. [#631]
1.4.0 (2019-11-12)#
Added the generic
RegressionCorrectorandDesignMatrixclasses which provide a user-friendly way to use linear regression to remove background or systematic noise components from light curves. [#613]Refactored the
SFFCorrectorclass to use the newRegressionCorrector, which deprecated thepolyorderkeyword in favor ofdegree. [#613, #616, #617, #626]Changed the tutorials index page in the online docs to make the tutorials easier to navigate.
Added a tutorial which demonstrates the use of Lightkurve’s seismology module to measure the mass, radius, and surface gravity of a solar-like star. [#624]
Changed
SearchResult.download()to raise a more explicitHTTPErrorexception when MAST’s TESSCut service is overloaded and times out. [#627]
1.3.0 (2019-10-21)#
Added a
method="quadratic"option totpf.estimate_centroids()which enables centroids to be estimated by fitting a bivariate polynomial to the 3x3 pixel core of the PSF. The method can also be called as a standalone function vialightkurve.utils.centroid_quadratic(). [#544, #610]Fixed a bug in
Seismology.plot_echelle()which caused the Echelle diagram of a power spectrum to be rendered incorrectly. [#602]Fixed a bug which caused
lightkurve.utilsto be incorrectly resolved tolightkurve.seismology.utils. [#606]Changed
bkjd_to_astropy_time()andbtjd_to_astropy_time()to accept a single float and lists of floats in addition to numpy arrays. [#608]Improved support for creating a
LombScarglePeriodogramwith an unevenly sampled grid in frequency space. [#614]
1.2.0 (2019-10-01)#
Added
flux_unitandflux_quantityproperties to theLightCurveclass to enable users to keep track of a light curve’s flux units. [#591]Changed the default behavior of
LightCurve.plot()to usenormalize=False, ie. plots now display a light curve in its intrinsic units by default. [#591]Added an optional
unitargument toLightCurve.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
LightCurveobjects, e.g. twoLightCurveobjects can now be added together. [#532]Updated the online tutorials (https://lightkurve.github.io/lightkurve/tutorials) to take all recent Lightkurve API changes into account. [#596]
1.1.1 (2019-08-19)#
Lightkurve v1.1.1 is a bugfix release which includes the following changes:
Changed
search_targetpixelfile()andsearch_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 theSAP_FLUXcolumn rather than theFLUXcolumn of the new light curve file, for consistency with pipeline products. [#559]Added
scatter()anderrorbar()methods to theLightCurveFileclass to make it consistent with theLightCurveclass. [#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]
1.1.0 (2019-07-19)#
Added the
lightkurve.seismologysub-package which enables quick-look asteroseismic quantities to be extracted fromPeriodogramobjects. [#496]Added the
stitch()method toLightCurveCollectionandLightCurveFileCollectionto 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 a
pld_aperture_maskargument toPLDCorrector.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.debugmessages tolightkurve.searchto 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 oflc.estimate_cdpp(); * removedlc.correct()in favor oflc.to_corrector().correct(); * removedlcf.from_fits()in favor oflightkurve.open(); * removedtpf.from_fits()in favor oflightkurve.open(); * removedlcf.from_archive()in favor ofsearch_lightcurvefile(); * removedtpf.from_archive()in favor ofsearch_targetpixelfile(); * removedtpf.centroids()in favor oftpf.estimate_centroids().Moved the
Correctorsystematics removal classes into their own sub-package, namedlightkurve.correctors. [#519]Fixed a bug which prevented
lightkurve.open()from raising aFileNotFoundErrorwhen a file does not exist. [#540]Fixed a bug which caused
BoxLeastSquaresPeriodogramto ignore theperiodparameter. [#514]Fixed a bug which prevented the
t0argument oflc.fold()from being an AstroPy Quantity object. [#521]
1.0.1 (2019-05-20)#
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_bitmaskwhen opening data products. [#495]CBVCorrectornow accepts aKeplerLightCurveas input. [#504]The
lightkurve.searchfunctions now provide a more helpful error message if the download cache contains a corrupt file. [#512]Switched continuous integration from Travis/Appveyor to Azure. [#497]
1.0.0 (2019-04-08)#
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
LightkurveWarningto alert users of the changes to the default behavior. [#493]Deprecated the
min_frequency/max_frequencyarguments in favor ofminimum_frequency/maximum_frequencyto be consistent with the other Periodogram classes. [#478]Likewise, deprecated the
min_period/max_periodarguments in favor ofminimum_period/maximum_periodto be consistent with the other Periodogram classes. [#478]
Other changes are:
Improved
PLDCorrectorto be more robust against the presence of NaNs. [#479, #488]Improved
search_tesscutto avoid crashing in the event of an empty search result, and to ensure that the files it returns carry the search string as thetargetidattribute. [#475, #477]Various minor bug fixes. [#488, #490, #494]
1.0b30 (2019-03-27)#
Significantly improved the performance of the
PLDCorrectorfeature 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]
1.0b29 (2019-02-14)#
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]
1.0b28 (2019-02-09)#
Changes#
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_midpointparameter has been deprecated in favor of thet0parameter. [#419]
Bugfixes#
Made
BoxLeastSquaresPeriodogramrobust against light curves that contain NaNs. [#432]TargetPixelFile.wcsnow works for Target Pixel Files produced using the MAST TessCut service. [#434]
1.0b26 (2019-02-04)#
Introduced a new layout for the online documentation. [#360, #400, #406]
Added
LightCurve.interact_bls(): an interactive Bokeh widget to find planets using the Box Least Squares (BLS) method. [#401]Added
LombScarglePeriodogramandBoxLeastSquarePeriodogamsub-classes to distinguish periodograms generated using different methods. [#403]Added the
PLDCorrectorclass 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
SFFCorrectorto make its API consistent withPLDCorrector, and deprecated theLightCurve.correct()method in favor ofLightCurve.to_corrector(). [#408, #417]Made
SFFCorrectorrobust against light curves that contain big gaps in time. [#414]Minor bug fixes. [#392, #397, #420]
Increased the unit test coverage. [#387, #388]
1.0b25 (2018-12-14)#
The
TargetPixelFile.interact()bokeh app now includes aSave Lightcurvebutton [#329].Fixed a minor bug in
LightCurve.bin()[#377].
1.0b24 (2018-12-10)#
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_midpointparameter instead of thephaseparameter [#361, #363].Various minor bugfixes [#372].
1.0b23 (2018-11-30)#
TargetPixelFile.create_threshold_mask()now only returns one contiguous mask, which is configurable using the newreference_pixelargument [#345].TargetPixelFile.interact(): now requiresBokeh v1.0or 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_clipwas 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].
1.0b22 (2018-11-17)#
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.mastmodule has been removed in favor of the newlightkurve.searchmodule.Various small bugfixes, speed-ups, and documentation improvements [#314, #315, #322, #323, #325, #331, #334, #335].
1.0b21 (2018-10-29)#
The
from_archive()methods ofKeplerTargetPixelFileandKeplerLightCurveFilehave 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.TargetPixelFileobjects can now be indexed and sliced. [#308]The default number of
windowsused by the SFF systematics removal algorithm has been changed from 1 to 10. [#312]Various small bug fixes and unit test improvements.
1.0b20 (2018-10-16)#
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].
1.0b19 (2018-10-10)#
The
Periodogramclass has been refactored;The
LightCurve.remove_outliers()method now acceptssigma_lowerandsigma_upperparameters.