# Announcing Spectral Workbench 2

by warren |

A couple weeks ago, we soft-launched Spectral Workbench 2, and today we've turned on these interfaces as the default for all users. This version has been in development for many months, and we've integrated much of the feedback you've provided starting exactly one year ago.

This release includes many exciting new features and upgrades, including:

## What does this mean for you?

Most of the changes are in the Analysis interface; new ways to calibrate, to extract data from images, to manipulate, subtract, and compare spectra. Our hope is that many basic tasks will be easier, more intuitive, more flexible, and more powerful. Many new tasks are now possible as well, including wavelength range limiting, (reversible) smoothing, and as mentioned, subtraction of spectra from other spectra. These tools are built in a new, standardized user interface which is extensible -- we plan to continue adding new features as we go, building on this foundation.

So a few notes on the biggest new features -- ones which will fundamentally change how you interact with data on Spectral Workbench:

## What are Snapshots?

Snapshots freeze a specific state of your spectrum so that the data as it exists at that moment can be used in other contexts, for example by other users. It's like version control for your data -- if you use a spectrum by reference, such as to calibrate, or in a comparison, you can expect that you'll see the snapshot of that spectrum just as it was when you made that reference (see References vs. Snapshots below). No later changes to the spectrum will affect referring work. Snapshots appear as a "thumbtack" icon in the Operations table, which we'll get to in a moment.

This is a complex feature, so we've created a thorough overview of Snapshots to help you work with them.

## What are Operations?

A major change in Spectral Workbench 2 is a system called Operations (previously known as PowerTags). When you save a spectrum, you usually have to perform additional operations, sometimes setting a cross section, certainly calibrating, and sometimes then smoothing or otherwise manipulating the data. But for various reasons, you often want to record and even revert some of those changes. Maybe you want to do them differently, or to recalibrate.

Operations are the new way to do this. Each time you apply an operation, the resulting dataset is saved in a snapshot, so that a copy is archived and available in the database without having to run each calculation every time. operations typically feature a key:value pair. Creating operations is easy; the Tools pane below each spectrum guides you through creating them with a simple form, and adds your operation when you click Apply. Some operations reference other spectra, for comparison or subtraction. You'll be presented with a menu and search form to find the right spectrum to use.

## Videos

In general, I've spent a lot of time rewriting and revising the documentation for all of Spectral Workbench, and new tutorial videos are being posted:

See tutorial videos

## Troubleshooting

As with any new, complex system, we expect some hiccups as this rolls out. We've massively expanded the test suite for both server-side and client-side code, which has already done much to improve reliability and catch problems before they're published.

## Where's the code?

Do you code? The latest version of Spectral Workbench can always be found on Github at https://github.com/publiclab/spectral-workbench/

If you're interested in contributing, please check out our Developers page and our guide to contributing to Public Lab software. We need your help!

Anyhow, thanks to everyone who's helped to make this release possible; especially to @liz, @stevie, @stoft, @ygstcu, @cfastie, @justinmanley, @icarito, and the many others who dreamed up features, designed and tested them, found and solved problems, and generally helped to make Public Lab software excellent. And thanks to everyone who was patient and supportive of me and the rest of the SWB team for the past months!