GitHub repository: waqasbhatti/astrobase
Description: Python modules for light curve work and variable star astronomy
Topics: astronomy, light-curves, python, variable-stars

astrobase v0.5.3: tag_name: v0.5.3
body: # v0.5.3 - 2021-01-16

## New stuff

- `lcmath`: The `phase_bin_magseries_with_errs` function can now accept per-measurement weights to allow different errors for each measurement. Added by @lgbouma.

- `services.tesslightcurves`: The `get_eleanor_lightcurves` function now accepts an optional `targetdata_kwargs` dict to pass in custom target info parameters to the underlying `eleanor.TargetData` constructor. Added by @lgbouma.

- `services`: A new `alltesslightcurves` module to get all available TESS light curves for an object was added by @mchris42.

- `checkplot.png`: The `_make_phased_magseries_plot` function now accepts a`trimylim` kwarg to remove large outliers. Added by @lgbouma.

- Gaia EDR3 support is now available in all functions in the `services.gaia` module and the dependent functions in the `checkplot`, `identifiers`, and `varclass.starfeatures` modules. Set the `data_release` kwarg to 'dr2' to use DR2, and 'edr3' to get data from EDR3. 

  **NOTE:** The Vizier TAP service mirror for EDR3 (currently) uses column names that are different from the Gaia main EDR3 and Heidelberg EDR3 mirrors. The `services.gaia.objectlist_conesearch`, `services.gaia.objectlist_radeclbox`, and `services.gaia.objectid_search` functions will fall back to DR2 if the Vizier mirror is used. To avoid this, use another mirror by setting the`gaia_mirror` kwarg to either 'gaia' or 'heidelberg'.

## Changes

- The default timeout for the SkyView service clients in `plotbase` and `services.skyview` has been changed to 45 seconds.

- Minor fixes for deprecated methods in `matplotlib` and `numpy`.

## Fixes

- `services.gaia`: The Heidelberg mirror URL now uses HTTPS and should no longer fail all the time.
astrobase v0.5.0: tag_name: v0.5.0
body: # v0.5.0

This is a new major release. Support for Python 2.7 has been dropped. Astrobase now requires Python 3.5+.

# New stuff

- New `services.tesslightcurves` module to retrieve TESS HLSP light curves from MAST. This requires the astroquery, eleanor, and lightkurve packages. By @lgbouma.
- `services.identifiers`: new `tic_to_gaiadr2` function. By @lgbouma.

# Fixes

- `periodbase.kbls`: now resorts the input times, mags, errs by time to avoid a segfault in the wrapped `eebls` Fortran code. Should fix #94.
- `services.lccs`: now includes the logging bits to make it an actually standalone module.

# Changes

- `periodbase`: all period-finder functions now resort their input times, mags, errs arrays by time before operating on them.
- `cpserver`: reorganized the Tornado handlers into their own modules.
- various `flake8` formatting fixes all over the package
- removed Python 2 specific code all over the package

# Removed

- The deprecated `astrobase.varbase.lcfit` module has been removed. Use the top-level `astrobase.lcfit` subpackage instead.

astrobase v0.4.3: tag_name: v0.4.3
body: ## New stuff

- New `services.limbdarkening` module to retrieve limb-darkening Claret+ 2017
  coefficients from Vizier (just for the TESS band for now). Added by @lgbouma.
- New `services.identifiers` module to convert between SIMBAD, GAIA DR2, and TIC
  identifiers for objects. Added by @lgbouma.
- New `imageutils` module for some simple FITS operations.
- Added the `fivetransitparam_fit_magseries` function to `lcfit.transits` for
  fitting a line plus a Mandel-Agol transit model with everything fixed leaving
  the t0, period, a/Rstar, Rp/Rstar, and inclination as free parameters. Added
  by @lgbouma.

## Fixes

- Minor fixes to the `checkplot` and `services` subpackages.

astrobase v0.4.2: tag_name: v0.4.2
body: ## Changes

- All `lcfit` functions now use `scipy.optimize.curve_fit` instead of `scipy.optimize.leastsq` previously. This appears to produce much more reasonable fit parameter error estimates.
- `periodbase.kbls`: The BLS stats functions now check for a sensible transit model when calculating stats (transit depth, duration, SNR, refit period and epoch).
- `checkplot.png`: Added option to overplot circle on DSS finder-charts. `checkplot.png.twolsp_checkplot_png` can now return a `matplotlib.Figure`. Added by @lgbouma in #86.

## Fixes

- `lcproc.tfa`: Fixed caching of collected LC info when generating a TFA template.
- `checkplotserver`: Fixed column errors in exported CSV from the interface (#85).

## Removed

- Removed deprecated function `astrotess.get_time_flux_errs_from_Ames_lightcurve`. Use `astrotess.read_tess_fitslc` instead.
- Removed deprecated module `services/tic.py`. Use `services/mast.py` instead.

astrobase v0.4.1: tag_name: v0.4.1
body: ## New stuff

- `periodbase.kbls`: now returns BLS stats along with the period finder results.

- `varbase.trends`: added External Parameter Decorrelation with arbitrary
  external parameters, optimizer function, and objective function.

- `periodbase`: added a wrapper for the Transit Least Squares period-finder
  (Hippke & Heller 2019; added by @lgbouma)

- `periodbase.zgls`: added calculation of the analytic false-alarm probability.

- `services.gaia`, `services.mast`: added single-object search-by-name
  functions.

- `lcfit.utils`: added an `iterative_fit` function.


## Changes

- `lcproc.tfa`: now removes template objects from consideration if they're too
  close to the target object.

- `periodbase`: broke out all of the functions in `periodbase/__init__.py` to
  `periodbase/utils.py` and `periodbase/falsealarm.py` as appropriate.


## Fixes

- `periodbase`: fixed epsilon checking against values of previous best periods
  when iterating through periodogram peaks (by @joshuawallace).

- `periodbase.zgls`: now correctly uses `tau` in the calculation of the
  periodogram value.

- `varclass.starfeatures`: fixed missing `and` in an if-statement (by
  @joshuawallace).

- `lcproc.tfa`: various bug-fixes.

astrobase v0.4.0: tag_name: v0.4.0
body: This is a new major release. Several modules have been moved around. Most public
facing modules and functions now have full docstrings that auto-generate Sphinx
documentation (https://astrobase.readthedocs.io).

Work for the v0.4 series of releases will be tracked at:

https://github.com/waqasbhatti/astrobase/projects/1

## New stuff

- New top-level `lcproc`, `checkplot`, and `lcfit` subpackages.
- `services.mast`: now has a `tic_xmatch` function.
- `lcfit.transits`: added new `mandelagol_and_line_fit_magseries` function (by
  @lgbouma).
- `timeutils`: added new `get_epochs_given_midtimes_and_period` function (by
  @lgbouma).
- New `periodbase.abls` module to use Astropy 3.1's BoxLeastSquares as the BLS
  runner instead of the wrapped eebls.f used by
  `periodbase.kbls`. `periodbase.kbls` remains the default implementation when
  you do `from astrobase import periodbase`. You can call
  `periodbase.use_astropy_bls()` immediately after importing `periodbase` to
  switch the default BLS implementation to `periodbase.abls`.

## Changes

- `varbase.lcfit` has been moved to a new top-level subpackage called `lcfit`,
  and is broken up into `lcfit.sinusoidal`, `lcfit.eclipses`,
  `lcfit.nonphysical` and `lcfit.transits` submodules. The `varbase/lcfit.py`
  module will be removed in Astrobase 0.4.5.
- `lcproc.py` has been moved to a new top-level subpackage called `lcproc`, and
  is broken up by specific functionality.
- `checkplot.py` has been moved to a new top-level subpackage called
  `checkplot`, and is broken up into `checkplot.pkl` for making checkplot
  pickles, and `checkplot.png` for making checkplot PNGs.
- `periodbase.kbls.bls_stats_singleperiod` and `periodbase.kbls.bls_snr` now do
  a trapezoidal transit model fit to the prospective transit found by an initial
  run of BLS and calculate the transit depth, duration, ingress duration, refit
  period, and refit epoch that way.
- `plotbase`: the function `plot_phased_mag_series` is now called
  `plot_phased_magseries`.
- `plotbase`: the function `plot_mag_series` is now called
  `plot_magseries`.
- `lcproc_aws.py` has been moved to `lcproc.awsrun`.
- `lcproc` now uses JSON files stored in either `[astrobase install
  path]/data/lcformats` or `~/.astrobase/lcformat-jsons` to register custom LC
  formats. This is more flexible than the older approach of adding these to a
  top-level dict in `lcproc.py`.
- `lcfit.sinusoidal`: the `fourier_fit_magseries` function now returns
  times.min() as the `epoch` value in its `fitinfo` dict (by
  @joshuawallace). The actual time of minimum light is returned as
  `actual_fitepoch` in the `fitinfo` dict.
- `periodbase/oldpf.py` has been moved to `periodbase/_oldpf.py`. It will be
  removed in Astrobase 0.4.2.
- The `services.tic` module has been deprecated and will be removed in Astrobase
  0.4.2.
- The `astrotess.get_time_flux_errs_from_Ames_lightcurve` function has been
  deprecated and will be removed in Astrobase 0.4.2. Use the
  `astrotess.read_tess_fitslc` and `astrotess.filter_tess_lcdict` functions
  instead.
- We no longer run the Astrobase test suite on Python 2.7. Most things should
  continue to function, but there are no guarantees. Python 2.7 support will end
  in December 2019.

## Fixes

- Lots of bug fixes everywhere. See the commit history for details.

astrobase v0.3.20: tag_name: v0.3.20
body: ## New stuff

- `plotbase.plot_phased_magseries` can now overplot a light curve model. Added by @lgbouma.
- new `varbase/transits.py` module for planet transit specific tools. Added by @lgbouma.
- new `awsutils.py` module for interfacing with various AWS services for `lcproc_aws.py`.
- new `lcproc_aws.py` module for lcproc functions ported to AWS workflows.
- `astrotess.py` now has `read_tess_fitslc`, `consolidate_tess_fitslc`, and `filter_tess_fitslc` functions like `astrokep.py` to read MAST archived `*_lc.fits` files (from the TESS Alerts page) into lcdicts.
- new `services/mast.py` module for querying the STScI MAST API. Added a `tic_conesearch` function to help with future checkplot making that will include TIC IDs and TESS mags.
- `lcproc.register_custom_lcformat` can now provide arbitrary kwargs to the LC reader and normalization functions.

## Changes

- `services`: service clients that talk to single mirrors now use a random sleep before launching the request to avoid overload when running in many parallel processes.
- `checkplot, starfeatures`: include all GAIA neighbor proper motions instead of just the target object proper motions.
- `starfeatures` functions now recognize TESS and Kepler mags for checkplot making.
- `services/lccs.py`: updated for v0.2 of the LCC-Server's API.
- `lcproc.make_lclist` now accepts an input list of actual filenames to turn into a lclist catalog pickle.
- `hatsurveys.hatlc.normalize_lcdict_byinst` now also uses the LC's `ccd` column to generate the normalization key.

## Fixes

- added checks in various places for both lists and tuples where lists only were expected.
- `lcfit.mandelagol_fit_magseries`: various bugfixes.
- `lcproc.make_lclist` now handles duplicate object IDs with different light curve files correctly.
- `lcproc, checkplot`: remove spaces in object IDs for output filenames.
- `astrokep.py`: fix LC normalization.
v0.3.19: tag_name: v0.3.19
body: # v0.3.19

## New stuff

- `varbase.lcfit`: now includes a `mandelagol_fit_magseries` function to fit a
  Mandel-Agol transit model. Implemented by @lgbouma. Requires `emcee`, `h5py`,
  `corner` and `BATMAN`.
- Added `astrotess.py` by @lgbouma containing basic TESS TOI light curve reader
  functions.
- Added `services/tic.py` by @lgbouma containing a basic TESS Input Catalog at
  MAST API client.
- `lcproc.parallel_cp`: can now slice task lists using start and end indices.


## Changes

- `services/skyview`: added configurable retry behavior if the downloaded FITS
  file is corrupted.
- `checkplot`: the `fast_mode` kwarg now disables SIMBAD lookup because the
  service is unreliable.
- `hatsurveys/hatlc`: added a quiet kwarg for the normalization functions.


## Fixes

- `lcproc.add_cpinfo_to_lclist`: fix typo `abs_gaiamag` -> `gaia_absmag`; these
  values will now be extracted correctly from checkplots.
- `periodbase.kbls.bls_serial/parallel_pfind`: also returns the `magsarefluxes`
  kwarg from the input.
- `periodbase.kbls.bls_stats_singleperiod` and `bls_snr`: fix transit depth sign
  if `magsarefluxes = True`.


# v0.3.18

## New stuff

- checkplot: added a `fast_mode` kwarg for `checkplot_pickle` so external
  service queries time out faster when the services are not responsive.

## Changes

- `lcmath.sigclip_magseries`: `sigclip` can now be either int or float.

## Fixes

- lcfit: in the `*_fit_magseries` functions, `fitmagminind` can be a
  multiple-item array instead of a single item for flat light curves. This will
  break the time-of-minimum finding routine for an LC fit. Now uses the first
  item in the array for `magseriesepoch` if this is the case. Added by
  @joshuawallace.

# v0.3.17

## New stuff

- kbls: added a dedicated `bls_stats_singleperiod` function to get time of
  center-transit, refit period, and transit duration
- hatlc: added console script to directly read/dump HAT LCs and metadata from the
  command-line
- hatlc: added support for LCC server produced CSV light curves
- services: removed hatds.py, added new lccs.py for common LCC server API
- checkplotserver: added a standalone mode for serving checkplot pickles
- `checkplot.checkplot_pickle_to_png`: add support for LCC server produced JSON


## Changes

- k2hat: fixes to column names in lcdict to bring into line with other LC
  readers in the `hatsurveys` subpackage
- `hatlc.read_and_filter_sqlitecurve`: make less verbose in case of errors
- `kbls.bls_snr`: get time of center-transit using a better method
- `kbls.bls_snr`: return refit periods and epochs
- cpserver.js: added parsing of `observatory` and `telescope` keys in
  checkplots if present

## Fixes

- `cp.checkplot_pickle_update`: fix unicode filename handling for py2 (#52)
- coordutils: fix sign parsing bug in `dms_str_to_tuple`
- `lcproc.add_cpinfo_to_lclist`: fix incorrect cpdict keys for varfeatures


# v0.3.16

## Fixes

- services: fixed infinite mirror-hop loop when submitting queries for
  SIMBAD/GAIA, these should now bail out after `maxtries` number of submission
  tries are reached.
- cpserver: fixed some issues with frontend JS breaking if GAIA xy positions are
 not available for some reason


# v0.3.15

## New stuff

- cpserver: added a `baseurl` kwarg to `checkplotserver` so one can launch
  multiple instances of it and have them go to separate base URLs if
  reverse-proxying to external users.
- `plotbase.plot_phased_mag_series`: allow output to an existing
  `matplotlib.axes.Axes` object


## Changes

- cpserver: checkplot filenames are now URI encoded in requests to
  `checkplotserver`

astrobase v0.3.14: tag_name: v0.3.14
body: ## New stuff

- checkplot: add `update_checkplot_objectinfo` function to retroactively update checkplots with new information after they've been created
- services: added a SIMBAD TAP query client
- services.gaia: added `complete_query_later` kwarg to save still-running query info if a timeout is reached. the next invocation of the same query will check if it completed and will retrieve the results
- varclass.starfeatures: get all possible external object IDs from SIMBAD
- checkplot, lcproc, starfeatures: add `gaia_max_timeout`, `gaia_mirror`, and `complete_query_later` kwargs to query and checkplot related functions

## Changes

- services.gaia: now uses DR2
- services.gaia: now figures out which GAIA mirrors to use automatically, uses CDS by default
- services.gaia: can now skip to another GAIA mirror if the current one doesn't work. mirrors enabled are the GAIA main site, the Heidelberg mirror, and the CDS mirror
- `lcproc.add_cpinfo_to_lclist`: add magcols to the output dict and run SIMBAD query again if necessary
- `checkplot._pkl_finder_objectinfo`: allow direct use of dict as lclistpkl kwarg

## Fixes

- checkplot: actually retry finder chart with forcefetch=True
- cpserver.js: handle errors correctly on checkplot load
- cpserver.js: more failure handling
- kbls: new chunk-size determination scheme, should fix Github #50
- services.gaia: automatically figure out table names for mirrors
- services.gaia: fix missing import, tests: use new expected GAIA ID for DR2
- services.gaia: handle timeouts and 503s a bit better
- services.gaia, skyview: add handling for corrupt cached results
- services.simbad: enforce random wait time between retries
- starfeatures: fix missing simbad_result var
- tests: more fixes for GAIA DR2
- `varfeatures.nonperiodic_lightcurve_features`: fix ndet inconsistency
astrobase v0.3.13: tag_name: v0.3.13
body: (this changelog includes v0.3.12 changes)

## New stuff

- checkplot, checkplotserver: handle cases of no PF results, also PF results w/ only 1 phased LC. This allows making checkplot pickles for objects with no period-finder results just to see their mags, colors, finder chart, and GAIA info in the checkplotserver web interface or as checkplot pickles exported to PNG
- `lcproc.runcp`: allow empty pfpickle input for CPs w/o phased LCs
- lcproc: new `add_cpinfo_to_lclist` function to add back checkplot info to the object catalog generated by `lcproc.make_lclist`
- lcproc, plotbase: add `overlay_zoomcontain` kwarg for `fits_finder_chart` function to zoom finder charts automatically to the footprint of all annotated objects in the overlay
- services.gaia: now randomly picks between GAIA archive mirrors and can skip dead ones automatically
- (v0.3.12) lcproc: added TFA ([Kovacs et al. 2005](http://adsabs.harvard.edu/abs/2005MNRAS.356..557K)) implementation and parallel drivers
- (v0.3.12) lcproc: added EPD drivers for LC collections


## Changes

- checkplot: finder reticle now at radec -> xy of object instead of center of chart
- services.gaia: return query params for info after an HTTPError
- (v0.3.12) lcproc, checkplotlist: make nworkers depend on actual number of CPUs
- (v0.3.12) lcproc: add minobservations kwarg for `runcp`, `parallel_cp`, `parallel_cpdir`


## Fixes

- services.gaia: standardize ra, dec etc strings to make cache hits more probable
- `lcproc.runcp`: workaround for list of pfmethods if not provided in the period-finding result pickle
- cps UI: fix overview tab LC tile widths if no PF methods are present in the checkplot pickle
- cpserver: fix object comments not being included in CSV/JSON export from web interface or being written to the original checkplotlist JSON
- checkplot: handle 'objectid' not found in HAT LC objectinfo dicts
- (v0.3.12) lcproc: fix addressing of magcols so stuff like specifying 'epd.mags', 'tfa.mags' works for most functions correctly
- (v0.3.12) `lcproc.timebinlc`: write results to correct outdict keys based on magcols
- (v0.3.12) lcfit: fix missing imports
- (v0.3.12) `lcfit.spline_fit_magseries`: fix annoying 'x must be strictly increasing' error by removing duplicate x values
- (v0.3.12) checkplot: fix axes -> ax typo
astrobase v0.3.11: tag_name: v0.3.11
body: ## New stuff

- `checkplot.checkplot_pickle_to_png`: can now export to StringIO or BytesIO instance in addition to a PNG filename.
- `checkplot`/`lcproc`: added a `maxnumneighbors` kwarg to control the max number of neighbors the function retrieves around the target object. Added by Joshua Wallace (@joshuawallace).
- cpserver UI: added object-neighbor color and mag diffs per neighbor to the overview tab if available.
- cpserver UI: zoom effects on mouse-over for phased LC tiles to make reviewing easier.
- `lcproc.make_lclist`/`filter_lclist`: can now make overlayed FITS finder charts if a FITS file for the object catalog is provided. The [lc-collection-work](https://nbviewer.jupyter.org/github/waqasbhatti/astrobase-notebooks/blob/master/lc-collection-work.ipynb) Jupyter notebook has more details.
- `plotbase`: added a `fits_finder_chart` function to make an annotated finder chart from a given FITS file with WCS information.

## Changes

- cpserver UI: finder chart reticle appearance changed slightly to obscure stars near the target less.
- cpserver UI: moved the 'Save to PNG' button to the overview tab so it's more obvious.
- `checkplot:checkplot_pickle`: can now fall back to GAIA proper motions if 'pmra' and 'pmdecl' are not provided in the input `objectinfo` dict kwarg.
- cpserver: now gzips the response (slightly speed up if the checkplotserver is running somewhere else other than localhost).
- cpserver: PNG export for a checkplot is now done in memory (theoretically, this enables PNG export in readonly mode, but that's disabled for now).

## Fixes

- `checkplot.checkplot_pickle_to_png`: fix py2 StringIO isinstance() issues.
- cpserver: fix broken handling of missing nbr mag and color diffs.
- cpserver UI: fix the CSV/JSON export to correctly include all previous reviewed objects instead of just the ones from the current session.
- cpserver: readonly mode now disables all input correctly.
- cpserver UI: fix checkplot list traverse breaking at ends of list.
- `periodbase.kbls.bls_snr`: fixed transit duration calculation, pointed out in Github PR #45.
- lcproc: fix readerfunc apply if sequences are returned.

astrobase v0.3.9: tag_name: v0.3.9
body: ## New stuff

- checkplot: can now provide epochs for folding phased light curves as input, overriding the default light curve time-of-minimum finding strategy
- starfeatures and checkplot: can now use arbitrary mags and colors in input objectinfo dicts, can add custom bandpasses as well
- checkplotserver UI: added highlight for each GAIA neighbor in the DSS finder chart as cursor mouses over its row in the GAIA neighbor list table to help with visualizing close neighbors
- tests: added tests for new epoch and mag/color handling
- added a CITE.md


## Changes

- checkplot: no longer warns if a pickle was written in Python 2 and latin1 encoding was needed to read it in Python 3
- checkplot: a Savitsky-Golay fit is now tried before giving up on finding time-of-minimum of a light curve if the initial spline fit failed
- checkplotserver: UI fixes to not squish phased LC tiles into too small an area; now they overflow off the page with scroll-bars, but should remain legible
- `lcmath.sigclip_magseries` can now use either median/MAD or mean/stdev as the central and spread values in determining where to clip (added by @joshuawallace in #40)


## Fixes

- checkplotserver: handle more nan-JSON breakage
- starfeatures: handle missing information correctly
- fixed link at the top of hatlc.py to the astrobase-notebooks repository (added by @adrn in #37)
- checkplotlist: fixed to not use non-existent `str.isdecimal()` in Python 2
- various other Python 3 specific things were fixed to make them work on python 2.7 as well

astrobase v0.3.8: tag_name: v0.3.8
body: ## New stuff

- added a varbase/trends.py module for detrending LCs
- varbase/trends: added implementation of classic EPD and random-forest EPD
- lcmath: add a `sigclip_magseries_with_extparams` function
- checkplots: now able to handle multiple invocations of the same period-finder method (e.g. for exploring different period-ranges with the same PF method)

## Changes

- timeutils: use HTTPS url for JPL ephem download
- setup.py: use pip>=6 requirements format; allows conditional py2 dependency on the backported `future` package, instead of the hack we had before
- `lcproc.filter_lclist`: get the whole matching row from the external catalog for xmatches instead of just the objectid
- `lcfit.legendre_fit_magseries`: add legendre fit coeffs to output dict
- removed `imageutils.py`, moved to another package in development
- periodbase: `periodepsilon` is now a fraction diff from previous peak instead of an absolute diff, should work better for finding peaks in the periodograms for all period ranges now

## Fixes

- `kbls.bls_snr`: fix for not using the same kwargs from the initial BLS run
- kbls: fixing nphasebins and messaging about autofreq
- `starfeatures.neighbor_gaia_features`: handle missing K mag
- cpserver.js: better handle missing checkplot info from GAIA, etc.
- tests: fixed some bugs
- `checkplot.checkplot_pickle_to_png`: guard against missing phased LCs for nbestperiods
- lcproc: various fixes for new generation checkplots
astrobase v0.3.5: tag_name: v0.3.5
body: ## Changes

- removed example PNGs from PyPI source and wheel distributions to cut down on size; now back to a reasonable ~750 kB instead of ~4 MB previously.

astrobase v0.3.4: tag_name: v0.3.4
body: ## New stuff

- checkplot: added cross-matching against external catalogs
- checkplotserver: add GAIA information
- checkplotserver: add display of GAIA CMD for object if available
- checkplotserver: add xmatch information
- checkplotserver: added all current astrobase period-finders and their specific options
- checkplotserver: added time, mag/flux filtering, and sigclip for period-search tab
- checkplotserver: link to neighbors' checkplots if they're in current collection
- checkplotserver: add some more var/obj tags available by default
- coordutils: add general kdtree functions
- cpserver.js: add xypos to GAIA neighbor display, for TBD cutout overlay
- lcproc: add xmatch drivers
- lcproc: get color/mag diffs between object and LCC neighbors
- lcproc: implemented functions to add CMDs to checkplots
- magnitudes: add GAIA absolute mag calc
- services.gaia: also get parallaxes from the gaia_source table if available
- starfeatures: attempt to handle no close GAIA matches
- starfeatures: get BV from JHK if necessary
- starfeatures: get GAIA xy positions on object Skyview cutout

## Changes

Lots of reorganization and cleanup:

- hatlc, hplc, oldhatlc, k2hat were all moved to the hatsurveys subpackage
- all checkplotserver related modules are now in the cpserver subpackage

Other changes:

- checkplot, lcproc: change default nbr radius to 60 arcsec
- checkplot: `starfeatures.neighbor_features` -> `neighbor_gaia_features`
- checkplotserver: default nav shortcut key now alt+shift+left/right instead of ctrl+left/right
- checkplotserver UI: reorganized for better workflow, disabled TBD elements for now
- lcproc, checkplot: put in xmatch kwargs and calls
- setup.py: add cpserver subpackage

## Fixes

- checkplot: fix location for font
- checkplot, cpserver: various fixes to imports and nan-handling
- cpserver, cp: fix JSON encoder to handle more weird things
- cpserver: make ACF period search actually work from the frontend
- cpserver: handle case where neighbors don't have LCs
- cpserver: handle nans better in arrays sent to frontend
- cpserver: handle nans from xmatch results
- cps UI: clear periodsearch elems on checkplot load
- cps UI: load previously saved period/epoch for plotting in psearch-tab
- cps UI: more small fixes
- lcmath: add missing imports
- lcproc: fixed bugs with new neighbor processing
- lcproc: fix issue with missing LC renorm for runcp
- periodbase.macf: fix filterwindow kwarg

astrobase v0.3.3: tag_name: v0.3.3
body: ## New stuff

- checkplot: added all new star features to checkplot dict objectinfo
- cpserver: added implementation for neighbors tab
- cpserver: add GAIA neighbors, dereddened colors, color classes to web interface
- services.skyview: add sizepix param, gracefully handle older cache fnames
- checkplotlist: add a default sortorder and sortkey (objectid - asc)

## Fixes

- checkplot: fix broken coordutils imports for checkplot_png, et al.
- checkplot: add extra guards against measurements being all nan or not enough finite values
- checkplot.checkplot_pickle_to_png: guard against missing or insufficient neighbor LCs
- checkplot: fix checkplot_png download of finder charts
- checkplotlist: fix various horrendous bugs when no sorting/filtering specified
- cpserver js: fix long-broken arbitrary period, epoch, etc. input
- lcproc: check if a neighbor LC actually exists before processing it
- lcproc: guard against insufficient measurements for neighbors too
- plotbase: fix long-broken stamp fetch that tests ignored
- starfeatures.neighbor_features: correctly handle case where there are no GAIA neighbors

astrobase v0.3.2: tag_name: v0.3.2
body: ## Changes in this release

- cpserver: correct imports for varfeatures
- cpserver: enable specwindow LSP, AoVMH, ACF plots
- cpserver: show time-sampling specwindow LSP if it exists
- lcproc.get_periodicfeatures: handle insufficient # of finite LC pts
- lcproc: `makelclist` -> `make_lclist`, `getlclist` -> `filter_lclist`
- services.gaia: added GAIA cone-search function
- varclass.periodicfeatures: lots of fixes for handling LC fit errors
- varclass.starfeatures: fix `dist_arcsec` calculation from `xyz_dist`
- varclass.starfeatures, lcproc: added GAIA nbr dist features, fixed more bugs

astrobase v0.3.0: tag_name: v0.3.0
body: ## Changes in this release

- moved some modules around for better organization
  - fakelcgen -> fakelcs.generation
  - fakelcrecovery -> fakelcs.recovery
  - varbase.features -> varclass.varfeatures
  - hatds -> services.hatds

- new modules:
  - varclass.periodicfeatures
  - varclass.starfeatures
  - varclass.rfclass
  - services.dust
  - services.gaia
  - services.skyview
  - services.trilegal

- checkplot: arbitrary lspmethods in priority order for neighbors
- checkplotlist: use '|' to separate filter/sort ops/operands, not '_'

- fakelcs.generation: add in cepheids as a fakevar class
- fakelcs.recovery: added grid-search for optimizing per-magbin varidx
- fakelcs.recovery: added plotting for optimization results

- lcfit: additional guards against leastsq failure
- lcfit: handle case where covxmatrix isn't returned

- lcmodels.eclipses: add secondaryphase as another param

- lcproc: added get_starfeatures, serial and parallel drivers
- lcproc: added `parallel_periodicfeatures`, `_lcdir`
- lcproc: adding in per-magbin variable index thresholds
- lcproc: fix glob for `parallel_runcp_pfdir`
- lcproc: added star, periodic_feature parallel and serial drivers
- lcproc.runpf: remove BLS, add AoVMH + specwindow L-S as default PF

- periodbase, plotbase: add specwindow function to registries
- periodbase.zgls: add specwindow_lsp to check for peaks caused by time-sampling

- many other bugfixes

## Work that may be in progress

- added lcproc_batch.py for running LC processing on AWS, GKE, etc.
- added Dockerfiles to run astrobase from a Docker container
astrobase v0.2.9: tag_name: v0.2.9
body: ## Changes in this release

- moved the Jupyter notebooks to their own repository at https://github.com/waqasbhatti/astrobase-notebooks
- various fixes after the notebook move

astrobase v0.2.8: tag_name: v0.2.8
body: ## Fixes in this release

- checkplot: add a short cp2png function for convenience
- checkplot/hplc: add gzip support
- checkplot, hplc, lcproc: fix binary mode opening for gzipped pickles
- checkplot: remove stray re-raise so things won't break if no finder
- fakelcgen.add_fakelc_variability: don't add variability if it exists
- fakelcgen: add generate_transit_lightcurve, add_fakelc_variability fns
- fakelcgen: add timecols, magcols, errcols to fakelcdict; transit stuff
- fakelcgen: finished up add_variability_to_fakelc_collection
- fakelcgen: fixed bugs in generate_[eb|flare]_lightcurve
- fakelcgen: fixing generate_transit_lightcurve
- fakelcgen: fix random declination range
- fakelcgen: handle non-variables in add_fakelc_variability
- fakelcgen/lcproc: chosen random mag -> scalar; feature arrays -> 1-d
- fakelcgen: use the correct bin count dist for random mag assignments
- hplc: read gzipped pklc transparently
- lcproc: add parallel_runcp for list of periodfinding result pickles
- lcproc: HP gzipped pklc glob update


## Work that may be in progress

- [WIP] varclass.fakelcrecovery: TBD

astrobase v0.2.7: tag_name: v0.2.7
body: ## Fixes in this release

- checkplot: use axes_grid1 because axes_grid is deprecated apparently
- features.all_nonperiodic_features: add back magsarefluxes kwarg
- lcmath: add (optional for now) iterative sigclip to sigclip_magseries
- lcmodels.eclipses: fixes to docstring
- lcmodels.eclipses, lcfit: implemented invgauss_eclipses model & fit fns
- lcproc.plot_variability_thresholds: yscale -> log
- lcproc: stetson_threshold -> variability_threshold, now per mag-bin
- lcproc: stupid bug fix
- lcproc.variability_threshold: get and plot LC RMS as well
- recoverysim: added make_fakelc_collection
- recoverysim: fixed up make_fakelc, make_fakelc_collection
- recoverysim: now two separate modules: fakelcgen and fakelcrecovery
- varbase.features: some more measures added
- varbase.lcfit: fix confusing fourierorder, fourierparams kwargs. GH PR #27
- varbase.signals: fixes for GH PR #25 and #29
- varbase/signals: fix long-broken gls_prewhiten iterative prewhiten function
- checkplot.twolsp_checkplot.png: Wrapped LOGWARNING in `if verbose:` statement

## Work that may be in progress

- [WIP] moved various LC models into lcmodels, TODO: finish these
- [WIP] setting up the varclass package, TODO: finish this


astrobase v0.2.6: tag_name: v0.2.6
body: Fixes in this release:

- lcfit: fix error handling
- lcfit: implement traptransit_fit_magseries to fit trapezoids to transit signals
- lcfit.traptransit_fit_magseries: get formal 1-sig errs for final params
- lcproc/checkplot: use full lcfpath in makelclist, getlclist, nbr procs
- lcproc, features: fix broken beyond1std, add bestmagcol to results
- lcproc.makelclist: add maxlcs kwarg
- lcproc.makelclist: fixing various bugs
- lcproc, periodbase: update period-finder registry dicts
- periodbase: fix falsealarmprob for PDM
- periodbase.make_combined_periodogram: addmethods kwarg
- README: added zenodo DOI badge
- smav: bump up default nharmonics to 6 from 4
- smav: use correct dot product function (np.vdot not np.dot)

astrobase v0.2.5: tag_name: v0.2.5
body: ## Fixes

- checkplot: add neighbor stuff to checkplot png as well
- checkplot.checkplot_pickle_to_png: actually fix mistaken pkl outfile ext
- checkplot: fix handling of no neighbors case
- checkplot: get neighbors of target, their radecs, xys, and lcfpaths
- checkplotlist: added some TODOs for multi-checkplot-per-object stuff
- checkplotlist: more notes on planned features
- finally added coding: utf-8 to everything
- glsp: remove because all moved to zgls.py
- lcmath: added a fill_magseries_gaps function
- lcmath, autocorr: add some guards against weirdness
- lcmath.fill_magseries_gaps: fix normalization of fluxes
- lcmath.fill_magseries_gaps: use 0.0 to fill gaps instead of noiselevel by default
- lcmath.fill_magseries_gaps: use scipy's perfectly cromulent mode function instead of our own mode function
- lcproc: added update_checkplotdict_nbrlcs to get neighbor LCs
- lcproc: add neighbor stuff to parallel_cp workers and driver
- lcproc: add serial_varfeatures
- lcproc: better kwargs for xmatchexternal
- lcproc: fix default fileglobs for HAT and HPX LCs
- lcproc.makelclist: do parallel info collection instead
- lcproc.makelclist: get actual ndets per magnitude column
- lcproc.makelclist: remove useless fileglob from tasklist
- lcproc.parallel_cp_lcdir: make output directory if it's doesn't exist
- lcproc.parallel_varfeatures: use ProcessPoolExecutor instead of mp.Pool
- lcproc.runpf: make BLS SNR optional because it takes forever
- lcproc.runpf/runcp: allow any of the period-finders from periodbase
- lcproc: simplify parallel task list for makelclist
- macf: added macf_period_find
- macf: added plot_acf_results to see smoothed/unsmoothed ACF and peaks
- macf: fixed, tested; reproduces McQuillian+ (2014) results on KeplerLCs
- macf: search interval for ACF peaks now depends on smoothing
- periodbase.macf: initial bits for McQuillian+ (2013a, 2014) period-finder
- periodbase: add a make_combined_periodogram fn
- periodbase: add macf to base namespace
- plotbase: get the FITS header for the cutout for WCS purposes later
- README, various: add links to ADS for period-finders, fix spelling of names
- smav: bugs fixed, seems to be working OK
- periodbase.smav: implemented aovhm_periodfind, to be tested
- varbase.autocorr: actually return acf as np.array
- varbase.autocorr: new autocorr_magseries function using lcmath.fill_magseries_gaps
- varbase.autocorr: return acf as np.array
- varbase.autocorr: use 0.0 to fill gaps instead of noiselevel by default
- varbase.features: fix annoyingly subtle bug causing np.polyfit crashes
- varbase.features: np.nonzero -> npnonzero
- zgls, lcfit: guard against zero errors here too
- zgls: move the glsp functions into here