@fdrgsp, we could add a new Tile specification to useq that would handle most of the logic needed for creating positions in the sample explorer. It could definitely be considered to be an additional dimension (since one could definitely imagine doing a large 3x3 image at every stage position)
I'm thinking something like:
class MDASequence:
tile_plan: AnyTilePlan # or a different name... perhaps grid... not sure
class TilePlan(FrozenModel):
overlap: float = 0.1
class TileBoundingBox(TilePlan):
x1: float
x2: float
...
class TileRelative(TilePlan):
nrows: int
ncols: int
relative_to: Literal['center', 'top_left', ...]
AnyTilePlan = Union[TileBoundingBox, TileRelative]
etc... basically, thinking of all of the non-overlapping ways to describe a tile in space, and what the bare minimum set of parameters are. @fdrgsp, would you want to take a stab at that? following the patterns in Zplan and TimePlan?
@fdrgsp, we could add a new
Tile
specification to useq that would handle most of the logic needed for creating positions in the sample explorer. It could definitely be considered to be an additional dimension (since one could definitely imagine doing a large 3x3 image at every stage position) I'm thinking something like:etc... basically, thinking of all of the non-overlapping ways to describe a tile in space, and what the bare minimum set of parameters are. @fdrgsp, would you want to take a stab at that? following the patterns in Zplan and TimePlan?