tds2el_extract_maxima: Extracting positions and screening of the spotsΒΆ

the following documentation has been generated automatically from the docstrings found in the source code.
  • tds2el_extract_maxima is always runned with two arguments

    tds2el_extract_maxima  input_file
  • The maxima search operation profits from parallelism

    mpirun -n 12 tds2el_extract_maxima  input_file
  • Three different kind of task can be activated by setting to True the corresponding switch parameter

    • By default the 3D peaks are searched into a stack of images
    • drawmask = True. This option sums up a small numer of images of the stack. It displays them and a mask can be drawn. The mask is then written to a file and can be used during the peak search to set to zero anomalous pixels(filter_file option).
    • review = True. Visual navigation in the found maxima. They can be tagged as good or bad. In the future the possibility of introducing a mask-per-blob could be considered. But it is maybe better to do it in the reciprocal space.
  • example de fichier d’ input

    images_prefix             =  "G19K45/set1_0001p_"
    # Let the following images_prefix_alt to None and dont set it ( default None)
    # It is used for reviewing with comparison of same position locations
    # versus an alternative dataset
    #  images_prefix_alt         =  "G19K45/set1_0001p_"
    images_postfix        =  ".cbf"
    ## peaks are searched, having a radius peak_size
    #  and with maximum > threshold_abs and > image_max*threshold_rel
    peak_size = 2
    spot_view_size = 10
    # Filtering, OPTIONAL or set it to None for no mask filtering of bad pixels
    # filter_file           =  None  
    filter_file           =  "filter.edf"  
    ##  medianize can be 1 or 0 ( True or False)
    ##  The peak is always searched into a stack
    ##  of spot_view_size + 1 + spot_view_size slices
    ##  When the option is activated each slice will be beforehand
    ##  subtracted with the median of the  slices going from the spot_view_size^th preceeding
    ##  to the spot_view_size^th following. Spot_view_size should be greaer than peak_size
    medianize = 1
    ## Let this advanced option as it is for now, or dive into the code.
    ## The rationale here would be that in the first step on works
    ## locally on spot_view_size + 1 + spot_view_size slices,
    ##  in the second step one can work globally on the found peaks
    globalize = (0,0)
    ## The file where  found peaks are written 
    ## or, when reviewing, read. 
    file_maxima = "maxima.p"
    ### if yes, a graphical window allows for the selection of the mask
    ### Closing the window will propose to write on newmask.edf
    drawmask = False
    ## Allows to have a simultaneous and animated view of the blobs.
    ## Animated thumnails.
    ## They can be selected of deselected. When clicking on the
    ## thumbnails a larger 3D explorer is charged with
    ## a (review_size+1+review_size )^3 stack
    review = False
    review_size = 50
  • The following image illustrates the use of the viewer. Peaks can be selected and deselected. When closing the windows you are asked if yes or not you want to save the maxima on a new file. The file can be reused for the further steps: geometry alignement and elastic constants fitting. The alignements steps create a new file where peaks are tagged by hkl. The image below is the run of the viewer on such a file, hkl is displayed. Each icon is animated movie sweeping the small (2*spot_view_size+1)**3 cube around the peak in image space: each frame correspond to an experimental image. If you let the mouse pointer idle on an icon a toolitip appear mentioning further metadata od the spot. If you click the 3D stack viewer from Silx is charged with a larger (2*review_size+1)**3 data volume of the data. Whe you have loaded an image and working on it, its checkbox is red-framed to remember what you are working on. The alt-data if any will be displayed as an additional companion icon on the right of the checkbox

  • The thumbnails are generated in extraction phase using a Silx widget. At present the widget needs to have acces to a graphical display and interact with it, this might be a performance issue if the extraction is runned remotely in some cases of slow network. With NX ( no-machine) the performances are good even remotely.