Skip to main content

Add your description here

Project description

TokEye Logo

TokEye

Python package

TokEye is a open-source Python-based application for automatic classification and localization of fluctuating signals. It is designed to be used in the context of plasma physics, but can be used for any type of fluctuating signal.

Check out this poster from APS DPP 2025 for more information.

Example Demonstration

Example Demonstration

Expected processing time:

  • A100: < 0.5 seconds on any size spectrogram after warmup.
  • CPU: not yet tested.

Verified Datatypes

  • DIII-D Fast Magnetics (cite)
  • DIII-D CO2 Interferometer (cite)
  • DIII-D Electron Cyclotron Emission (cite)
  • DIII-D Beam Emission Spectroscopy (cite)

Evaluation

Recall Scores:

  • TJII2021: 0.8254
  • DCLDE2011 (Delphinus capensis): 0.7708
  • DCLDE2011 (Delphinus delphis): 0.7953

With more data, comes better models. Please contribute to the project!

Installation

uv (recommended)

git clone git@github.com:PlasmaControl/TokEye.git
cd TokEye
uv sync

pip (from source)

git clone git@github.com:PlasmaControl/TokEye.git
cd TokEye
python3 -m venv .venv
source venv/bin/activate
pip install uv
uv sync

pip (from PyPI)

pip install tokeye

Coming soon.

Containerized installation (Docker) Coming soon.

Usage

python -m TokEye.app

This will start a web app on http://localhost:8888.

If you are on a remote server, you can use SSH port forwarding to access the web app on your local machine:

ssh -L 8888:localhost:7860 user@remote_server

Then open your web browser and navigate to http://localhost:8888.

Models

Pre-trained models are available at this link. Copy them into the models/ directory after downloading them.

  • big_mode_v1.pt: Original training regime (window = 1024, hop = 128)
  • big_mode_v2.pt: Trained on multiscale (multiwindow, multihop) spectrograms

Input should be a tensor that has shape (B, 1, H, W) where B, H, and W can vary Output will be a tensor of shape (B, 2, H, W)

Best performance when spectrograms are oriented so that when they are plotted with matplotlib, the lowest frequency bin is oriented with the bottom when origin='lower'. Spectrograms should be standardized (mean = 0, std = 1). If baseline activity is very strong, clipping the input may help, but is generally not needed.

The first channel of the output will return preferential measurements of coherent activity (useful for most tasks) THe second channel of the output will return preferential measurements of transient activity

Data

Right now, keep all data as 1d numpy float arrays. No need to normalize or preprocess them. Copy them into the data/ directory.

Citation

If you use this code in your research, please cite:

@article{NaN,
  title={Paper not yet published},
  author={Nathaniel Chen},
  year={2025}
}

Contact

Please check back for updates or reach out to Nathaniel Chen at nathaniel@princeton.edu.

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

tokeye-0.9.0.tar.gz (111.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tokeye-0.9.0-py3-none-any.whl (150.2 kB view details)

Uploaded Python 3

File details

Details for the file tokeye-0.9.0.tar.gz.

File metadata

  • Download URL: tokeye-0.9.0.tar.gz
  • Upload date:
  • Size: 111.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tokeye-0.9.0.tar.gz
Algorithm Hash digest
SHA256 d4ab85243883d23bf8d2833ff446082d614645c86af498acfb5a927f025ceb74
MD5 230ea8b000fef1a184c41fd7a853a992
BLAKE2b-256 ccd1baa0a993ad22f6191fd2b73c5728a0e923c59dd62b56a903420157590e73

See more details on using hashes here.

Provenance

The following attestation bundles were made for tokeye-0.9.0.tar.gz:

Publisher: python-publish.yml on PlasmaControl/tokeye

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tokeye-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: tokeye-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 150.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tokeye-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a350f9a5b0e173f921867e335798d3c37a31aef8374e2ddbafcf756d1af48806
MD5 ffb6522df759dd20a0cfaa7847b3c725
BLAKE2b-256 a3174bad6440a4ee551921de37236498e8585e7e13886b92094c4f19e8c6e4b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tokeye-0.9.0-py3-none-any.whl:

Publisher: python-publish.yml on PlasmaControl/tokeye

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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