Skip to content

Stage creep correction#232

Open
minnerbe wants to merge 10 commits intonewsolverfrom
feature/creep-correction
Open

Stage creep correction#232
minnerbe wants to merge 10 commits intonewsolverfrom
feature/creep-correction

Conversation

@minnerbe
Copy link
Copy Markdown
Collaborator

This PR adds functionality for correcting stage creep effects in the wafer 60/61 multisem acquisition. The added code is divided into three parts.

Deriving parameters

Parameters for stage creep correction are derived on a per-mfov level: sfovs within an mfov that overlap vertically are aligned pairwise using an affine model. Parameters for this affine model are converted to a creep correction transformation. Only pre-existing matches are used and the correction parameters per mfov may optionally be stored in a csv file.

This step closely follows a python prototype by Ken.

Patching tile specs

A new stack is created with patched tile specs: tile specs that need to be corrected get an additional stage creep transform. Because there is a forward-backward mismatch between how the python prototype and render handle transformations, this transform needs to solve a non-linear equation at any point, which makes it a bit expensive to apply.

Patching matches

Instead of re-deriving point matches, matches are patched by applying the corresponding stage creep correction. A new match collection is created.

@trautmane let me know if this is enough to easily apply the correction to every slab. If not, I'm happy to modify the spark client to handle multi-stack configurations.

The process took about 30min for a full stack on my laptop on a single core, so it shouldn't be too compute intensive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant