PLGAN - Photoluminescence Data Analysis for GaN
A PyQt5-based GUI application for processing and visualizing photoluminescence (PL) spectroscopy data, specifically designed for GaN (Gallium Nitride) semiconductor characterization.
Features
- Data Processing: Convert wavelength (nm) to energy (eV) for PL spectra analysis
- Wafer Mapping: Generate heatmaps for intensity, energy, thickness, and YB/NBE area ratio
- Multi-wafer Support: Process and visualize up to 26 wafers simultaneously
- Statistical Analysis: Calculate mean, sigma, and uniformity metrics
- Boxplot Generation: Create comparative boxplots across multiple wafers
- Image Grid Export: Combine individual wafer maps into grid layouts
- Configurable Settings: Adjustable parameters for wafer size, edge exclusion, and thresholds
- Parallel Processing: Utilizes multiprocessing for faster data processing
Installation
Prerequisites
- Python >= 3.9
Install from source
git clone https://github.com/thi-mey/PLGAN.git
cd PLGaN
pip install -e .
Dependencies
- matplotlib==3.10.3
- numpy==2.2.5
- pandas==2.2.3
- Pillow==11.2.1
- PyQt5==5.15.11
- scipy==1.15.3
Usage
Launch the GUI
PLGAN
Or run directly:
python -m PLGAN.main
Workflow
- Select Parent Folder: Choose the directory containing wafer data subfolders
- Select Wafers: Check the wafer slots (1-26) you want to process
- Choose Analysis Type:
GaN - Int/eV: Intensity and energy mappingGaN - Area ratio: YB/NBE area ratio analysisGaN - Thickness: Thickness mapping from WDF datanm to eV: Wavelength to energy conversion onlyClean: Remove generated filesCreate folders: Organize raw files into numbered folders
- Configure Options:
- Data processing
- Autoscale mapping
- Identical scale mapping (manual or auto)
- Slot number display
- Statistics overlay
- Run: Click "Run data processing" to execute
Settings
Access the Settings window to configure:
- Wafer size (cm)
- Edge exclusion (cm)
- Step size (cm)
- Energy range (eV)
- Intensity range
- Area ratio range
- Thickness range (um)
Settings are automatically saved to ~/PLGAN/settings_data.json.
Project Structure
PLGaN/
├── PLGAN/
│ ├── __init__.py
│ ├── main.py # Application entry point
│ ├── Layout/
│ │ ├── main_window_att.py # Main window layout management
│ │ ├── frames_buttons.py # UI buttons and controls
│ │ ├── setting_windows.py # Settings dialog
│ │ └── layouts_style.py # Qt stylesheet definitions
│ ├── Plot/
│ │ ├── frame_attributes.py # Plot frame management
│ │ ├── plot_functions.py # WDXRF mapping and boxplot functions
│ │ ├── plot_style.py # Plot button styles
│ │ └── utils.py # Screenshot and utility functions
│ └── Processing/
│ ├── sequences.py # Processing workflow orchestration
│ ├── function_common.py # Common utilities (nm to eV, stats, etc.)
│ └── photoluminescencegan.py # GaN-specific PL analysis
├── pyproject.toml
└── README.md
Data Format
Input
- PL Spectra: CSV files with wavelength/energy in first row, X/Y positions in first two columns
- Thickness Data: CSV files with columns grouped as (X, Y, Thickness) triplets
Output
data_e_i.csv: Processed data with X, Y, intensity, energydata_filtered.csv: Filtered data within specified thresholds*_grid_df.csv: Pivoted grid data for mapping*.png: Individual wafer heatmapsGraphe/Mapping/All_*.png: Combined grid imagesListe_data/Stats.csv: Statistical summaryListe_data/Boxplot_*.csv: Boxplot data
License
GPL-3.0-or-later
Author
Thibaut Meyer - thibaut.meyer3@gmail.com
Metadata
Release files for PLGaN 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plgan-1.0.0.tar.gz | 43.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plgan-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.0 kB
Release files / plgan-1.0.0.tar.gz
| Download URL | plgan-1.0.0.tar.gz |
|---|---|
| Size | 43.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
564bf69fff36e59c2b007a25147ffaa478308f9505b4ecd9db1d81a78a888613
|
|
BLAKE2b-256 checksum How to use checksums |
bfdde0f91cb73b054df8dc0ac55147e8181d43be6dcb4259c4aabfd0f43480bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|
Release files / plgan-1.0.0-py3-none-any.whl
| Download URL | plgan-1.0.0-py3-none-any.whl |
|---|---|
| Size | 47.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
228d0c880e776c7365e1f4a7e98742af94f41df40e234059c05ff86fee5a8da3
|
|
BLAKE2b-256 checksum How to use checksums |
ce081c70ed6bb491894fb318cfa3ecb032cf26bc329dd2f7e2bb71afae5583bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|