nxtomomill.converter.hdf5.acquisition.pcotomoacquisition.PCOTomoAcquisition#

class nxtomomill.converter.hdf5.acquisition.pcotomoacquisition.PCOTomoAcquisition(root_url, configuration, detector_sel_callback, start_index)[source]#

Bases: StandardAcquisition

A 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, configuration, detector_sel_callback, start_index)[source]#

Methods

__init__(root_url, configuration, ...)

camera_is_valid(det_name)

check_tomo_n()

get_already_defined_params(key)

get_axis_scale_types()

Return axis display for the detector data to be used by silx view

get_expected_nx_tomo()

Return the expected number of nxtomo created for this acquisition.

get_nb_loop(url)

rtype

Optional[int]

get_nb_tomo(url)

rtype

Optional[int]

get_nb_turns(url)

rtype

Optional[int]

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()

rtype

Optional[DataUrl]

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[, ...])

rtype

tuple

to_NXtomos_pcotomo_v1(request_input, ...[, ...])

The first version of 'to_NXtomos' for the first way of storing pcotomo information.

to_NXtomos_pcotomo_v2(request_input, ...[, ...])

The second version of 'to_NXtomos' for the second way of storing pcotomo information.

write_as_nxtomo(shift_entry, ...[, ...])

rtype

tuple

Attributes

configuration

data_type

dim_1

dim_2

expo_time

has_diode

is the acquisition expect to have a diode (instead of an energy field)

image_key_control

is_xrd_ct

Is this an XRD-CT acquisition

known_machine_electric_current

Return the dict of all know machine electric current.

n_frames

n_frames_actual_bliss_scan

raise_error_if_issue

Should we raise an error if we encounter or an issue or should we just log an error message

require_x_translation

is x_translation expected

require_y_translation

require_z_translation

is z_translation expected

root_url

rotation_angle

start_index

rtype

int

x_flipped

x_translation

y_flipped

y_translation

z_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)[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

Return type

Optional[dict]

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, entry_type=None, copy_frames=False)#
Parameters
  • url (DataUrl) – entry to be registered and contained in the acquisition

  • entry_type (Optional[AcquisitionStep]) – type of the entry if know. Overwise will be ‘evaluated’

Return type

None

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=True)[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

Return type

tuple

to_NXtomos_pcotomo_v2(request_input, input_callback, check_tomo_n=True)[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

Return type

tuple