Source code for nabu.pipeline.detector_distortion_provider
from ..resources.utils import extract_parameters
from ..io.detector_distortion import DetectorDistortionBase, DetectorDistortionMapsXZ
import silx.io
[docs]
def DetectorDistortionProvider(detector_full_shape_vh=(0, 0), correction_type="", options=""):
if correction_type == "identity":
return DetectorDistortionBase(detector_full_shape_vh=detector_full_shape_vh)
elif correction_type == "map_xz":
options = options.replace("path=", "path_eq")
user_params = extract_parameters(options)
print(user_params, options)
map_x = silx.io.get_data(user_params["map_x"].replace("path_eq", "path="))
map_z = silx.io.get_data(user_params["map_z"].replace("path_eq", "path="))
return DetectorDistortionMapsXZ(map_x=map_x, map_z=map_z)
else:
message = f"""
Unknown correction type: {correction_type} requested
"""
raise ValueError(message)