Metadata-Version: 2.5
Name: plesty-pl-image-scan
Version: 0.1.0
Summary: A plesty pl image scan experiment.
Author-email: Yunshuang Yuan <yunshuang.yuan@fkp.uni-hannover.de>
Maintainer-email: Plesty Development Team <plesty.dev@example.com>
License-Expression: LGPL-3.0-or-later
License-File: LICENSE
License-File: LICENSES/LGPL-3.0-or-later.txt
Requires-Python: >=3.12
Requires-Dist: matplotlib>=3.8
Requires-Dist: numpy>=2.0
Requires-Dist: pillow>=10.0
Requires-Dist: plesty-lib>=0.6.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: scipy>=1.13
Provides-Extra: gui
Requires-Dist: plesty-lib[gui]>=0.6.0; extra == 'gui'
Description-Content-Type: text/markdown

# Plesty PL Image Scan Experiment

Photoluminescence image scan of a QD chip with etched marker fields, built on
the `plesty.lib.experiment` framework. For every marker cell the piezo stage
centres the cell in the camera image and captures one image per configured
illumination (marker / qd) at that exact position. Every cell is an atomic,
journaled step: an interrupted scan resumes at the cell it stopped at, and a
partially captured cell is retaken as a whole so its images stay spatially
aligned.

## Installation

```bash
git clone https://gitlab.com/plesty/hub/experiments/plesty-pl-image-scan.git
cd plesty-pl-image-scan
uv sync
```

## Usage

`setup.yaml` names the benches the instruments are served from and the device
on each; `.env` holds their values — the shared data disk and each bench's
address and token (see `.env.example`). A bench gives the run each device's
address (`CAM_ADDRESS`, `LED_ADDRESS`, `AMC_ADDRESS`). Measurement tuning
(cells, reference alignment, illuminations) lives in `config/scan.yaml`.

```bash
cp .env.example .env    # the shared disk, the benches
uv run python -m plesty.pl_image_scan --dry-run            # print the planned steps
uv run python -m plesty.pl_image_scan                      # run the scan
uv run python -m plesty.pl_image_scan --resume <run_id>    # continue a stopped run
uv run python -m plesty.pl_image_scan --manifest           # the settings it accepts, as JSON
uv run python -m plesty.pl_image_scan.mapping <PLESTY_DATA>/pl-image-scan/<run_id>  # the QD map
```

The docs (`docs/`) show the rest: the devices, the plan and every setting
(`setup.md`), starting, resuming and watching a run and what it writes
(`running.md`), and how the focus and the QD map work and how to read the map
(`analysis.md`).
