scipp - Multi-dimensional data arrays with labeled dimensions¶
A Python library enabling a modern and intuitive way of working with scientific data in Jupyter notebooksscipp is heavily inspired by xarray. It enriches raw NumPy-like multi-dimensional arrays of data by adding named dimensions and associated coordinates. Multiple arrays can be combined into datasets. While for many applications xarray is certainly more suitable (and definitely much more matured) than scipp, there is a number of features missing in other situations. If your use case requires one or several of the items on the following list, using scipp may be worth considering:
Physical units are stored with each data or coord array and are handled in arithmetic operations.
Propagation of uncertainties.
Support for histograms, i.e., bin-edge axes, which are by 1 longer than the data extent.
Support for scattered data and non-destructive binning. This includes first and foremost event data, a particular form of sparse data with arrays of random-length lists, with very small list entries.
Support for masks stored with data.
Internals written in C++ for better performance (for certain applications), in combination with Python bindings.
Generic functionality of scipp is provided in the scipp Python package. In addition, more specific functionality is made available in other packages. Examples for this are scippneutron for handling data from neutron-scattering experiments, and ess for dealing with the specifics of neutron instruments at ESS.
News¶
[November 2021] scipp-0.9.0 has been released. Check out the What’s new notebook for an overview of recent highlights and major changes.
Scipp changed from GPLv3 to the more permissive BSD-3 license which fits better into the Python eco system.
Looking for
scipp.neutron
? This submodule has been moved into its own package, scippneutron.[June 2021] scipp-0.7 has been released. The What’s new 0.7 notebook provides an overview of the highlights and major changes.
[March 2021] scipp-0.6 has been released. The What’s new 0.6 notebook provides an overview of the highlights and major changes.
[January 2021] scipp-0.5 has been released. The What’s new 0.5 notebook provides an overview of the highlights and major changes.
Documentation¶
- Data Structures
- Slicing
- Computation
- Masking
- Binned Data
- GroupBy
- Coordinate transformations
- Reading and Writing Files
- How to…
- Tips, tricks, and anti-patterns
- Classes
- Creation functions
- Free functions
- Modules
- Linear Algebra
- Data types
- Physical units
- Propagation of uncertainties
- Ownership mechanism and readonly flags
- Logging
- Runtime Configuration
- Developer Documentation
- Getting Started
- API Reference
- Architecture Decision Records
- ADR 0001: Remove dataset masking support
- ADR 0002: Remove instrument view 2D projection options
- ADR 0003: Refactor plotting code to use Model-View-Controller design pattern
- ADR 0004: Use the ipympl backend for Matplotlib figures in Jupyter
- ADR 0005: Remove need for
bins
property when callingbin
orhistogram
- ADR 0006: Add read-only flags
- ADR 0007: Do not support arguments referring to
x
ory
- ADR 0008: Consistent multi-dimensional coords
- ADR 0009: Handle dimensionless as non-counts
- ADR 0010: Acknowledge stability and maintainability tasks
- Coding conventions
- Concepts
- C++ API for constructing variables
- Customizing Scipp
- Dependencies
- Deployment
- How To…
- Multi-Dimensional Indexing
- Tooling
- Transforming data
- Implementation of class Variable
- About scipp
- What’s new in scipp
- Roadmap
- Contributing to scipp
- Release Notes
- v0.10.0 (unreleased)
- v0.9.0 (November 2021)
- v0.8.3 (September 2021)
- v0.8.0 (September 2021)
- v0.7.2 (September 2021)
- v0.7.0 (June 2021)
- v0.6.1 (April 2021)
- v0.6.0 (March 2021)
- v0.5.0 (January 2021)
- v0.4 (July 2020)
- v0.3 (March 2020)
- v0.2 (December 2019)
- v0.1 (September 2019)
- Contributing Organizations