Skip to main content

RADAS: radiated power curves from OpenADAS

This Python library downloads atomic data from OpenADAS, performs simple calculations and stores the result as a NetCDF file for use in other programs.

Installing via PyPi (quick start)

radas is on PyPi. You should be able to install it using

pip install radas

Once you've installed radas into your environment, you should be able to run

radas --help

to get an overview of the CLI options. Every option has a sensible default, so you can just run radas at the command line and it will generate a processed NetCDF for every species that has data_files defined in config.yaml. This can take some time (especially for high-Z impurities such as tungsten). If you'd just like to run a few species, you can specify these on the command line like

radas -s hydrogen -s helium -s lithium

If you want to change the years of the databases downloaded, you will need to change the config.yaml file. To get a copy of this, run radas_config to get a copy of the config.yaml file in your current working directory. You can edit this file (see the configuration section below) and then use it by passing it as the -c or --config argument to radas (i.e. radas -s hydrogen -c ./config.yaml).

Development installation

If you want to develop radas, excellent! For contributing to radas, we ask that you

  1. use Issues to ask questions, request features and discuss planned improvements,
  2. use Pull Requests to merge code into main (mark work-in-progress with draft in the title),
  3. write pytest tests for new functionality (ideally aiming to cover all new lines of code).

Installation

The project is installed using poetry. If you haven't already installed poetry, the installation instructions can be found here.

Once you have poetry installed, you can install radas by running

poetry install

Because we've added in-project = true in poetry.toml, the project will install in the .venv in the repository directory.

Usage

Once you have installed radas, you should be able to run the following snippet

poetry run radas --species=hydrogen

where --species can be

  • a specific species such as hydrogen or tungsten
  • all which runs all species which have available data
  • none which only regenerates the output plots from existing NetCDF files

If anything goes wrong, the script will drop into an ipdb interpreter so you can debug any issues.

What's going on under the hood?

The above snippet executes run_radas_cli in radas/cli.py, which performs the following steps

  1. Connect to OpenADAS
  2. Download the datasets listed in radas/config.yaml under species:hydrogen:data_files (where the values are the years to download) and store them in radas/.data_files.
  3. Process the downloaded data files and store them in xarray Dataset (in read_rate_coeffs.py).
  4. Calculate the fractional abundance of each charge state according to the coronal approximation (in coronal_equilibrium.py).
  5. Calculate the coronal mean charge ($\langle Z \rangle$) and radiated power coefficient ($L_z$) as a function of the plasma temperature and density (in cli.py for the mean charge and in radiated_power.py for the radiated power).
  6. Time-integrate equations for the abundance of each charge state to give the fractional abundance as a function of time $n_z(t)$ for different refuelling rates (characterized by $n_e \tau$ where $\tau$ is a particle residence time, in time_evolution.py).
  7. Calculate the equilibrium ($t \to \infty$) mean charge ($\langle Z \rangle$) and radiated power coefficient ($L_z$) as a function of the plasma temperature and density (reusing the same functions as for the coronal values).
  8. Store all of the results in a NetCDF in the output folder and make a figure comparing the computed curves to data from Mavrin, J. Fus. Eng., 2017 (where available).

Configuration

radas is configured using the config.yaml file provided in the radas source repository. You can edit this file directly, or can point the CLI to another configuration YAML file using the --config argument. Regardless of which approach you choose, the config.yaml file must have the following structure

globals:
  evolution_start:
    value: <Time to start time-evolution>
    units: "s"

  evolution_stop:
    value: <Time to stop time-evolution>
    units: "s"

  ne_tau:
    value: <Values of ne * tau to generate output for>
    units: "m^-3 s"

data_file_config:
  adf11: #or other reader class, but usually we want ADF11
    <what to call the dataset in the output>:
      prefix: <letters used to identify the dataset>
      code: <code used to identify the dataset for the ADAS reader>
      stored_units: "cm**3 / s"
      desired_units: "m**3 / s"

species:
  <species name>:
    atomic_symbol: <symbol>
    atomic_number: <atomic number>
    data_files:
      <dataset matching "what to call the dataset in the output" above>: <year to download>

Testing

To make sure everything is working, run

poetry run pytest

to execute all of the tests in the tests folder.

Pushing to PyPi

We have transitioned from a date-based versioning scheme (YYYY.MM.patch) to Semantic Versioning with an Epoch.

To update the version of radas at pypi.org/project/radas/, you should edit pyproject.toml and set version="1!major.minor.patch". You must include the 1! prefix (the epoch) so that any version takes precedence over the previous date-based versions. Use major versions to indicate breaking changes, such as changing the name of the CLI functions. Use minor versions to indicate non-breaking changes, such as adding new optional functionality. Use patches to make minor fixes.

Once you've merged a new version into main, make a new release on Github and tag it using the form v1!X.Y.Z. Github Actions will automatically push this to PyPI.

Metadata

Release files for radas 1!1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for radas 1!1.0.1
File Size Uploaded
radas-1!1.0.1.tar.gz 26.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for radas 1!1.0.1
File Interpreter ABI Platform
radas-1!1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 55.7 kB

Release files / radas-1!1.0.1.tar.gz

Download URL radas-1!1.0.1.tar.gz
Size 26.4 kB
Tags Source
SHA-256 checksum
How to use checksums
aae323959736d69f8c0276e2ac860fba2d8435f73bc04632cb12ee0cbb54813e
BLAKE2b-256 checksum
How to use checksums
7c5ca70a3f7177929d4af91d4a8e8197583fc392f11fa2b22b70097cdf47a7d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 27, 2026.

Transparency log

Release files / radas-1!1.0.1-py3-none-any.whl

Download URL radas-1!1.0.1-py3-none-any.whl
Size 29.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6db8cbda4bf58ee6ec309d6aee931943ec423e3e2664ca6b55311ebbac24e85
BLAKE2b-256 checksum
How to use checksums
086352dd1435d9cd8129e841138c44f9c9effc4dbd4bbad81685561615855804
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 27, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page