A Graphical User Interface for calculating band gap energies and visualizing Tauc plots for direct allowed and indirect allowed transitions
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
An interactive GUI that allows for an input of absorption data to yield direct and indirect transition Tauc plots, giving subsequent band gap energies corresponding to the data.
There are three possible methods for calculating these band gap values which include: Santosh Newhouse Gregoire (SNG), Multivariate Adaptive Regression Spline
(MARS) and Segmentation methods.
To begin using this app is very simple. Just verify you have the necessary prequisites and follow the installation instructions.
Make sure MATLAB is installed. It is available for download in the Software Distribution section under the Help tab after you log into Canvas. Click on the "Add-Ons" dropdown menu of your MATLAB Home screen. Then click on "Manage Add-Ons" and ensure you have the Image Processing Toolbox and the Signal Processing Toolbox. If not, click on the "Get Add-Ons" button instead and search for the aforementioned products.
-
Clone the repo to your PC
git clone https://github.com/SolarSpec/TaucPlotGUI.git
-
Now enter the repository and install the application in MATLAB
Click on the .mlappinstall file in your repository -
Browse the APPS header and click on the drop down.
You will find the recently installed application under 'MY APPS' and can add it to your favourites
To begin, the user can load either absoprtion or reflectance data using the corresponding "Load Abs Data" and "Load Reflectance Data" buttons on the left panel. Initially, the app will populate the top "Absorption Spectra" plot with Intensity vs. Wavelength (nm) while overlaying ROI lines that allows the user to determine the fit limits of the data. If the data needs cropping to calculate proper Tauc plot ranges then the user can physically slide the ROI lines or update the limit fields on the right panel to achieve this. Furthermore, there are three possible fitting methods selectable at the top of this panel. These methods determine the fit and the resulting band gap values in various ways described below.
After the desired methods are chosen, the user can then begin determining the band gap values by clicking the "Start Fit" button. This will populate the remaining Direct and Indirect Transition Tauc plots in the middle panel; displaying either squared or rooted Absorption Coefficient*Energy respectively vs. Energy (eV). Once completed, the app will output the determined band gap values in the left panel in the order of [SNG MARS Segmentation]. If SNG is a selected method, it will output Goodness of Fit codes labelled "FOMD Codes" below the desired band gap values. These codes tell the user whether or not the fitting was successful and if not, what went wrong by comparing with the FOMD table on the right panel.
Finally, the user will now have the option to export the data by clicking the "Export Data" button on the right panel (unless the selected fitting methods are changed, in which the user will need to re-fit the data). Furthermore, the "Baseline Index" edit field will now be editable and it allows the user to select which linear segment of the baseline region will the line snap to, specifically only for the SNG and Segmentation methods.
This method uses a baseline linear segment and the desired Tauc region linear segment to calculate the band gap energy at the crossing of these two lines. The abscissa is then used to determine the energy values in eV.
Expert Scientist Guidelines for Band Gap Estimation:
If multiple band gaps are observed, estimate band gap using the Tauc regions that explains higher proportion of Tauc property change.
In cases where a clear baseline is not observed but a trend for transition between the baseline and the absorption tail is observed, estimate band gap using best approximation of baseline.
Do not estimate a band gap when neither a clear baseline nor a trend for transition between the baseline and the absorption tail are observed.
Do not estimate band gap when only a lower limit of the band gap energy can be determined (due to the absorption transient extending beyond the high-energy limit of the spectrometer).
This method initially used the desired Tauc region linear segment with the axis crossing to calculate the band gap energy but has been updated to find the baseline segment and instead use the abscissa. These linear segments are determined by a weighting expression.
This method initially used the desired Tauc region linear segment with the axis crossing to calculate the band gap energy but has been updated to find the baseline segment and instead use the abscissa. This method draws multiple Tauc regions through linear regression and iterating various step sizes, then averages among them to find the best region.
For more information on these methods and algorithms, please refer to the paper Automated algorithms for band gap analysis from optical absorption spectra by Marcus Schwarting, Sebastian Siola, Kevin Talley, Andriy Zakutayev, and Caleb Phillips
- Plot Absorbtion or T-R vs. Wavelength
- Use ROI lines to cut data at specified wavelengths
- Calculate subsequent DA and IA data
- Plot and fit DA and IA Tauc plots
- Calculate desired band gap energies
- Use various methods to determine band gap energies
- View possible issues with fit through code table (SNG)
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
All MATLAB code is distributed under the BSD 3-Clause License. See LICENSE.txt for more information. Please note that the MARS method used in both the MATLAB and accompanying Python files exhibits public works from NREL/HTEM that is under Copyright 2017 Alliance for Sustainable Energy, LLC. See LICENSE.txt in the NREL-HTEM directory for more information. Also view the LICENSE.txt in the file exchange directory for the public scripts used throughout the MARS and Segmentation methods.
SolarSpec - SolarSpec Website - vidihari@student.ubc.ca
Project Link: https://github.com/SolarSpec/TaucPlotGUI


