Skip to content
Snippets Groups Projects

[Generic][Shimadzu] Dynamic flat-field characterization and correction for MHz microscopy

Merged Egor Sobolev requested to merge feat/shimadzu-correction into master
1 file
+ 14
4
Compare changes
  • Side-by-side
  • Inline
+ 14
4
from dataclasses import dataclass
from dataclasses import dataclass
 
from cal_tools.calcat_interface2 import ConditionsBase
from cal_tools.calcat_interface2 import ConditionsBase
@dataclass
@dataclass
class ShimadzuHPVX2Conditions(ConditionsBase):
class ShimadzuHPVX2Conditions(ConditionsBase):
frame_size: float
burst_frame_count: float
calibration_types = {
calibration_types = {
"Offset": ["Frame Size"],
'Offset': ['Burst Frame Count'],
"DynamicFF": ["Frame Size"],
'DynamicFF': ['Burst Frame Count'],
}
}
class ShimadzuHPVX2:
class ShimadzuHPVX2:
channel = "daqOutput"
channel = "daqOutput"
image_key = "data.image.pixels"
image_key = "data.image.pixels"
 
copy_keys = [
 
"data.image.binning",
 
"data.image.dimTypes",
 
"data.image.dims",
 
"data.image.flipX",
 
"data.image.flipY",
 
"data.image.roiOffsets",
 
"data.image.rotation",
 
]
def __init__(self, source_name_pattern: str, channel=None, image_key=None):
def __init__(self, source_name_pattern: str, channel=None, image_key=None):
self.source_name_pattern = source_name_pattern
self.source_name_pattern = source_name_pattern
@@ -38,7 +48,7 @@ class ShimadzuHPVX2:
@@ -38,7 +48,7 @@ class ShimadzuHPVX2:
source_name = self.instrument_source(module)
source_name = self.instrument_source(module)
keydata = dc[source_name, self.image_key]
keydata = dc[source_name, self.image_key]
num_frames = keydata.shape[-3]
num_frames = keydata.shape[-3]
return ShimadzuHPVX2Conditions(frame_size=num_frames / 256)
return ShimadzuHPVX2Conditions(burst_frame_count=float(num_frames))
def instrument_source(self, module: int):
def instrument_source(self, module: int):
source_name = self.source_name_pattern.format(module)
source_name = self.source_name_pattern.format(module)
Loading