- 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 newflux
column is different from that of theflux_err
column. [#1467] - Fixed numpy v2 compatibility for
tpf.interact()
. [#1473]
- 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_time
not 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]
- Fixed download issue due to MAST API change [#1380]
- 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 numpy v1.25 [#1360]
- Made LombScarglePeriodogram compatible 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
- 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-cache
to$HOME/.lightkurve/cache
. [#1214] - Fixed interact features, e.g.
tpf.interact()
, to work with bokeh v3.x [#1262] - Fixed
SearchResult
HTML 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]
- Added support for reading light curves created using the
eleanor
package 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
SearchResult
display via a newSearchResult.display_extra_columns
attribute, with defaults set by an Astropy-based configuration system. [#1134, #1232] - Added a
show_progress
parameter 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
UnitsWarning
being raised when reading light curve files and CBV files with AstroPy v5.1 installed. [#1226, #1229]
- 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_mask
and.even_mask
which caused the mask to be incorrect when the phase is literal time. [#1105] - Added a new
FoldedLightCurve.cycle
attribute. [#1105] - Fixed a bug in
LightCurve['time', '<some-column>']
, which triggered anAttributeError
when selecting a subset of columns includingtime
. [#1199] - Fixed a bug in
LightCurve()
constructor, which triggered anAttributeError
when data parameter is alist
orndarray
[#1199] - Fixed a bug in
LightCurve.query_solar_system_objects
which caused an excessive search radius to be used for TESS light curves. [#1208] - Various improvements to the online documentation. [#1197, #1210]
- 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_mask
argument, and defaulting to box zoom. [#1082] - Fixed a bug in
LightCurve.select_flux()
to ensureNORMALIZED
header is set based on the newflux
column. [#1094] - Fixed a bug in
LightCurveCollection.stitch()
which triggered aValueError
when a mix of normal and masked columns was encountered. [#1182] - Removed the
QColumn
,QMaskedColumn
, andQTimeSeries
classes which were temporarily added in Lightkurve v2.0 to support AstroPy v4.2 and earlier. [#1188] - Fixed a
FutureWarning
triggered byquery_solar_system_objects()
. [#1189] - Removed
setup.py
becausepip>=21.3
now enables editable installs to be executed using thepyproject.toml
file instead. [#1185]
- Fixed a bug in
LightCurve.plot_river()
which triggered a TypeError: 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]
- 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_dir
parameter toCBVCorrector
,load_kepler_cbvs
, andload_tess_cbvs
to enable CBVs to be loaded from a local directory. [#1122] - Deprecated
download_kepler_cbvs
anddownload_tess_cbvs
in favor ofload_kepler_cbvs
andload_tess_cbvs
. [#1122] - Restored original
bins
functionality from v1.x inLightCurve.bin()
and enabled iterable inputs totime_bin_start
,time_bin_end
,time_bin_size
for custom bin sizes. [#1042]
- 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 AstroPyQuantity
objects forperiod
,transit_time
, andduration
. [#1119, #1141] - Modified
CBVCorrector
to 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 aModuleNotFoundError
to be raised when using older versions of matplotlib. [#1139] - Added a
column
parameter toLightCurve.truncate()
. [#1116]
- 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
LightCurve
which 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
column
parameter to be ignored inTargetPixelFile.animate()
. - Fixed a bug in
TargetPixelFile.interact()
whenylim_func
is 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_dir
is specified. [#1063] - Fixed a bug in
LightCurveCollection
andTargetPixelFileCollection
, 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 theflux
andflux_err
columns. [#1076] - Modified the MIT Quicklook Pipeline (QLP) light curve file reader to use the "SAP_FLUX" column as the default flux column. [#1083]
- Added the
head()
,tail()
, andtruncate()
convenience methods to theLightCurve
class. [#1017] - Modified
TargetPixelFile.to_lightcurve()
to accept "sff", "cbv", and "pld" as options for themethod
keyword argument. [#1017] - Fixed a bug in
LightCurve.append()
which caused the method to crash if the light curves contained incompatible column types. [#1015]
- Fixed a bug which caused the
step
andinterval
parameters to be ignored inTargetPixelFile.animate()
. - Modified
TargetPixelFile.pipeline_mask
to return a default mask if the aperture extension is missing from the file.
- Added support for reading CDIPS light curves. [#980]
- Fixed a bug which caused
LightCurve
object instantiation to fail if a string-typed column had a unit set. [#980] - Fixed a bug in
CBVCorrector
causing it to not work on K2 data. [#1012] - Modified
LightCurveCollection
to 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
exptime
parameter case-insensitive.
- Removed
ipython
from 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.
- Removed
numba
from the installation requirements and modifiedSparseDesignMatrix
to no longer usenumba.jit
. [#997] - Modified
LightCurve.bin()
to partially restore thebins
parameter 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]
- Added the
TargetPixelFile.animate()
feature to display Target Pixel Files as HTML animations inside Jupyter notebook environments. [#991] - Fixed a bug in
SFFCorrector
which causedprior_mu
andprior_sigma
to be Quantity objects rather than arrays. [#982]
- Added support for reading KEPSEISMIC light curves. [#972]
- Modified the top-level namespace of lightkurve to include the contents of lightkurve.correctors again. This was removed in 2.0.0 to speed up import lightkurve, but the change affects too many existing packages. [#977]
- Fixed a bug affecting the alignment of vectors in
CBVCorrector
. [#964]
- Added the
lightkurve.units
module 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]
- Fixed an issue which caused the installation of Lightkurve 2.0 to fail under Python 3.9. [#951]
- Removed support for Python 2. [#733]
LightCurve
is 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
CBVCorrector
class 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]
- 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
column
parameter toLightCurve
'splot()
,scatter()
, anderrorbar()
methods to enable any column to be plotted. [#765] - Added a
column
parameter 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]
- Added the ability to perform math with
TargetPixelFile
objects, e.g.,tpf = tpf - 100
will subtract 100 from thetpf.flux
values. [#665] - Added the
TargetPixelFile.plot_pixels()
method to plot light curves and periodograms for each individual pixel in a TPF. [#771] - Added the
estimate_background
method toTargetPixelFile
which returns a 1D estimate of the residual background present in e.g. TESSCut data. [#746] - Added a
column
parameter toTargetPixelFile.plot()
to enable any column in a pixel file to be plotted (e.g.column="BKG_FLUX"
). [#738] - Added the
flux_method
keyword toextract_aperture_photometry
to 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=200000
by default to allow it to be used on fast-cadence TESS data. [#856] - Modified
TargetPixelFactory
to 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.wcs
which caused it to raise an error if the tpf does not contain all expected WCS keywords. [#892]
- Added the ability to filter a collection by
quarter
,campaign
orsector
. [#815]
- 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
exptime
argument. 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]
- Added the
CotrendingBasisVectors
class to provide a convenient interface to work with TESS and Kepler basis vector data products. [#826] - Modified the
CBVCorrector
class to perform the correction in a way that is more similar to the official Kepler/TESS pipeline. [#855] - Added
SparseDesignMatrix
and modifiedRegressionCorrector
to enable systematics removal methods to benefit fromscipy.sparse
speed-ups. [#732] - Modified
PLDCorrector
to make use of the newRegressionCorrector
andDesignMatrix
classes. [#746, #847] - Fixed a bug in
SFFCorrector
which caused correction to fail if a light curve'scentroid_col
orcentroid_row
columns contained NaNs. [#827] - Modified the
Corrector
abstract base class to better document the desired structure of its sub-classes. [#907] - Added a
metrics
module with two functions to measure the degree of over- and under-fitting of a corrected light curve. [#907]
- Modified the
estimate_radius
,estimate_mass
, andestimate_logg
methods to default to theteff
value 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]
- Modified
create_transit_mask
method to returnTrue
during transits andFalse
elsewhere for consistent mask syntax. [#808] - Modified
BoxLeastSquaresPeriodogram
to useduration=[0.05, 0.10, 0.15, 0.20, 0.25, 0.33]
by default, which yields more accurate results (albeit slower). [#859, #860]
- Fixed inline plots not appearing in Jupyter Notebooks and Google Colab. [#865]
- Fixed a warning being issued (
"LightCurveFile.header is deprecated"
) when downloading light curve files from MAST. [#819]
- 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]
- Deprecated the
TargetPixelFile.header
property 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]
- Added the
query_solar_system_objects()
method to search for solar system objects inTargetPixelFile
andLightCurve
objects. [#714] - Added the
extra_columns
attribute toLightCurve
objects. [#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]
- 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 the
quality
array has a floating point data type. [#705]
- Added an experimental
TessPLDCorrector
class 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_tesscut to avoid requesting an identical cut out more than once. [#481]
- Added the
Seismology.interact_echelle()
method for creating interactive asteroseismic echelle diagrams. [#625] - Added
odd_mask
andeven_mask
properties toFoldedLightCurve
to make it easy to plot odd- and even-numbered transits. [#425] - Fixed a bug which caused
TargetPixelFile.interact()
to raise aValueError
if the pixel file contained NaN flux values. [#679] - Fixed minor issues in the tutorials. [#662, #683]
- Added a
scale='linear'
option toTargetPixelFile.interact()
to show pixels using a linear stretch. The default isscale='log'
. [#664] - Added a warning if
SFFCorrector
is used to correct TESS data. [#660] - Added improved sigma-clipping inside
RegressionCorrector
. [#654] - Fixed a bug which caused
LightCurve.show_properties()
to raise aValueError
when 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]
- Fixed a bug in
tpf.to_lightcurve()
which causedflux
andflux_err
to be0
instead ofNaN
for 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
fbpca
a required dependency, because it allowsDesignMatrix.pca()
to be faster and more robust. [#653]
- Fixed a bug introduced in v1.5.0 which caused an
ImportError
related toastropy.stats.calculate_bin_edges
to 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]
- Fixed a bug introduced in Lightkurve v1.5 which caused
import lightkurve
on Mac OSX to automatically select the Matplotlib Agg backend. [#640]
- Changed the representation of
SearchResult
objects to make it easier to see at a glance which quarter/campaign/sector a result belongs to. [#632] - Added
mission
,sector
,camera
, andccd
properties toTessLightCurveFile
for consistency withTessTargetPixelFile
. [#633] - Added the
bins
argument toLightCurve.bin()
to enable custom binning by specifying the bin edges or the total number of bins. [#629] - Added
transform_func
&ylim_func
keywords tointeract()
to support user-defined light curve transformations and y-axis limits. [#600] - Added
to_stringray()
andfrom_stingray()
toLightCurve
to enable interoperability with the Stingray spectral timing package. [#567] - Added an ax (axes) keyword to
Seismology.plot_echelle()
to enable Echelle diagrams to be plotted into an existing Matplotlib figure. [#635]
- Fixed a bug which caused
search_targetpixelfile
andsearch_lightcurvefile
to raise anIndexError
if the sector keyword was passed and the target was observed by both TESS & Kepler. [#631]
- Added the generic
RegressionCorrector
andDesignMatrix
classes which provide a user-friendly way to use linear regression to remove background or systematic noise components from light curves. [#613] - Refactored the
SFFCorrector
class to use the newRegressionCorrector
, which deprecated thepolyorder
keyword 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 explicitHTTPError
exception when MAST's TESSCut service is overloaded and times out. [#627]
- 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.utils
to 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
LombScarglePeriodogram
with an unevenly sampled grid in frequency space. [#614]
- Added
flux_unit
andflux_quantity
properties to theLightCurve
class 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
unit
argument 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
LightCurve
objects, e.g. twoLightCurve
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()
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_FLUX
column rather than theFLUX
column of the new light curve file, for consistency with pipeline products. [#559] - Added
scatter()
anderrorbar()
methods to theLightCurveFile
class to make it consistent with theLightCurve
class. [#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 fromPeriodogram
objects. [#496] - Added the
stitch()
method toLightCurveCollection
andLightCurveFileCollection
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 a
pld_aperture_mask
argument 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.debug
messages tolightkurve.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 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
Corrector
systematics removal classes into their own sub-package, namedlightkurve.correctors
. [#519] - Fixed a bug which prevented
lightkurve.open()
from raising aFileNotFoundError
when a file does not exist. [#540] - Fixed a bug which caused
BoxLeastSquaresPeriodogram
to ignore theperiod
parameter. [#514] - Fixed a bug which prevented the
t0
argument oflc.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 aKeplerLightCurve
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. [#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. [#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.