SciBeam¶

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¶
- Read the documents
- Join the slack channel(https://scibeam.slack.com)
- Report issure / bug on Github
- Look for open issues
- Create new pull request
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