nxtomomill.converter.hdf5.acquisition.pcotomoacquisition.PCOTomoAcquisition#
- class nxtomomill.converter.hdf5.acquisition.pcotomoacquisition.PCOTomoAcquisition(root_url: Optional[DataUrl], configuration: TomoHDF5Config, detector_sel_callback, start_index)[source]#
Bases:
StandardAcquisitionA PCOTomo acquisition is an acquisition that can look like that at bliss side:
scan “descritpion”, title can be tomo:pcotomo for example
Optional scan dark
Optional scan flat
scan “projections”
Optional scan flat
The scan “projections” contains several “tomo” with a parameter evolving with time like heat or pressure. The idea is that we want to split those into several NXtomo. Those NXtomo must duplicate dark and flat scans For example if scan “projections” contains nb_loop = 2 and nb_loop = 3 we must create nb_loop*nb_loop == 6 NXtomo as output.
Split of those can are done in postprocessing on the to_NXtomos function
- __init__(root_url: Optional[DataUrl], configuration: TomoHDF5Config, detector_sel_callback, start_index)[source]#
Methods
__init__(root_url, configuration, ...)camera_is_valid(det_name)check_tomo_n()get_already_defined_params(key)Return axis display for the detector data to be used by silx view
Return the expected number of nxtomo created for this acquisition.
get_nb_loop(url)get_nb_tomo(url)get_nb_turns(url)get_pcotomo_version(url)return the pcotomo version according to the provider version (aka bliss)
get_z_translation_frm(root_node, n_frame, ...)is_different_sequence(entry)Can we have several entries 1.1, 1.2, 1.3.
parent_root_url()read_entry()register_step(url[, entry_type, copy_frames])- param DataUrl url:
entry to be registered and contained in the
to_NXtomos(request_input, input_callback[, ...])to_NXtomos_pcotomo_v1(request_input, ...[, ...])The first version of 'to_NXtomos' for the first way of storing pcotomo information. In this version we expect to have: * nb_loop: define the number of turn * nb_tomo: define the number of 'sequence' per turn. One sequence will generate one NXtomo.
to_NXtomos_pcotomo_v2(request_input, ...[, ...])The second version of 'to_NXtomos' for the second way of storing pcotomo information. In this version we expect to have: * nb_turns: number of NXtomo to generate * proj_n: number of projections per NXtomo * scan_range: rotation angle scope.
write_as_nxtomo(shift_entry, ...[, ...])Attributes
configurationdata_typedim_1dim_2expo_timeis the acquisition expect to have a diode (instead of an energy field)
image_key_controlIs this an XRD-CT acquisition
Return the dict of all know machine electric current.
n_framesn_frames_actual_bliss_scanShould we raise an error if we encounter or an issue or should we just log an error message
is x_translation expected
require_y_translationis z_translation expected
root_urlrotation_anglestart_indexx_flippedx_translationy_flippedy_translationz_translation- get_axis_scale_types()#
Return axis display for the detector data to be used by silx view
- get_expected_nx_tomo()[source]#
Return the expected number of nxtomo created for this acquisition. This is required to get consistent entry and file name. At lest for automation
- get_pcotomo_version(url: DataUrl)[source]#
return the pcotomo version according to the provider version (aka bliss)
- property has_diode#
is the acquisition expect to have a diode (instead of an energy field)
- is_different_sequence(entry)#
Can we have several entries 1.1, 1.2, 1.3… to consider. This is the case for XRD-CT where 1.1, 1.2, 1.3 should be consider as being part of the same sequence. Not for ‘standard tomography’
- property is_xrd_ct#
Is this an XRD-CT acquisition
- property known_machine_electric_current: Optional[dict]#
Return the dict of all know machine electric current. Key is the time stamp, value is the electric current
- property raise_error_if_issue#
Should we raise an error if we encounter or an issue or should we just log an error message
- register_step(url: DataUrl, entry_type: Optional[AcquisitionStep] = None, copy_frames=False) None#
- Parameters:
url (DataUrl) – entry to be registered and contained in the acquisition
entry_type – type of the entry if know. Overwise will be ‘evaluated’
- property require_x_translation#
is x_translation expected
- property require_z_translation#
is z_translation expected
- to_NXtomos_pcotomo_v1(request_input, input_callback, check_tomo_n: bool = True) tuple[source]#
The first version of ‘to_NXtomos’ for the first way of storing pcotomo information. In this version we expect to have:
nb_loop: define the number of turn
nb_tomo: define the number of ‘sequence’ per turn. One sequence will generate one NXtomo
- to_NXtomos_pcotomo_v2(request_input, input_callback, check_tomo_n: bool = True) tuple[source]#
The second version of ‘to_NXtomos’ for the second way of storing pcotomo information. In this version we expect to have:
nb_turns: number of NXtomo to generate
proj_n: number of projections per NXtomo
scan_range: rotation angle scope