Skip to main content

No project description provided

Project description

Transformer Payne

Python Version Build workflow Tests Coverage Status


Tomasz Różański, Yuan-Sen Ting and Maja Jabłońska, "Toward a Spectral Foundation Model: An Attention-Based Approach with Domain-Inspired Fine-Tuning and Wavelength Parameterization", https://arxiv.org/abs/2306.15703


Example usage:

import transformer_payne as tp
import numpy as np
import matplotlib.pyplot as plt

emulator = tp.TransformerPayne.download() # Download weights for default emulator

wave = np.linspace(4800, 4900, 10000)
mu = 1.0 # Ray perpendicular to solar surface
parameters = emulator.solar_parameters # Pick solar parameters and abundances

spectrum = emulator(np.log10(wave), mu, parameters) # Emulate a spectrum

Visulize the results:

intensity = spectrum[:,0]
continuum = spectrum[:,1]
normalized_intensity = intensity / continuum

fig, axs = plt.subplots(2, sharex=True, figsize=(5, 4))
axs[0].plot(wave, intensity, color='black', label='Intensity')
axs[0].plot(wave, continuum, color='red', label='Intensity continuum')
axs[1].plot(wave, normalized_intensity, label="Normalized intensity", color='black')
axs[1].vlines(4862.721, 0, 1, color='C0', label=r'$H_\beta$ (vacuum wavelength)')  # Using raw string for LaTeX
axs[1].set_xlabel("Wavelength [$\AA$]")  # Corrected to set xlabel on the second subplot
axs[0].set_ylabel("Intensity [erg/s/cm$^3$/ster]")
axs[1].set_ylabel("Normalized Intensity")
axs[0].legend(loc="lower left")
axs[1].legend(loc="lower left")
plt.subplots_adjust(hspace=0.05)
plt.show()

example_spectrum

Installation

Installation using pip

Install transformer-payne with huggingface-hub and joblib modules that allow you to easily download the model weights from the internet. Check that you are also having a matplotlib and numpy installed so you could run the example given above.

pip install transformer-payne
pip install huggingface-hub joblib numpy matplotlib

Developer installation from local repository

git clone https://github.com/RozanskiT/transformer_payne.git
cd transformer_payne
pip install -e .[dev]

Available Emulators

MARCS, Korg.jl and Kurucz's linelist - default intensity emulator

This document outlines an emulator built upon the slightly adopted Korg.jl package and MARCS stellar atmosphere grid. It simulates stellar spectra across a broad parameter space:

  • Effective Temperature (Teff): 4000 - 8000 K
  • Surface Gravity (logg): 2.0 - 5.0
  • Microturbulence (vmic): 0 - 5 km/s
  • Metallicity ([Fe/H]): -2.5 to 1.0
  • Alpha-element Enhancement ([alpha/Fe], ): -1.0 to 1.0
  • Carbon-to-Iron Ratio ([C/Fe]): -1.0 to 1.0
  • Elemental Abundances: Individual abundances can vary within a logarithmic range of ±0.3, from Helium to Uranium (with respect to given [Fe/H], [alpha/Fe] and [C/Fe])
  • Resolution: ~300000

The emulator employs the latest Kurucz line list (gfall08oct17), covering a wavelength range of 3000 - 11000 angstroms. For more information, visit the following links:

Work in progress...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transformer_payne-0.5.tar.gz (13.8 kB view hashes)

Uploaded Source

Built Distribution

transformer_payne-0.5-py3-none-any.whl (15.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page