Files
wafer_map_webui/README.md
beabigegg 9f7040ece9 ver 2
2025-07-30 11:24:58 +08:00

125 lines
5.0 KiB
Markdown

# Wafer Map Pro
Wafer Map Pro is a modern, web-based tool designed for the visualization, interactive editing, and comparison of semiconductor wafer maps. Built with a Python Flask backend and a dynamic HTML5 Canvas frontend, it provides a fluid and intuitive user experience for engineers and technicians working with wafer data.
---
## ✨ Features
### 🗺️ Wafer Map Editor
- **Interactive Canvas Renderer**: The wafer map is rendered on an HTML5 Canvas, allowing for smooth and efficient handling of large datasets.
- **Dynamic Pan & Zoom**: Effortlessly navigate the wafer map by clicking and dragging to pan, and using the mouse wheel to zoom in on areas of interest.
- **Advanced Selection Tools**:
- **Single Die**: Click to select a single die.
- **Multi-Select**: Hold `Ctrl` while clicking to select multiple, non-contiguous dies.
- **Region/Box Select**: Hold `Shift` and drag the mouse to select a rectangular area of dies.
- **Bin Code Editing**: Instantly change the bin code (`Good`, `NG`, `Dummy`, `Ignore`) of any selected die or region.
- **Map Transformation**:
- **Rotate**: Rotate the entire wafer map 90 degrees clockwise with a single click.
- **Inset**: Automatically change the bin code of the outer N layers of dies.
- **History Control**:
- **Undo/Redo**: Step backward and forward through your edits.
- **Reset**: Revert the map to its original state.
- **Real-Time Data Analysis**: A persistent display shows the live count of each bin code, updating automatically after every edit.
- **File Handling**:
- Upload wafer maps from simple `.txt` files.
- Download the edited wafer map, preserving its structure.
### 🔬 Wafer Map Comparator
- **Multi-Map Upload**: Upload two or more wafer maps for side-by-side comparison.
- **Reference Point Alignment**: Set a reference die on each map to ensure accurate alignment.
- **Visual Comparison**: The tool generates a color-coded result map highlighting matches, mismatches, and areas where data is missing or partial.
- **Detailed Inspection**: Hover over any die on the result map to see a detailed tooltip showing the bin status from each of the source maps.
- **Independent Map Rotation**: Rotate individual maps within the comparison view to align them correctly before running the comparison.
---
## 🛠️ Tech Stack
- **Backend**:
- **Python 3**
- **Flask**: A lightweight web framework for serving the application and handling API requests.
- **NumPy**: Used for efficient numerical operations and array manipulations (e.g., map rotation, inset, and comparison logic).
- **Frontend**:
- **HTML5**
- **CSS3**: For modern styling, animations, and the dark theme.
- **JavaScript (Vanilla)**: Powers all the client-side interactivity, including the canvas rendering engine, event handling, and API communication.
---
## 🚀 Getting Started
Follow these instructions to get a copy of the project up and running on your local machine.
### Prerequisites
- Python 3.6 or higher
- pip (Python package installer)
### Installation
1. **Clone the repository to your local machine:**
```bash
git clone https://github.com/your-username/wafer-map-pro.git
cd wafer-map-pro
```
2. **Create and activate a virtual environment (recommended):**
```bash
# For Windows
python -m venv venv
.\venv\Scripts\activate
# For macOS/Linux
python3 -m venv venv
source venv/bin/activate
```
3. **Install the required Python packages:**
```bash
pip install -r requirements.txt
```
4. **Run the Flask application:**
```bash
python app.py
```
5. **Open your web browser** and navigate to the following addresses:
- **Editor**: [http://127.0.0.1:5000](http://127.0.0.1:5000)
- **Comparator**: [http://127.0.0.1:5000/compare](http://127.0.0.1:5000/compare)
---
## 📖 How to Use
### Wafer Map Editor
1. **Upload File**: Drag and drop a `.txt` file containing your wafer map data, or click to select a file.
2. **Define Bin Codes**: Assign a bin type (`Good`, `NG`, `Dummy`, or `Ignore`) to each unique character found in your file.
3. **Generate Map**: Click "Generate Map" to view the wafer.
4. **Interact and Edit**: Use the controls to Pan, Zoom, Select, Edit, Rotate, and Inset the map.
5. **Download**: Click "Download .txt" to save your changes.
### Wafer Map Comparator
1. **Navigate**: Go to the "Compare" page.
2. **Upload Files**: Select two or more `.txt` wafer map files.
3. **Define Bin Codes**: Assign bin types for all unique characters across all files.
4. **Set Reference Points**: For each map, click on a die to set it as the alignment reference. You can rotate individual maps if needed.
5. **Run Comparison**: Click "Run Comparison" to see the result map. Hover over dies for detailed information.
---
### Expected `.txt` File Format
The application expects a simple text file where each character represents a die. Spacing is used to separate dies. The parser is designed to handle non-uniform rows and columns gracefully.
**Example:**
```
1111
112211
11222211
11222211
112211
1111
```