Skip to main content

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

  1. Select Parent Folder: Choose the directory containing wafer data subfolders
  2. Select Wafers: Check the wafer slots (1-26) you want to process
  3. Choose Analysis Type:
    • GaN - Int/eV: Intensity and energy mapping
    • GaN - Area ratio: YB/NBE area ratio analysis
    • GaN - Thickness: Thickness mapping from WDF data
    • nm to eV: Wavelength to energy conversion only
    • Clean: Remove generated files
    • Create folders: Organize raw files into numbered folders
  4. Configure Options:
    • Data processing
    • Autoscale mapping
    • Identical scale mapping (manual or auto)
    • Slot number display
    • Statistics overlay
  5. 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, energy
  • data_filtered.csv: Filtered data within specified thresholds
  • *_grid_df.csv: Pivoted grid data for mapping
  • *.png: Individual wafer heatmaps
  • Graphe/Mapping/All_*.png: Combined grid images
  • Liste_data/Stats.csv: Statistical summary
  • Liste_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)

Source distribution for PLGaN 1.0.0
File Size Uploaded
plgan-1.0.0.tar.gz 43.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PLGaN 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page