nabu.pipeline.helical.helical_chunked_regridded module¶
- class nabu.pipeline.helical.helical_chunked_regridded.HelicalChunkedRegriddedPipeline(process_config, sub_region, logger=None, extra_options=None, phase_margin=None, reading_granularity=10, span_info=None, diag_zpro_run=0)[source]¶
Bases:
object
Pipeline for “helical” full or half field tomography. Data is processed by chunks. A chunk consists in K+-1 contiguous lines of all the radios which are read at variable height following the translations
Initialize a “HelicalChunked” pipeline.
- Parameters:
process_config (nabu.resources.processcinfig.ProcessConfig) – Process configuration.
sub_region (tuple) – Sub-region to process in the volume for this worker, in the format (start_x, end_x, start_z, end_z).
logger (nabu.app.logger.Logger, optional) – Logger class
extra_options (dict, optional) – Advanced extra options.
phase_margin (tuple, optional) – Margin to use when performing phase retrieval, in the form ((up, down), (left, right)). See also the documentation of PaganinPhaseRetrieval. If not provided, no margin is applied.
reading_granularity (int) – The data angular span which needs to be read for a reconstruction is read step by step, reading each time a maximum of reading_granularity radios, and doing the preprocessing till phase retrieval for each of these angular groups
Notes
Using a phase_margin results in a lesser number of reconstructed slices. More specifically, if phase_margin = (V, H), then there will be chunk_size - 2*V reconstructed slices (if the sub-region is in the middle of the volume) or chunk_size - V reconstructed slices (if the sub-region is on top or bottom of the volume).
- extra_marge_granularity = 4¶
This offers extra reading space to be able to read the redundant part which might be sligtly larger and or require extra border for interpolation
- FlatFieldClass¶
alias of
FlatFieldDataVariableRegionUrls
- DoubleFlatFieldClass¶
alias of
DoubleFlatFieldVariableRegion
- PaganinPhaseRetrievalClass¶
alias of
PaganinPhaseRetrieval
- UnsharpMaskClass¶
alias of
UnsharpMask
- VerticalShiftClass¶
alias of
VerticalShift
- SinoBuilderClass¶
alias of
SinoBuilder
- FBPClass = None¶
- HBPClass = None¶
- HistogramClass¶
alias of
PartialHistogram
- regular_accumulator = None¶
- set_subregion(sub_region)[source]¶
Set a sub-region to process.
- Parameters:
sub_region (tuple) – Sub-region to process in the volume, in the format (start_x, end_x, start_z, end_z) or (start_z, end_z).
- property use_radio_processing_margin¶
- property phase_margin¶
Return the margin for phase retrieval in the form ((up, down), (left, right))
- register_callback(step_name, callback)[source]¶
Register a callback for a pipeline processing step.
- Parameters:
step_name (str) – processing step name
callback (callable) – A function. It will be executed once the processing step step_name is finished. The function takes only one argument: the class instance.
- correct_for_missing_angles()[source]¶
For non helical scan, the rotation is often incomplete ( < 360) here we complement the missing angles
- classmethod estimate_required_memory(process_config, reading_granularity=None, chunk_size=None, margin_v=0, span_info=None, diag_zpro_run=0)[source]¶
Estimate the memory (RAM) needed for a reconstruction.
- Parameters:
process_config (ProcessConfig object) – Data structure with the processing configuration
chunk_size (int, optional) – Size of a “radios chunk”, i.e “delta z”. A radios chunk is a 3D array of shape (n_angles, chunk_size, n_x) If set to None, then chunk_size = n_z
Notes
It seems that Cuda does not allow allocating and/or transferring more than 16384 MiB (17.18 GB). If warn_from_GB is not None, then the result is in the form (estimated_memory_GB, warning) where warning is a boolean indicating wheher memory allocation/transfer might be problematic.
- nabu.pipeline.helical.helical_chunked_regridded.overlap_logic(subr_start_z, subr_end_z, dtasrc_start_z, dtasrc_end_z)[source]¶
determines the useful lines which can be transferred from the dtasrc_start_z:dtasrc_end_z range targeting the range subr_start_z: subr_end_z ………………
- nabu.pipeline.helical.helical_chunked_regridded.padding_logic(subr_start_z, subr_end_z, dtasrc_start_z, dtasrc_end_z)[source]¶
………. and the missing ranges which possibly could be obtained by extension padding