disruption-py


Namedisruption-py JSON
Version 0.8.0 PyPI version JSON
download
home_pagehttps://disruptions.mit.edu/
SummaryScientific Data Framework for the MIT PSFC Disruption Studies Group
upload_time2024-10-04 13:20:32
maintainerGregorio L. Trevisan
docs_urlNone
authorCristina Rea
requires_python<4.0,>=3.10
licenseMIT
keywords plasma physics nuclear fusion tokamak disruptions
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# DisruptionPy

An interoperable Python package for plasma disruption analysis and prediction using ML. 

## Background

A key element of plasma control systems (PCS) in tokamak reactors is the prediction and avoidance of disruptions, sudden losses of the thermal and magnetic energy stored within the plasma that can occur when tokamaks operate near regions of plasma instability or because of system malfunctions.
The energy released during disruptions can cause severe damage to plasma-facing components, limiting experimental operation or even the device lifetime.
This poses a serious challenge to next-step fusion experiments such as SPARC, which will have to operate near some of the limits of plasma stability to achieve its intended performance and will do so at for long and frequent intervals.
Previous work has shown the promise of machine-learning (ML) algorithms for disruption prediction in both DIII-D and EAST -- the Experimental Advanced Superconducting Tokamak in China -- PCS.
This is also due to the fact that fusion science currently lacks first-principle, theoretical solutions to fully predict and avoid disruptions. 

DisruptionPy is an open-source python package for training, updating, and evaluating algorithms for disruption prediction and avoidance that can be applied to Alcator C-Mod and DIII-D data, and can deploy models in DIII-D and EAST (TBD) PCSs.

## Overview

DisruptionPy makes it easy to retrieve tabular data from MDSplus databases efficiently.
Users can create their own methods and/or use built-in methods that retrieve and derive a variety of important parameters from experimental data for disruption analysis.
These methods are run across all provided sets of discharges (or shot ids), outputting tabular data in customizable formats.

## Project layout

```python
disruption_py/ # source code
docs/ # documentation
examples/ # example workflows
scripts/ # miscellaneous scripts
tests/ # automated testing
```

The original Matlab scripts are now stored in the `matlab` [protected branch](https://github.com/MIT-PSFC/disruption-py/tree/matlab).

## Installation

DisruptionPy is now open-source and [available at PyPI](https://pypi.org/project/disruption-py/)!
For standard installations, please follow the usual way:

```bash
# if you use poetry:
poetry add disruption-py

# if you use pip:
pip install disruption-py
```

For custom installations, please refer to our [Installation guide](docs/INSTALL.md).

## Getting Started

Please see the project [quickstart](https://mit-psfc.github.io/disruption-py/quickstart/usage_quickstart/).

## Issues

If you have an issue please crate an issue on the GitHub repository

## Development

Please create a pull request if you have something to contribute!

            

Raw data

            {
    "_id": null,
    "home_page": "https://disruptions.mit.edu/",
    "name": "disruption-py",
    "maintainer": "Gregorio L. Trevisan",
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": "gtrevisan@psfc.mit.edu",
    "keywords": "plasma physics, nuclear fusion, tokamak, disruptions",
    "author": "Cristina Rea",
    "author_email": "crea@psfc.mit.edu",
    "download_url": "https://files.pythonhosted.org/packages/44/05/26c922a4adebdcb4c8484c529bef3eb5a46ddd47ac67748a3f6d0f12125f/disruption_py-0.8.0.tar.gz",
    "platform": null,
    "description": "\n# DisruptionPy\n\nAn interoperable Python package for plasma disruption analysis and prediction using ML. \n\n## Background\n\nA key element of plasma control systems (PCS) in tokamak reactors is the prediction and avoidance of disruptions, sudden losses of the thermal and magnetic energy stored within the plasma that can occur when tokamaks operate near regions of plasma instability or because of system malfunctions.\nThe energy released during disruptions can cause severe damage to plasma-facing components, limiting experimental operation or even the device lifetime.\nThis poses a serious challenge to next-step fusion experiments such as SPARC, which will have to operate near some of the limits of plasma stability to achieve its intended performance and will do so at for long and frequent intervals.\nPrevious work has shown the promise of machine-learning (ML) algorithms for disruption prediction in both DIII-D and EAST -- the Experimental Advanced Superconducting Tokamak in China -- PCS.\nThis is also due to the fact that fusion science currently lacks first-principle, theoretical solutions to fully predict and avoid disruptions. \n\nDisruptionPy is an open-source python package for training, updating, and evaluating algorithms for disruption prediction and avoidance that can be applied to Alcator C-Mod and DIII-D data, and can deploy models in DIII-D and EAST (TBD) PCSs.\n\n## Overview\n\nDisruptionPy makes it easy to retrieve tabular data from MDSplus databases efficiently.\nUsers can create their own methods and/or use built-in methods that retrieve and derive a variety of important parameters from experimental data for disruption analysis.\nThese methods are run across all provided sets of discharges (or shot ids), outputting tabular data in customizable formats.\n\n## Project layout\n\n```python\ndisruption_py/ # source code\ndocs/ # documentation\nexamples/ # example workflows\nscripts/ # miscellaneous scripts\ntests/ # automated testing\n```\n\nThe original Matlab scripts are now stored in the `matlab` [protected branch](https://github.com/MIT-PSFC/disruption-py/tree/matlab).\n\n## Installation\n\nDisruptionPy is now open-source and [available at PyPI](https://pypi.org/project/disruption-py/)!\nFor standard installations, please follow the usual way:\n\n```bash\n# if you use poetry:\npoetry add disruption-py\n\n# if you use pip:\npip install disruption-py\n```\n\nFor custom installations, please refer to our [Installation guide](docs/INSTALL.md).\n\n## Getting Started\n\nPlease see the project [quickstart](https://mit-psfc.github.io/disruption-py/quickstart/usage_quickstart/).\n\n## Issues\n\nIf you have an issue please crate an issue on the GitHub repository\n\n## Development\n\nPlease create a pull request if you have something to contribute!\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Scientific Data Framework for the MIT PSFC Disruption Studies Group",
    "version": "0.8.0",
    "project_urls": {
        "Documentation": "https://mit-psfc.github.io/disruption-py/",
        "Homepage": "https://disruptions.mit.edu/",
        "Repository": "https://github.com/MIT-PSFC/disruption-py/"
    },
    "split_keywords": [
        "plasma physics",
        " nuclear fusion",
        " tokamak",
        " disruptions"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8106f0fef2cc87910b8ce510a5c0aa8966572b3d4efef104411b8a9020fdeddd",
                "md5": "7d00f0d0d9fbc9b1970dbab9a9a838db",
                "sha256": "ccc7821a5172569b1cb122f34a048e211c62e932204546f62341fd4b7075da69"
            },
            "downloads": -1,
            "filename": "disruption_py-0.8.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7d00f0d0d9fbc9b1970dbab9a9a838db",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 105823,
            "upload_time": "2024-10-04T13:20:30",
            "upload_time_iso_8601": "2024-10-04T13:20:30.796612Z",
            "url": "https://files.pythonhosted.org/packages/81/06/f0fef2cc87910b8ce510a5c0aa8966572b3d4efef104411b8a9020fdeddd/disruption_py-0.8.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "440526c922a4adebdcb4c8484c529bef3eb5a46ddd47ac67748a3f6d0f12125f",
                "md5": "5e734c8884aef9602249dddef16a1aed",
                "sha256": "e5e79f056ee3b049a1ab8e23f4dfe3f58ca4f4bcd81c6b80c8152eb2a8ee3a7d"
            },
            "downloads": -1,
            "filename": "disruption_py-0.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5e734c8884aef9602249dddef16a1aed",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 89817,
            "upload_time": "2024-10-04T13:20:32",
            "upload_time_iso_8601": "2024-10-04T13:20:32.971602Z",
            "url": "https://files.pythonhosted.org/packages/44/05/26c922a4adebdcb4c8484c529bef3eb5a46ddd47ac67748a3f6d0f12125f/disruption_py-0.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-04 13:20:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MIT-PSFC",
    "github_project": "disruption-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "disruption-py"
}
        
Elapsed time: 4.91854s