Synthesizing and fitting coherent anti-Stokes Raman spectra (CARS) in Python
Project description
CARSpy
Synthesizing and fitting coherent anti-Stokes Raman spectra in Python.
Free software: BSD-3-Clause license
Documentation: https://carspy.readthedocs.io
Background
Having no access to the source codes of any of the existing CARS programs, I started this project simply as a way to learn more about CARS. I ended up spending a lot of time sifting through literatures from the past decades, trying to figure out what were done to analyze experimental CARS spectra and how they were implemented. The latter proved rather challenging as specific implementations weren’t always laid out in sufficient (mathematical) details to facilitate comprehension and replication (e.g., things as trivial as units for different constants weren’t always made clear in some publications).
In an effort to put together a fully-functioning CARS fitting program, I thought it would perhaps benefit other CARS practitioners (especially the newcomers) if I open source my implementations. I hope to also benefit from this transparency and openness to public scrutiny. Although the “draft” code (not available in this public repo) already lives up to my original purpose (least-square fit of experimental broadband CARS spectra), it is most likely not error-free and has a lot of room left for improvement. Therefore, I plan to rewrite the important modules (spectrum synthesis and least-square fit) and slowly bring all features (see below) up to date. I am also looking forward to feedbacks and potential collaborators from the community.
Features
CARSpy (stands for Coherent Anti-Stokes Raman Spectroscopy):
The CARS model:
Highlights
Option to incorporate equilibrium composition using an external chemical equilibrium calculator (such as cantera), such that temperature is the only fitting parameter for thermometry
Vibrational and rotational nonequilibrium: vibrational temperature can be varied independently from rotational temperature
Comparisons with CARSFT
Roadmap
The above features currently present in the draft code will be gradually improved and included in the main branch. Here is a tentative plan:
(Implemented) Module for synthesizing CARS spectra (optional with cantera)
(Short-term) Module for least-square fit (with lmfit)
(Mid-term) Multiprocessing
(Mid-term) Docs
(Mid-term) Tutorials
(Long-term) Other common diatomic species
(Long-term) Dualpump/Wide CARS
Citation
Please consider citing this repository if you use carspy for your publications as:
@misc{Yin2021,
author = {Yin, Zhiyao},
title = {CARSpy: Synthesizing and fitting coherent anti-Stokes Raman spectra in Python},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/chuckedfromspace/carspy}}
}
History
0.2.1 (2021-02-14)
Change Sphinx theme
Add existing modules to docs
Fix format errors in docstrings
0.2.0 (2021-02-13)
Implement modules for synthesizing N2 CARS spectra.
0.1.0 (2021-02-13)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file carspy-0.2.1.tar.gz
.
File metadata
- Download URL: carspy-0.2.1.tar.gz
- Upload date:
- Size: 34.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cd6d2e69485a3c8cd62c53b79f8085f80b75810f3c26f3825a0b40ac47f4bf5 |
|
MD5 | fc21f431cd41c8696a2d842b9897b0f4 |
|
BLAKE2b-256 | df0774940abf246c8624139c5101c1f47e12e3ac147b8e106d7a6cb359d8487e |
File details
Details for the file carspy-0.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: carspy-0.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a55e252e64c77651199590d0e62c4422be516232b1018e1b3660a04021c5e44 |
|
MD5 | cffd0a9fbf1b7641dc44c301c0f377e0 |
|
BLAKE2b-256 | 0acd330a3648ff0bd431a7f97300895f5cbf6026edda49b8432330a305472e22 |