csaxs_bec.bec_ipython_client.plugins.flomni.flomni.Flomni#
- class Flomni(client)[source]#
Bases:
FlomniInitStagesMixin,FlomniSampleTransferMixin,FlomniAlignmentMixin,FlomniOpticsMixin,cSAXSBeamlineChecks,flomniGuiToolsMethods
Add a sample to the omny sample database.
axis_id_to_numericcheck_all_axes_of_fomni_referencedcheck_position_is_validcheck_sensor_connectedcheck_tray_incompute_additional_correction_ycompute_additional_correction_y_2drive_axis_to_limitensure_fheater_upensure_gripper_upensure_osa_backfeedback_disablefeedback_enable_with_resetfeedback_enable_without_resetfeedback_statusfeye_infeye_outmove in the flomni zone plate.
ffzp_infoflomni_init_stagesflomni_modify_storage_non_interactiveflomnigui_docsflomnigui_idleflomnigui_raiseflomnigui_remove_all_docksflomnigui_show_camerasflomnigui_show_guiflomnigui_show_progressflomnigui_show_xeyealignflomnigui_show_xeyealign_fittabflomnigui_stop_guiMove in the flomni optics, including the FZP and the OSA.
Move out the flomni optics
fosa_infosa_outftransfer_confirmftransfer_controller_disable_mount_modeftransfer_controller_enable_mount_modeftransfer_controller_in_mount_modeftransfer_flomni_stage_inftransfer_flomni_stage_outftransfer_get_sampleftransfer_gripper_closeftransfer_gripper_is_openftransfer_gripper_moveftransfer_gripper_openftransfer_modify_storageftransfer_put_sampleftransfer_sample_changeftransfer_show_allCompute the alignment offset for the given angle.
get_beamline_checks_enabledlaser_tracker_offlaser_tracker_onlaser_tracker_show_alllights_offlights_onmove_fheater_downmove_fheater_upread_additional_correction_yread_additional_correction_y_2read_alignment_offsetRemove the special angles and set the number of repeats to 1
Reset the correction to the default values.
reset_tomo_alignment_fitrt_offrt_onGet the name of the sample currently in the given position.
set_clientset_limitsSet the special angles for a tomo
Set the web password for the current BEC account.
show_signal_strength_interferometerstart_x_ray_eye_alignmentPerforms a sub tomogram scan.
Move fsamroy to angle, then move rtx/rty/rtz to the alignment-corrected scan center (same alignment-offset logic as tomo_scan_projection, but without stitching), and acquire a single frame or a burst via scans.acquire instead of running a fermat scan.
Performs a tomogram alignment scan.
print and update the tomo parameters
write the tomo reconstruct file for the reconstruction queue
start a tomo scan
tomo_scan_projectionwrite_alignment_scan_numberscreate and write the pdf report with the current flomni settings
xrayeye_alignment_startxrayeye_update_frameAttributes
beamline_checks_enabledcorridor_sizecsaxs_bec_basepathdefault_correction_filedefault_correction_file_relfovxfovyNumber of burst frames acquired per point/projection.
golden_max_number_of_projectionsgolden_projections_at_0_deg_for_damage_estimationgolden_ratio_bunch_sizemanual_shift_yProxy dict backed by the BEC global variable
tomo_progress.ptycho_reconstruct_foldernamesample_nameIf True, tomo_scan acquires a single point (or burst) at each angle via scans.acquire instead of running scans.flomni_fermat_scan.
stitch_xstitch_yTotal angular sweep in degrees for tomo_type 1 (equally spaced sub-tomograms), inclusive of the upper bound.
tomo_angle_stepsizetomo_countingtimetomo_shellsteptomo_stitch_overlaptomo_type- add_sample_database(samplename, date, eaccount, scan_number, setup, sample_additional_info, user)[source]#
Add a sample to the omny sample database. This also retrieves the tomo id.
- ffzp_in()#
move in the flomni zone plate. This will disable rt feedback, move the FZP and re-enabled the feedback.
- foptics_in()#
Move in the flomni optics, including the FZP and the OSA.
- foptics_out()#
Move out the flomni optics
- property frames_per_trigger#
Number of burst frames acquired per point/projection. Used both by scans.flomni_fermat_scan (via tomo_scan_projection) and by tomo_acquire_at_angle (scans.acquire).
- get_alignment_offset(angle: float)#
Compute the alignment offset for the given angle.
- Parameters:
angle (float) – The angle to compute the alignment offset for.
- Returns:
The alignment offset in x, y and z direction.
- Return type:
tuple
- property progress: _ProgressProxy#
Proxy dict backed by the BEC global variable
tomo_progress.Readable from any BEC client session via:
client.get_global_var("tomo_progress")
Individual fields can be read and written just like a regular dict:
flomni.progress["projection"] # read flomni.progress["projection"] = 42 # write (persists immediately)
To update multiple fields atomically use
_ProgressProxy.update():flomni.progress.update(projection=42, angle=90.0)
To reset all fields to their defaults:
flomni.progress.reset()
- reset_correction(use_default_correction=True)#
Reset the correction to the default values. If use_default_correction is False, the correction will be set to empty values. Otherwise the default values will be loaded.
- Parameters:
use_default_correction (bool, optional) – If set to true, a call reset the correction to the default values. Defaults to True.
- sample_get_name(position: int = 0) str#
Get the name of the sample currently in the given position.
- set_special_angles(angles: list, repeats: int = 20, tolerance: float = 0.5)[source]#
Set the special angles for a tomo
- Parameters:
angles (list) – List of special angles
repeats (int, optional) – Number of repeats at a special angle. Defaults to 20.
tolerance (float, optional) – Number of repeats at a special angle. Defaults to 0.5.
- property single_point_instead_of_fermat_scan#
If True, tomo_scan acquires a single point (or burst) at each angle via scans.acquire instead of running scans.flomni_fermat_scan. Applies to all tomo_types, since it only changes how a given angle is acquired, not which angles are visited.
- sub_tomo_scan(subtomo_number, start_angle=None)[source]#
Performs a sub tomogram scan. :param subtomo_number: The sub tomogram number. :type subtomo_number: int :param start_angle: The start angle of the scan. Defaults to None. :type start_angle: float, optional
- tomo_acquire_at_angle(angle: float, frames_per_trigger: int | None = None)[source]#
Move fsamroy to angle, then move rtx/rty/rtz to the alignment-corrected scan center (same alignment-offset logic as tomo_scan_projection, but without stitching), and acquire a single frame or a burst via scans.acquire instead of running a fermat scan.
This mirrors the positioning sequence used internally by flomni_fermat_scan (rotation, then rtx/rty/rtz with laser-tracker on/check/move-to-region), but executes it as plain blocking client-side calls, since this runs in the BEC client, not on the scan server.
- Parameters:
angle (float) – rotation angle [deg] to move fsamroy to.
frames_per_trigger (int, optional) – number of burst frames for this acquisition. Defaults to self.frames_per_trigger.
- tomo_alignment_scan()[source]#
Performs a tomogram alignment scan. Collects all scan numbers acquired during the alignment, prints them at the end, and creates a BEC scilog text entry summarising the alignment scan numbers.
- property tomo_angle_range#
Total angular sweep in degrees for tomo_type 1 (equally spaced sub-tomograms), inclusive of the upper bound. Either 180 (default, original behaviour) or 360.