python-microscope / microscope

Python library for control of microscope devices, supporting hardware triggers and distribution of devices over the network for performance and flexibility.

Home Page:https://www.python-microscope.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stage. Mapping arbitrary units to phisical units

juliomateoslangerak opened this issue · comments

I have a question that rose while testing the ASI stage but I find applies to others.

The move_by method takes an value and it Move axis by given amount. It is not specified the amount in physical units. In the case of the ASI this is translated into 1/10 microns, and that value must be different for any stage.

I cannot find anywhere a mapping of these arbitrary units and the physical units. Where is this to be defined?

Microscope stages are just defined in terms of "units" whatever the stage wants to use. Any mapping to real units is defined in cockpit, see https://microscope-cockpit.org/depot-config#stages

I see. Thanks

Does it make sense to implement some function to get this information from the stage? Best effort

I guess, although we would then have to implement some well defined mechanism to signal that there is no physical unit and the user needs to provide one.

Thinking about this I would say that more and more info will be encoded on the stage so we probably should read units from the stage if possible.

Maybe have cockpit do,

try:
get stage units from microscope
except:
try:
get stage units from depot config
except:
fail, no stage units.

The one drawback of this is how do you overwrite the stage units if they are mad. Maybe the opposite is better and try read from config, then the stage if both fail then error.