Skip to content

☢️📊 Progressive Web App MCA for gamma spectroscopy including file and live plot support via a serial interface.

License

Notifications You must be signed in to change notification settings

evandde/Gamma-MCA

 
 

Repository files navigation

Gamma MCA

GitHub code size in bytes GitHub Website GitHub deployments

Progressive web application for gamma spectroscopy including file and live plot support via the serial interface.

example spectrum

Built using Bootstrap, Plotly.js and Font Awesome.

Feature Overview

  • No installation required - accessible on every internet-connected device
  • Can be easily installed for stand-alone offline use
  • Straightforward interface to get down to business
  • File import of common data formats (e.g. CSV, TKA)
  • Live plotting via the serial interface, compatible with any serial device (e.g. Arduino)
  • Linear and quadratic energy calibration
  • Customizable list of common isotopes and their gamma-ray energies
  • Export interactive graphs of your spectrum to embed it into your website
  • Automatic peak detection (energy and isotope)
  • ... and much more!

Importing Spectra

There are essentially two types of files you can use - both being text files, e.g. CSVs:

  1. Dumped serial streams with a random new event (energy) on each line. This includes streams from our Open Gamma Detector or any other serial device. Important: If your file is CSV-formatted only the first element will be read. The delimiter can be changed in the settings.
  2. Ready-to-use histograms. This includes common file types like TKAs, CSVs and also RadiaCode exports. Important: If your file has more than one element per line, the first one will be regarded as channel index/energy and the second as the number of counts. If there's one element only, it will be regarded as the number of counts instead.

Using Serial

Thanks to the Web Serial API you can use any serial device capable of doing gamma spectroscopy to plot your data. The are only two requirements for this to work:

  1. The API is currently only supported by Chromium-based (desktop) browsers. This includes most browsers except Safari and Firefox. The feature is either enabled on default or you have to enable it in the settings. See Can I Use?
  2. Your device has to print an EOL character (a semicolon ;) after every single event to signalize the end of a data entry. Whitespace or newlines do not matter.

Contributing

The PWA is written with TypeScript. The files can be found in assets/js/, please only modify the .ts files -- all .js files are auto-generated.


Notice: The LICENSE does not apply to the name "Gamma MCA" and especially the Gamma MCA logo. These are Copyright 2021 by me, Phoenix1747.

About

☢️📊 Progressive Web App MCA for gamma spectroscopy including file and live plot support via a serial interface.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 38.2%
  • JavaScript 36.4%
  • HTML 25.1%
  • CSS 0.3%