SciBeam

scibeam logo

Build Status codecov Documentation Status PyPI version

SciBeam is a python package build on top of pandas, numpy, sicpy and matplotlib. It is aimed for quick and easy scientific time-series data analysis and visualization in physics, optics, mechanics, and many other STEM subjects.

In the context of scientific data analysis, there are a lot of situations that people have to deal with time-series data, such as time dependent experiment(e.g. temperature measurement), dynamic processes(e.g. beam propagation, chemical reaction), system long/short term behavior(e.g. noise), etc. Quite often is that data taking and result analysis is gaped by some time and effort, which could result in complains or regrets during the data analysis, like “I wish I took another measurement of … so than I could explain why …”. As such, the general guidline of scibeam is to bridge the gap between measurement and data analysis, so that time-series related experiment can be done in a more guided way.

The basic features of scibeam include but not limited to: beam propagation, single or multi-dimentional time depedent measurement, data file auto indexing, noise reduction, peak analysis, numerical fittings, etc.

Note

scibeam doesn’t support python 2.7, make sure you have the right python version (>=3.4).

About

This document

This document is created uisng Sphinx and autodoc. The general rule of the static html is configured in reStructuredText and api document is generated by Sphinx-apidoc, configure in conf.py.

The general html structure looks like below:

html/
├── about.html
├── conf.html
├── genindex.html
├── index.html
├── install.html
├── _modules
│   ├── index.html
│   └── scibeam
│       ├── core
│       │   ├── base.html
│       │   ├── common.html
│       │   ├── descriptor.html
│       │   ├── formatter.html
│       │   ├── gaussian.html
│       │   ├── numerical.html
│       │   ├── peak.html
│       │   ├── plot.html
│       │   ├── regexp.html
│       │   ├── tofframe.html
│       │   └── tofseries.html
│       └── tests
│           ├── test_base.html
│           ├── test_common.html
│           ├── test_formatter.html
│           ├── test_imports.html
│           ├── test_regexp.html
│           └── test_tofseries.html
├── modules.html
├── objects.inv
├── py-modindex.html
├── scibeam.core.html
├── scibeam.html
├── scibeam.tests.html
├── search.html
├── searchindex.js
├── setup.html
├── _sources
│   ├── about.rst.txt
│   ├── conf.rst.txt
│   ├── index.rst.txt
│   ├── install.rst.txt
│   ├── modules.rst.txt
│   ├── scibeam.core.rst.txt
│   ├── scibeam.rst.txt
│   ├── scibeam.tests.rst.txt
│   ├── setup.rst.txt
│   ├── structure.rst.txt
│   └── tutorial.rst.txt
├── _static
│   ├── ajax-loader.gif
│   ├── alabaster.css
│   ├── basic.css
│   ├── comment-bright.png
│   ├── comment-close.png
│   ├── comment.png
│   ├── css
│   │   ├── badge_only.css
│   │   └── theme.css
│   ├── custom.css
│   ├── doctools.js
│   ├── documentation_options.js
│   ├── down.png
│   ├── down-pressed.png
│   ├── file.png
│   ├── fonts
│   │   ├── fontawesome-webfont.eot
│   │   ├── fontawesome-webfont.svg
│   │   ├── fontawesome-webfont.ttf
│   │   ├── fontawesome-webfont.woff
│   │   ├── fontawesome-webfont.woff2
│   │   ├── Lato
│   │   │   ├── lato-bold.eot
│   │   │   ├── lato-bolditalic.eot
│   │   │   ├── lato-bolditalic.ttf
│   │   │   ├── lato-bolditalic.woff
│   │   │   ├── lato-bolditalic.woff2
│   │   │   ├── lato-bold.ttf
│   │   │   ├── lato-bold.woff
│   │   │   ├── lato-bold.woff2
│   │   │   ├── lato-italic.eot
│   │   │   ├── lato-italic.ttf
│   │   │   ├── lato-italic.woff
│   │   │   ├── lato-italic.woff2
│   │   │   ├── lato-regular.eot
│   │   │   ├── lato-regular.ttf
│   │   │   ├── lato-regular.woff
│   │   │   └── lato-regular.woff2
│   │   └── RobotoSlab
│   │       ├── roboto-slab-v7-bold.eot
│   │       ├── roboto-slab-v7-bold.ttf
│   │       ├── roboto-slab-v7-bold.woff
│   │       ├── roboto-slab-v7-bold.woff2
│   │       ├── roboto-slab-v7-regular.eot
│   │       ├── roboto-slab-v7-regular.ttf
│   │       ├── roboto-slab-v7-regular.woff
│   │       └── roboto-slab-v7-regular.woff2
│   ├── jquery-3.2.1.js
│   ├── jquery.js
│   ├── js
│   │   ├── modernizr.min.js
│   │   └── theme.js
│   ├── minus.png
│   ├── plus.png
│   ├── pygments.css
│   ├── searchtools.js
│   ├── underscore-1.3.1.js
│   ├── underscore.js
│   ├── up.png
│   ├── up-pressed.png
│   └── websupport.js
├── structure.html
└── tutorial.html

11 directories, 101 files

reStructuredText Sturcture

The reStructuredText files are the source that these htmls are build on top of. Most of the text related .rst fils are wrote in the corresponding mark up formart, other module related .rst are build using autodoc, which automatically looks in to the doc strings in python source files.

In this project, the document style in the pyhon source files are following numpy style, which is rendered by Spnhinx externsion napoleon.

The structure of .rst folder structure:

├── about.rst
├── conf.py
├── index.rst
├── install.rst
├── modules.rst
├── scibeam.core.rst
├── scibeam.rst
├── scibeam.tests.rst
├── _static
├── structure.rst
└── _templates

2 directories, 11 files

Package structure

The package structure of scibeam is

scibeam
├── core
│   ├── base.py
│   ├── common.py
│   ├── descriptor.py
│   ├── dictfunc.py
│   ├── formatter.py
│   ├── gaussian.py
│   ├── __init__.py
│   ├── numerical.py
│   ├── peak.py
│   ├── plot.py
│   ├── regexp.py
│   ├── tofframe.py
│   └── tofseries.py
├── data
│   ├── examples
│   └── test
├── __init__.py
├── tests
│   ├── __init__.py
│   ├── __pycache__
│   ├── test_base.py
│   ├── test_common.py
│   ├── test_formatter.py
│   ├── test_imports.py
│   ├── test_regexp.py
│   └── test_tofseries.py
└── util
    ├── folderstruct.py
    ├── __init__.py
    ├── io.py
    ├── multiframe.py
    └── pipeline.py

10 directories, 34 files

Where:

  • core: main part of the pacaage
  • tests: unittests
  • util: extral add ons for the package
  • data: test data and example data files

Install

Install scibeam is easy, one can choose either install using pypi or from source code using python setuptools.

Requirements

The scibeam package requires:

  • Python(>= 3.4)
  • Numpy
  • Scipy
  • Pandas
  • matplotlib

Note

scibeam doesn’t support python 2.7, make sure you have the right python version (>=3.4).

Using PyPI

Scibeam is avaliable on PyPI, one can install under python3 environment using:

pip install scibeam

Scibeam can then be imported as:

import scibeam

Using Setuptools

To install using python setuptools, simply clone the source code:

git clone git@github.com:SuperYuLu/SciBeam.git

Then change into the SciBeam folder:

cd SciBeam

Under SciBeam folder, install by typing:

python setup.py install

scibeam package name should be then available in the python environment, to import:

import scibeam

or:

from scibeam import *

How to use

How to use

scibeam.core package

Submodules

scibeam.core.base module

scibeam.core.common module

scibeam.core.descriptor module

scibeam.core.dictfunc module

scibeam.core.formatter module

scibeam.core.gaussian module

scibeam.core.numerical module

scibeam.core.peak module

scibeam.core.plot module

scibeam.core.regexp module

scibeam.core.tofframe module

scibeam.core.tofseries module

Module contents

Contribute

As a open source project, scibeam is under active development towards version 1.0, thus we need contributors from the conmunity.

Steps

Help needed

  • Write unittest for better coverage
  • Finish document “how to use” part
  • Add slack channel badge to Readme
  • Add more file read in format support
  • Add plotly extension for better visualization
  • Many more

scibeam.tests package

Submodules

scibeam.tests.test_base module

scibeam.tests.test_common module

scibeam.tests.test_formatter module

scibeam.tests.test_imports module

scibeam.tests.test_regexp module

scibeam.tests.test_tofseries module

Module contents

Indices and tables