porchlight

Spectral preprocessing software

https://github.com/jakub-konkol/porchlight

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: acs.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Spectral preprocessing software

Basic Info
  • Host: GitHub
  • Owner: Jakub-Konkol
  • License: other
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 1.35 MB
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 1
  • Open Issues: 1
  • Releases: 0
Created over 3 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

Porchlight

Porchlight is a preprocessing aid for spectroscopists and for students to learn preprocessing.

Porchlight Logo

This program was published as part of the article Porchlight: An Accessible and Interactive Aid in Preprocessing of Spectral Data.

Features

Porchlight allows you to open a variety of spectral files and immediately visualize the preprocessing you perform on your spectra. This way, you can get a better intuition for the impact various preprocessing methods have. The software is also designed for the classroom as well, with important features to support learning such as dynamic plot axis labelling.

GUI in use

Installation

To install the most up-to-date version from GitHub, you can use the following:

pip install git+https://github.com/Jakub-Konkol/Porchlight.git

Use

This section describes the use of Porchlight, either through the GUI or as a class you can use in your scripts.

GUI

To invoke the GUI, call the following from the terminal

python -m porchlight

Within scripts

The data handling backend code be called in scripts using

python from porchlight.spectralData import SpectralData

From here, one can instantiate the class by providing a list of file directories containing spectral data, either in CSV, TXT, or Thermo-Gram SPC (if optional spc-spectra is installed).

python data = SpectralData(['myFile.csv'])

All preprocessing techniques are methods of this class, which are performed in-place. To perform SNV, one can use

python data.reset() data.SNV()

We recommend performing a reset at the start, to make sure you don't accidentally process processed data.

Class Variables

wav - numpy array containing the abscissa axis

war - pandas DataFrame containing labels for each spectrum (not currently used)

tf_history - a list that describes the preprocessing steps performed to the spectra. Each list element is a list where the first element is the preprocessing step and the second element is a dictionary with the values given for the method.

file_source - a list of directories that describe the source file for each spectrum. If one file provides multiple spectra, then it is repeated multiple times.

spc - a pandas DataFrame containing the spectral data in a tidy format. Each row is one spectrum, each column is a corresponding abscissa value. The column names are equivalent to the variable wav.

_baselines - a pandas DataFrame with calculated baselines, if one was calculated.

Acknowledgements

This material is based upon work supported in part by Rutgers, The State University of New Jersey, and the National Science Foundation Award 1751683.

This software has been developed by Jakub Konkol of the Dr. Tsilomelekis group at Rutgers, the State University of New Jersey. Come see our research!

:copyright: 2021-2025 Rutgers, the State University of New Jersey

Owner

  • Name: Jakub Konkol
  • Login: Jakub-Konkol
  • Kind: user
  • Company: Rutgers, the State University of New Jersey

PhD student at Rutgers, the State University of New Jersey with focus in applying advanced spectroscopic techniques to chemical engineering problems. LaTeX, 🐍

Citation (CITATION.CFF)

cff-version: 1.2.0
message: "If you used Porchlight in your research or classes, please cite it as below."
authors:
- family-names: "Konkol"
  given-names: "Jakub"
  orcid: "https://orcid.org/0000-0002-6488-2167"
- family-names: "Tsilomelekis"
  given-names: "George"
  orcid: "https://orcid.org/0000-0002-0435-8216"
title: "Porchlight: An Accessible and Interactive Aid in Preprocessing of Spectral Data"
version: 1.1.0
identifiers:
- type: doi
  value: 10.1021/acs.jchemed.2c00812
date-released: 2023-02-14
url: "https://github.com/Jakub-Konkol/Porchlight"

GitHub Events

Total
  • Watch event: 3
  • Push event: 9
  • Fork event: 1
Last Year
  • Watch event: 3
  • Push event: 9
  • Fork event: 1

Dependencies

pyproject.toml pypi
  • matplotlib *
  • numpy *
  • pandas *
  • scipy *
  • tk *
requirements.txt pypi
  • matplotlib *
  • numpy *
  • pandas *
  • scipy *
  • spc_spectra *
  • tk *