Semapp


NameSemapp JSON
Version 1.0.3 PyPI version JSON
download
home_pageNone
SummaryPackage for SEM visualization
upload_time2025-10-25 10:05:22
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords sem gui
VCS
bugtrack_url
requirements matplotlib numpy pandas Pillow PyQt5 PyQt5_sip PyQt5_sip
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SEMapp - SEM Data Visualization Application

A PyQt5-based desktop application for visualizing and analyzing Scanning Electron Microscope (SEM) data. SEMapp supports both standard and COMPLUS4T KLARF file formats, providing an intuitive interface for defect mapping and image analysis.

## Features

### Core Functionality
- **KLARF File Support**: Parse and extract defect data from `.001` (KLARF) files
- **Dual Mode Operation**:
  - **Standard Mode**: Process SEM data from structured subdirectories
  - **COMPLUS4T Mode**: Handle multi-wafer KLARF files with automatic wafer detection
- **Interactive Wafer Mapping**: Visual representation of defect positions on wafer surface
- **Image Visualization**: Display TIFF images corresponding to defect locations
- **Dynamic Defect Filtering**: Real-time defect filtering based on size threshold (COMPLUS4T mode)

### Data Processing
- **Automatic File Organization**: Organize TIFF files into wafer-specific subfolders
- **Coordinate Extraction**: Extract and convert defect coordinates from KLARF format
- **CSV Export**: Save defect mapping data for external analysis
- **Batch Processing**: Process multiple wafers in a single session

### User Interface
- **Wafer Selection**: Grid-based wafer slot selection (1-26)
- **Image Type Selection**: Choose from different image scales and types
- **Defect Size Slider**: Dynamic threshold control for defect visualization (COMPLUS4T mode)
- **Interactive Plot**: Click on defect positions to view corresponding images
- **Settings Configuration**: Customize image types and processing parameters

## Installation

### Prerequisites
- Python 3.7 or higher
- pip package manager

### Install from PyPI
```bash
pip install semapp
```

### Install from Source
```bash
git clone https://github.com/yourusername/semapp.git
cd semapp
pip install -e .
```

### Dependencies
The following packages will be installed automatically:
- PyQt5 >= 5.15.0
- matplotlib >= 3.3.0
- pandas >= 1.1.0
- Pillow >= 8.0.0
- numpy >= 1.19.0

## Quick Start

### Launching the Application
```bash
# From command line after installation
semapp

# Or run directly from source
python -m semapp.main
```

### Basic Workflow

1. **Select a Directory**
   - Click "Select Folder" to choose your data directory
   - Application automatically detects standard or COMPLUS4T mode

2. **Choose a Wafer**
   - Select a wafer slot from the grid (1-26)
   - Available wafers are highlighted

3. **Open TIFF Data**
   - Click "Open TIFF" to load defect data and images
   - Wafer mapping is displayed automatically

4. **Analyze Defects**
   - Click on defect points in the map to view corresponding images
   - Use the defect size slider (COMPLUS4T mode) to filter by threshold
   - Red points indicate defects above threshold, blue points below

## File Structure

### Standard Mode
```
project_directory/
├── 1/                          # Wafer slot 1
│   ├── data.tif               # TIFF image file
│   ├── recipe_file.001        # KLARF defect file
│   └── mapping.csv            # Generated coordinate mapping
├── 2/                          # Wafer slot 2
│   ├── data.tif
│   ├── recipe_file.001
│   └── mapping.csv
└── ...
```

### COMPLUS4T Mode
```
project_directory/
├── data.tiff                   # Single TIFF file with all defects
├── recipe_file.001             # KLARF file containing multiple wafer IDs
├── 16/                         # Subfolder created for wafer ID 16
│   └── mapping.csv             # Wafer-specific mapping
├── 21/                         # Subfolder created for wafer ID 21
│   └── mapping.csv
└── ...
```

## KLARF File Format

SEMapp parses KLARF (`.001`) files to extract:
- **Wafer IDs**: `WaferID "@16";` (COMPLUS4T mode)
- **Sample Size**: Total number of defects
- **Die Pitch**: X and Y spacing between dies
- **Die Origin**: Reference origin coordinates
- **Sample Center**: Wafer center location
- **Defect List**: Individual defect data including:
  - Position (X, Y coordinates)
  - Size (nm)
  - Defect ID

## Settings Configuration

### Image Type Settings
Configure available image types and scales in the settings dialog:
- **Scale**: Image scale factor (e.g., 1µm, 5µm, 10µm)
- **Image Type**: Description of image type (e.g., Optic, SEM)

Settings are saved to `settings_data.json` for persistence across sessions.

### Data Processing Options
- **Split & Rename**: Organize files into wafer subfolders
- **Rename Files**: Batch rename files based on coordinates
- **Clean Folders**: Remove temporary/unwanted files

## Troubleshooting

### Common Issues

**TIFF file not found**
- Ensure TIFF files are named `data.tif` (standard mode)
- Check that TIFF files have `.tiff` or `.tif` extension
- Verify folder structure matches expected format

**Wafer IDs not detected**
- Confirm KLARF file contains "COMPLUS4T" keyword
- Check WaferID format: `WaferID "@<number>";`
- Ensure wafer IDs are between 1 and 26

**Coordinates not displaying**
- Verify KLARF file contains DefectList section
- Check that DiePitch, DieOrigin, and SampleCenterLocation are defined
- Ensure defect data format matches expected structure

**Images not loading**
- Confirm TIFF file is valid and not corrupted
- Check file permissions for read access
- Verify sufficient memory for large TIFF files

## Development

### Project Structure
```
semapp/
├── __init__.py                 # Package initialization
├── main.py                     # Application entry point
├── Layout/                     # UI components
│   ├── create_button.py        # Button controls and wafer selection
│   ├── main_window_att.py      # Main window layout
│   ├── settings.py             # Settings dialog
│   └── styles.py               # UI style definitions
├── Plot/                       # Plotting and visualization
│   ├── frame_attributes.py     # Plot frame and mapping
│   ├── styles.py               # Plot styles
│   └── utils.py                # Plotting utilities
└── Processing/                 # Data processing
    └── processing.py           # File processing and KLARF parsing
```

### Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments

- Built with PyQt5 for the graphical interface
- Matplotlib for data visualization
- Pandas for data manipulation
- Pillow for image processing

## Contact

For questions, issues, or suggestions, please open an issue on GitHub.

---

**Version**: 1.0.2  
**Status**: Production Ready


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "Semapp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "SEM, GUI",
    "author": null,
    "author_email": "Thibaut Meyer <thibaut.meyer3@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/9e/7f/65cad9535e17acb6598d6ba35395c97522a9fc31b9a8a298b42946f2d3ee/semapp-1.0.3.tar.gz",
    "platform": null,
    "description": "# SEMapp - SEM Data Visualization Application\r\n\r\nA PyQt5-based desktop application for visualizing and analyzing Scanning Electron Microscope (SEM) data. SEMapp supports both standard and COMPLUS4T KLARF file formats, providing an intuitive interface for defect mapping and image analysis.\r\n\r\n## Features\r\n\r\n### Core Functionality\r\n- **KLARF File Support**: Parse and extract defect data from `.001` (KLARF) files\r\n- **Dual Mode Operation**:\r\n  - **Standard Mode**: Process SEM data from structured subdirectories\r\n  - **COMPLUS4T Mode**: Handle multi-wafer KLARF files with automatic wafer detection\r\n- **Interactive Wafer Mapping**: Visual representation of defect positions on wafer surface\r\n- **Image Visualization**: Display TIFF images corresponding to defect locations\r\n- **Dynamic Defect Filtering**: Real-time defect filtering based on size threshold (COMPLUS4T mode)\r\n\r\n### Data Processing\r\n- **Automatic File Organization**: Organize TIFF files into wafer-specific subfolders\r\n- **Coordinate Extraction**: Extract and convert defect coordinates from KLARF format\r\n- **CSV Export**: Save defect mapping data for external analysis\r\n- **Batch Processing**: Process multiple wafers in a single session\r\n\r\n### User Interface\r\n- **Wafer Selection**: Grid-based wafer slot selection (1-26)\r\n- **Image Type Selection**: Choose from different image scales and types\r\n- **Defect Size Slider**: Dynamic threshold control for defect visualization (COMPLUS4T mode)\r\n- **Interactive Plot**: Click on defect positions to view corresponding images\r\n- **Settings Configuration**: Customize image types and processing parameters\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n- Python 3.7 or higher\r\n- pip package manager\r\n\r\n### Install from PyPI\r\n```bash\r\npip install semapp\r\n```\r\n\r\n### Install from Source\r\n```bash\r\ngit clone https://github.com/yourusername/semapp.git\r\ncd semapp\r\npip install -e .\r\n```\r\n\r\n### Dependencies\r\nThe following packages will be installed automatically:\r\n- PyQt5 >= 5.15.0\r\n- matplotlib >= 3.3.0\r\n- pandas >= 1.1.0\r\n- Pillow >= 8.0.0\r\n- numpy >= 1.19.0\r\n\r\n## Quick Start\r\n\r\n### Launching the Application\r\n```bash\r\n# From command line after installation\r\nsemapp\r\n\r\n# Or run directly from source\r\npython -m semapp.main\r\n```\r\n\r\n### Basic Workflow\r\n\r\n1. **Select a Directory**\r\n   - Click \"Select Folder\" to choose your data directory\r\n   - Application automatically detects standard or COMPLUS4T mode\r\n\r\n2. **Choose a Wafer**\r\n   - Select a wafer slot from the grid (1-26)\r\n   - Available wafers are highlighted\r\n\r\n3. **Open TIFF Data**\r\n   - Click \"Open TIFF\" to load defect data and images\r\n   - Wafer mapping is displayed automatically\r\n\r\n4. **Analyze Defects**\r\n   - Click on defect points in the map to view corresponding images\r\n   - Use the defect size slider (COMPLUS4T mode) to filter by threshold\r\n   - Red points indicate defects above threshold, blue points below\r\n\r\n## File Structure\r\n\r\n### Standard Mode\r\n```\r\nproject_directory/\r\n\u251c\u2500\u2500 1/                          # Wafer slot 1\r\n\u2502   \u251c\u2500\u2500 data.tif               # TIFF image file\r\n\u2502   \u251c\u2500\u2500 recipe_file.001        # KLARF defect file\r\n\u2502   \u2514\u2500\u2500 mapping.csv            # Generated coordinate mapping\r\n\u251c\u2500\u2500 2/                          # Wafer slot 2\r\n\u2502   \u251c\u2500\u2500 data.tif\r\n\u2502   \u251c\u2500\u2500 recipe_file.001\r\n\u2502   \u2514\u2500\u2500 mapping.csv\r\n\u2514\u2500\u2500 ...\r\n```\r\n\r\n### COMPLUS4T Mode\r\n```\r\nproject_directory/\r\n\u251c\u2500\u2500 data.tiff                   # Single TIFF file with all defects\r\n\u251c\u2500\u2500 recipe_file.001             # KLARF file containing multiple wafer IDs\r\n\u251c\u2500\u2500 16/                         # Subfolder created for wafer ID 16\r\n\u2502   \u2514\u2500\u2500 mapping.csv             # Wafer-specific mapping\r\n\u251c\u2500\u2500 21/                         # Subfolder created for wafer ID 21\r\n\u2502   \u2514\u2500\u2500 mapping.csv\r\n\u2514\u2500\u2500 ...\r\n```\r\n\r\n## KLARF File Format\r\n\r\nSEMapp parses KLARF (`.001`) files to extract:\r\n- **Wafer IDs**: `WaferID \"@16\";` (COMPLUS4T mode)\r\n- **Sample Size**: Total number of defects\r\n- **Die Pitch**: X and Y spacing between dies\r\n- **Die Origin**: Reference origin coordinates\r\n- **Sample Center**: Wafer center location\r\n- **Defect List**: Individual defect data including:\r\n  - Position (X, Y coordinates)\r\n  - Size (nm)\r\n  - Defect ID\r\n\r\n## Settings Configuration\r\n\r\n### Image Type Settings\r\nConfigure available image types and scales in the settings dialog:\r\n- **Scale**: Image scale factor (e.g., 1\u00b5m, 5\u00b5m, 10\u00b5m)\r\n- **Image Type**: Description of image type (e.g., Optic, SEM)\r\n\r\nSettings are saved to `settings_data.json` for persistence across sessions.\r\n\r\n### Data Processing Options\r\n- **Split & Rename**: Organize files into wafer subfolders\r\n- **Rename Files**: Batch rename files based on coordinates\r\n- **Clean Folders**: Remove temporary/unwanted files\r\n\r\n## Troubleshooting\r\n\r\n### Common Issues\r\n\r\n**TIFF file not found**\r\n- Ensure TIFF files are named `data.tif` (standard mode)\r\n- Check that TIFF files have `.tiff` or `.tif` extension\r\n- Verify folder structure matches expected format\r\n\r\n**Wafer IDs not detected**\r\n- Confirm KLARF file contains \"COMPLUS4T\" keyword\r\n- Check WaferID format: `WaferID \"@<number>\";`\r\n- Ensure wafer IDs are between 1 and 26\r\n\r\n**Coordinates not displaying**\r\n- Verify KLARF file contains DefectList section\r\n- Check that DiePitch, DieOrigin, and SampleCenterLocation are defined\r\n- Ensure defect data format matches expected structure\r\n\r\n**Images not loading**\r\n- Confirm TIFF file is valid and not corrupted\r\n- Check file permissions for read access\r\n- Verify sufficient memory for large TIFF files\r\n\r\n## Development\r\n\r\n### Project Structure\r\n```\r\nsemapp/\r\n\u251c\u2500\u2500 __init__.py                 # Package initialization\r\n\u251c\u2500\u2500 main.py                     # Application entry point\r\n\u251c\u2500\u2500 Layout/                     # UI components\r\n\u2502   \u251c\u2500\u2500 create_button.py        # Button controls and wafer selection\r\n\u2502   \u251c\u2500\u2500 main_window_att.py      # Main window layout\r\n\u2502   \u251c\u2500\u2500 settings.py             # Settings dialog\r\n\u2502   \u2514\u2500\u2500 styles.py               # UI style definitions\r\n\u251c\u2500\u2500 Plot/                       # Plotting and visualization\r\n\u2502   \u251c\u2500\u2500 frame_attributes.py     # Plot frame and mapping\r\n\u2502   \u251c\u2500\u2500 styles.py               # Plot styles\r\n\u2502   \u2514\u2500\u2500 utils.py                # Plotting utilities\r\n\u2514\u2500\u2500 Processing/                 # Data processing\r\n    \u2514\u2500\u2500 processing.py           # File processing and KLARF parsing\r\n```\r\n\r\n### Contributing\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n## Acknowledgments\r\n\r\n- Built with PyQt5 for the graphical interface\r\n- Matplotlib for data visualization\r\n- Pandas for data manipulation\r\n- Pillow for image processing\r\n\r\n## Contact\r\n\r\nFor questions, issues, or suggestions, please open an issue on GitHub.\r\n\r\n---\r\n\r\n**Version**: 1.0.2  \r\n**Status**: Production Ready\r\n\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Package for SEM visualization",
    "version": "1.0.3",
    "project_urls": {
        "Homepage": "https://github.com/thi-mey/SEMapp"
    },
    "split_keywords": [
        "sem",
        " gui"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "421f5e137380752d11e4652aba6962f3ba702fb584ca5e8419037486c6eb285a",
                "md5": "f7bbedfe398a4d5cf6e870c8fd0d603e",
                "sha256": "7a845c239d30b3b91e88023fb33fe1da82a01ade376f52762527d158fe063ce9"
            },
            "downloads": -1,
            "filename": "semapp-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f7bbedfe398a4d5cf6e870c8fd0d603e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 42079,
            "upload_time": "2025-10-25T10:05:20",
            "upload_time_iso_8601": "2025-10-25T10:05:20.976657Z",
            "url": "https://files.pythonhosted.org/packages/42/1f/5e137380752d11e4652aba6962f3ba702fb584ca5e8419037486c6eb285a/semapp-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e7f65cad9535e17acb6598d6ba35395c97522a9fc31b9a8a298b42946f2d3ee",
                "md5": "ce206ba14450ac36f50f02e4372c73a6",
                "sha256": "169b6a0dc6afd3f49707ec23a55ec095233c3d058a56bd20797390695021f52d"
            },
            "downloads": -1,
            "filename": "semapp-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "ce206ba14450ac36f50f02e4372c73a6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 37805,
            "upload_time": "2025-10-25T10:05:22",
            "upload_time_iso_8601": "2025-10-25T10:05:22.146027Z",
            "url": "https://files.pythonhosted.org/packages/9e/7f/65cad9535e17acb6598d6ba35395c97522a9fc31b9a8a298b42946f2d3ee/semapp-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-25 10:05:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "thi-mey",
    "github_project": "SEMapp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.8.3"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "2.2.5"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "11.2.1"
                ]
            ]
        },
        {
            "name": "PyQt5",
            "specs": [
                [
                    "==",
                    "5.15.11"
                ]
            ]
        },
        {
            "name": "PyQt5_sip",
            "specs": [
                [
                    "==",
                    "12.15.0"
                ]
            ]
        },
        {
            "name": "PyQt5_sip",
            "specs": [
                [
                    "==",
                    "12.17.0"
                ]
            ]
        }
    ],
    "lcname": "semapp"
}
        
Elapsed time: 0.50807s