BASTA: The BAyesian STellar Algorithm

Related tags

Machine LearningBASTA
Overview

BASTA: BAyesian STellar Algorithm

Code style: black License: MIT Documentation Status arXiv

Current stable version: v1.0

Important note: BASTA is developed for Python 3.8, but Python 3.7 should work as well. Python 3.9 is currently not supported due to problems with h5py.

Before you begin

Please follow the repository here on GitHub to get notifications on new releases: Click "Watch" then "Custom" and tick "Releases.

Please have a look at our documentation.

There we have written a guide guide to installing BASTA.

On there, you will also find an introduction to running BASTA.

If you are curious on what BASTA can do, we have created several fitting examples and the exact code to run them available.

References and acknowledgments

There are two papers containing the rationale, main features, and capabilities of the code:

Please consider citing these references if you use BASTA in your work, and include the link to the code's repository https://github.com/BASTAcode/BASTA.

Due to its versatility, BASTA is used in a large variety of studies requiring robust determination of fundamental stellar properties. We have compiled a (non-exhaustive) list of papers using BASTA results that showcases these applications. If your paper using BASTA results is missing from the list please contact us.

Authors

The current core developing team are:

  • Víctor Aguirre Børsen-Koch
  • Jakob Lysgaard Rørsted
  • Mark Lykke Winther
  • Amalie Stokholm
  • Kuldeep Verma

Throughout the years, many people have contributed to the addition and development of various parts and modules of BASTA. We welcome further contributions from the community as well as issues reporting. Please look at the contribution section in the documentation for further details.

Comments
  • Update Asfgrid

    Update Asfgrid

    The Asfgrid of dnu corrections has been updated (https://iopscience.iop.org/article/10.3847/2515-5172/ac8b12) with more points and an extended range. It can be downloaded from here: http://www.physics.usyd.edu.au/k2gap/Asfgrid/ . This could be quite an upgrade for the BaSTI library to complement the Serenelli corrections.

    Update the code to use the new version -- REMEMBER that we patched the old version to work in BASTA. And that we added multiprocessing and therefore included some locks in the input to some routines.

    Note: This is actually more of an issue for the building routines! I have made this issue just to make sure that we check to compatibility when the grids are updated.

    grids 
    opened by jakobmoss 3
  • Rewrite _find_get to handle bools and added defaults for freqfit

    Rewrite _find_get to handle bools and added defaults for freqfit

    When during frequency fitting I discovered that it was required of me to specify threepoint=False in the freqparams xml tag. That makes no sense as (i) that is for ratio fitting and (ii) it should be False by default.

    I then discovered that _find_get could not handle the default value of threeport=False. This is a rewrite of that function.

    While I was at it, I added defaults for fcor (cubicBG14), correlations (False), and dnufrac (0.15). When fitting frequencies, you can simply just specify

    <freqparams>
        <freqpath value={path-to-frequencies}
    </freqparams>
    

    and add <freqs/> to fitparams and maybe set

    <freqplots>
        <True/>
    </freqplots>.
    
    opened by amaliestokholm 1
  • Epsilon-difference fitting and refactoring

    Epsilon-difference fitting and refactoring

    Implementation of epsilon-differences fitting (cf. our Plato-module). Major refactoring of the surface-independent fitting (i.e. ratios), especially the routines to do I/O and prepare the observations. Refactoring of plotting code (especially ratios) and added new plots.

    New plots:

    • Epsilon-differences diagnostic plots
    • Correlation map {freqs, ratios, epsdiff}
    • Plain echelle diagram
    • Single-panel ratio plots

    Other changes:

    • Ratios are interpolated to the observed frequencies
    opened by jakobmoss 0
  • Refactor `plot_seismic.echelle`

    Refactor `plot_seismic.echelle`

    This just refactors the code behind the echelle diagrams, which makes it more readable and less relient on the number of unique l values of the observations.

    It also makes small aesthetic changes such as changing $l$ to $\ell$ and adding the Frequency normalised by dnu axis to all plots and not just the duplicateechelle plots.

    opened by amaliestokholm 0
  • Requirements, json example, freqfit defaults

    Requirements, json example, freqfit defaults

    Update packages to newest versions (to make it installable on MacOS). Fix bug in json example. Fix bugs and add default values in frequency fitting (PR #17). Update plotting strings to match newest version of the Sharma/Stello (asfgrid) corrections.

    opened by jakobmoss 0
  • Update requirements and shipped grid

    Update requirements and shipped grid

    Two changes:

    • Bump requirements to newest versions and add bottleneck.
    • Switch to shipping the 16 Cyg A grid with new weights (based on Sobol volume). Reference examples updated to match; interpolation example still uses the old grid.
    opened by jakobmoss 0
  • 3-point ratios

    3-point ratios

    Add the option to use 3-point seperation ratios instead of the default 5-point. This is useful for reproducing older results or results from other groups.

    Additionally, the default of dnufit_in_ratios is changed to False (as it ought to have been always).

    opened by jakobmoss 0
  • Reddening coefficients for Gaia eDR3

    Reddening coefficients for Gaia eDR3

    Replaced the coefficients from DR2 with eDR3. The new coefficients follow the prescription of Casagrande and Vandenberg (2018). They are now the default Gaia coefficients

    opened by jakobmoss 0
  • Version 1.1.3

    Version 1.1.3

    Bring main to version 1.1.3.

    Calculation of bayesian weights when interpolating along a track is fixed -- before it used the base parameter, now it correctly uses seperation in age (or mass for isochrones). Details in #10 .

    opened by jakobmoss 0
  • Intpol bayweights along tracks fix

    Intpol bayweights along tracks fix

    The Bayesian weights along the tracks/isochrones "dage"/"dmass" were accidentially computed from the chosen base parameter in the interpolation, instead of the age/mass as they should. This update fixes that, by separately computing the "dage"/"dmass" for each track/isochrone after interpolation of all other quantities. This should also ensure they are always computed.

    opened by MLWinther 0
  • Version 1.1.2

    Version 1.1.2

    Bring main to version 1.1.2.

    Smoother KDE representations in the corner plots. Updated examples and documentation. Add published paper details.

    Full details in #7 .

    opened by jakobmoss 0
Releases(v1.2.0)
  • v1.2.0(Dec 16, 2022)

    New fitting mode and major refactoring.

    New features:

    • Epsilon-differences fitting (alternative surface-independent measure similar to ratios). Everything is derived only from the frequencies. Set e012 in fitparams (and activate correlations) and it runs. Includes new plots. The method will be described in the documentation in the next release and in more detail in an up-coming paper.

    Major changes:

    • Refactoring of all frequency-input handling, especially the treatment of ratios. Improves readability, reproducibility, and maintainability.
    • Refactoring of code to produce frequency-related plots. Common framework for clarity.
    • Ratios are interpolated to the observed frequencies (can be turned off).

    Minor changes:

    • Updated look of ratios plots (and now in single panel).
    • New echelle diagram with no pairing lines made by adding "echelle" to the plotting options. To get all of the different echelle diagrams in one go, add "allechelle". The examples are updated to use "allechelle".
    • New plot of the correlation matrix. Mainly for surface-independent fitting, where we always derive the full covariance matrix, but also works for frequencies if the input-covariances are provided.
    • New options for the frequency fitting (dnufit_in_ratios, interp_ratios).
    Source code(tar.gz)
    Source code(zip)
  • verma22(Nov 28, 2022)

    Version of BASTA used in Verma et al. (2022). This contains the new approach for fitting glitches and ratios together consistently (with a joint covariance matrix).

    This version is currently incompatible with the main version of BASTA and therefore released separately. The 'ratios and glitches together'-feature will be included in a main release later.

    Source code(tar.gz)
    Source code(zip)
  • v1.1.6(Nov 14, 2022)

    Minor bugfix/infrastructure release.

    Changes:

    • Update packages to newest versions.
    • Fix bug in json example.
    • Fix bugs and add default values in frequency fitting.
    • Update plotting strings to match newest version of the Sharma/Stello (asfgrid) corrections.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.5(May 23, 2022)

    Will make the installation run out-of-the-box again (mitigates known issue with the version of Black). All requirements bumped.

    Additional changes:

    • Added Gaia eDR3 extinction values
    • The shipped 16 Cyg A grid contains the new weights
    • Added an option to use 3-point frequency ratios
    Source code(tar.gz)
    Source code(zip)
  • v1.1.4(Jan 12, 2022)

  • v1.1.3(Jan 4, 2022)

  • v1.1.2(Dec 21, 2021)

    Minor release.

    Smoother KDE representations in the corner plots.

    Fixes bugs in the examples (everything should now run out-of-the-box). Updated documentation to match examples.

    Full details in #7 and #9 .

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Dec 1, 2021)

    Bugfix release!

    Fixes an issue causing dnu's to be incorrectly scaled to the solar value if only fitted and not in the output.

    Full details in #5 and #6 .

    Source code(tar.gz)
    Source code(zip)
  • v1.1(Nov 26, 2021)

    The main attraction is the support of Python 3.9 through support of h5py 3.x. Requirements are updated, so the virtual environment should be updated as well.

    New features:

    • Debugging plots for interpolation
    • Suppress summary from xml-generation (add --quiet)

    Main changes:

    • Handling of dnu in the input-xml (now always called 'dnu' and translated as file is read) -- please re-generate input-xml files
    • Prettier formatting of the printed output to console and log

    Important bugfixes:

    • Priors work for dnu's in solar units
    • Make 'light' install case work again
    • Interpolation fixes (only l=0 modes; distance included; trimming of box)

    Full details given in the associated pull request.

    Source code(tar.gz)
    Source code(zip)
  • v1.0(Sep 30, 2021)

  • v1.0-rc(Sep 30, 2021)

Owner
BASTA team
The Bayesian Stellar Algorithm (BASTA) development team
BASTA team
A library to generate synthetic time series data by easy-to-use factors and generator

timeseries-generator This repository consists of a python packages that generates synthetic time series dataset in a generic way (under /timeseries_ge

Nike Inc. 87 Dec 20, 2022
Kaggle Competition using 15 numerical predictors to predict a continuous outcome.

Kaggle-Comp.-Data-Mining Kaggle Competition using 15 numerical predictors to predict a continuous outcome as part of a final project for a stats data

moisey alaev 1 Dec 28, 2021
Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.

Horovod Horovod is a distributed deep learning training framework for TensorFlow, Keras, PyTorch, and Apache MXNet. The goal of Horovod is to make dis

Horovod 12.9k Jan 07, 2023
A Time Series Library for Apache Spark

Flint: A Time Series Library for Apache Spark The ability to analyze time series data at scale is critical for the success of finance and IoT applicat

Two Sigma 970 Jan 04, 2023
Iterative stochastic gradient descent (SGD) linear regressor with regularization

SGD-Linear-Regressor Iterative stochastic gradient descent (SGD) linear regressor with regularization Dataset: Kaggle “Graduate Admission 2” https://w

Zechen Ma 1 Oct 29, 2021
This handbook accompanies the course: Machine Learning with Hung-Yi Lee

This handbook accompanies the course: Machine Learning with Hung-Yi Lee

RenChu Wang 472 Dec 31, 2022
MCML is a toolkit for semi-supervised dimensionality reduction and quantitative analysis of Multi-Class, Multi-Label data

MCML is a toolkit for semi-supervised dimensionality reduction and quantitative analysis of Multi-Class, Multi-Label data. We demonstrate its use

Pachter Lab 26 Nov 29, 2022
STUMPY is a powerful and scalable Python library for computing a Matrix Profile, which can be used for a variety of time series data mining tasks

STUMPY STUMPY is a powerful and scalable library that efficiently computes something called the matrix profile, which can be used for a variety of tim

TD Ameritrade 2.5k Jan 06, 2023
Code base of KU AIRS: SPARK Autonomous Vehicle Team

KU AIRS: SPARK Autonomous Vehicle Project Check this link for the blog post describing this project and the video of SPARK in simulation and on parkou

Mehmet Enes Erciyes 1 Nov 23, 2021
Probabilistic time series modeling in Python

GluonTS - Probabilistic Time Series Modeling in Python GluonTS is a Python toolkit for probabilistic time series modeling, built around Apache MXNet (

Amazon Web Services - Labs 3.3k Jan 03, 2023
Price Prediction model is used to develop an LSTM model to predict the future market price of Bitcoin and Ethereum.

Price Prediction model is used to develop an LSTM model to predict the future market price of Bitcoin and Ethereum.

2 Jun 14, 2022
pywFM is a Python wrapper for Steffen Rendle's factorization machines library libFM

pywFM pywFM is a Python wrapper for Steffen Rendle's libFM. libFM is a Factorization Machine library: Factorization machines (FM) are a generic approa

João Ferreira Loff 251 Sep 23, 2022
Adaptive: parallel active learning of mathematical functions

adaptive Adaptive: parallel active learning of mathematical functions. adaptive is an open-source Python library designed to make adaptive parallel fu

741 Dec 27, 2022
Kaggler is a Python package for lightweight online machine learning algorithms and utility functions for ETL and data analysis.

Kaggler is a Python package for lightweight online machine learning algorithms and utility functions for ETL and data analysis. It is distributed under the MIT License.

Jeong-Yoon Lee 720 Dec 25, 2022
Adversarial Framework for (non-) Parametric Image Stylisation Mosaics

Fully Adversarial Mosaics (FAMOS) Pytorch implementation of the paper "Copy the Old or Paint Anew? An Adversarial Framework for (non-) Parametric Imag

Zalando Research 120 Dec 24, 2022
🚪✊Knock Knock: Get notified when your training ends with only two additional lines of code

Knock Knock A small library to get a notification when your training is complete or when it crashes during the process with two additional lines of co

Hugging Face 2.5k Jan 07, 2023
Neighbourhood Retrieval (Nearest Neighbours) with Distance Correlation.

Neighbourhood Retrieval with Distance Correlation Assign Pseudo class labels to datapoints in the latent space. NNDC is a slim wrapper around FAISS. N

The Learning Machines 1 Jan 16, 2022
jaxfg - Factor graph-based nonlinear optimization library for JAX.

Factor graphs + nonlinear optimization in JAX

Brent Yi 134 Dec 21, 2022
Software Engineer Salary Prediction

Based on 2021 stack overflow data, this machine learning web application helps one predict the salary based on years of experience, level of education and the country they work in.

Jhanvi Mimani 1 Jan 08, 2022