pyFAI.gui package¶
Subpackages¶
- pyFAI.gui.dialog package
- pyFAI.gui.helper package
- pyFAI.gui.helper.MarkerManager module
- pyFAI.gui.helper.ProcessingWidget module
- pyFAI.gui.helper.RingCalibration module
- pyFAI.gui.helper.RingExtractor module
- pyFAI.gui.helper.SynchronizeMaskToolColor module
- pyFAI.gui.helper.SynchronizePlotBackground module
- pyFAI.gui.helper.SynchronizeRawView module
- pyFAI.gui.helper.model_transform module
- Module contents
- pyFAI.gui.model package
- pyFAI.gui.model.AbstractModel module
- pyFAI.gui.model.CalibrantModel module
- pyFAI.gui.model.CalibrationModel module
- pyFAI.gui.model.ConstraintModel module
- pyFAI.gui.model.DataModel module
- pyFAI.gui.model.DataModelAdaptor module
- pyFAI.gui.model.DetectorModel module
- pyFAI.gui.model.ExperimentSettingsModel module
- pyFAI.gui.model.FilenameModel module
- pyFAI.gui.model.Fit2dGeometryModel module
- pyFAI.gui.model.GeometryConstraintsModel module
- pyFAI.gui.model.GeometryHistoryModel module
- pyFAI.gui.model.GeometryModel module
- pyFAI.gui.model.ImageModel module
- pyFAI.gui.model.IntegrationSettingsModel module
- pyFAI.gui.model.ListModel module
- pyFAI.gui.model.MarkerModel module
- pyFAI.gui.model.MaskedImageModel module
- pyFAI.gui.model.PeakModel module
- pyFAI.gui.model.PeakSelectionModel module
- pyFAI.gui.model.PlotViewModel module
- Module contents
- pyFAI.gui.tasks package
- pyFAI.gui.utils package
- pyFAI.gui.utils.FilterBuilder module
- pyFAI.gui.utils.ProxyAction module
- pyFAI.gui.utils.colorutils module
- pyFAI.gui.utils.eventutils module
- pyFAI.gui.utils.imageutils module
- pyFAI.gui.utils.projecturl module
- pyFAI.gui.utils.setup module
- pyFAI.gui.utils.timeutils module
- pyFAI.gui.utils.tree module
- pyFAI.gui.utils.units module
- pyFAI.gui.utils.unitutils module
- pyFAI.gui.utils.validators module
- Module contents
- pyFAI.gui.widgets package
- pyFAI.gui.widgets.AdvancedComboBox module
- pyFAI.gui.widgets.AdvancedSpinBox module
- pyFAI.gui.widgets.CalibrantPreview module
- pyFAI.gui.widgets.CalibrantSelector module
- pyFAI.gui.widgets.ChoiceToolButton module
- pyFAI.gui.widgets.ColoredCheckBox module
- pyFAI.gui.widgets.DetectorLabel module
- pyFAI.gui.widgets.DetectorModel module
- pyFAI.gui.widgets.DetectorSelector module
- pyFAI.gui.widgets.ElidedLabel module
- pyFAI.gui.widgets.FileEdit module
- pyFAI.gui.widgets.FitParamView module
- pyFAI.gui.widgets.GeometryHistoryComboBox module
- pyFAI.gui.widgets.GeometryLabel module
- pyFAI.gui.widgets.LoadImageToolButton module
- pyFAI.gui.widgets.MethodLabel module
- pyFAI.gui.widgets.MonitorNameEdit module
- pyFAI.gui.widgets.OpenClDeviceLabel module
- pyFAI.gui.widgets.QuantityEdit module
- pyFAI.gui.widgets.QuantityLabel module
- pyFAI.gui.widgets.UnitLabel module
- pyFAI.gui.widgets.UnitSelector module
- pyFAI.gui.widgets.WorkerConfigurator module
- Module contents
pyFAI.gui.ApplicationContext module¶
Context shared through all the application
-
class
pyFAI.gui.ApplicationContext.
ApplicationContext
(settings=None)¶ Bases:
object
-
__init__
(settings=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
createFileDialog
(parent, previousFile=None)¶ Create a file dialog configured with a default path.
- Return type
qt.QFileDialog
-
createImageFileDialog
(parent, previousFile=None)¶ Create an image file dialog configured with a default path.
- Return type
silx.gui.dialog.ImageFileDialog.ImageFileDialog
-
static
instance
()¶ - Return type
-
parent
()¶
-
restoreWindowLocationSettings
(groupName, window)¶ Restore the window settings using this settings object
- Parameters
settings (qt.QSettings) – Initialized settings
-
saveSettings
()¶ Save the settings of all the application
-
saveWindowLocationSettings
(groupName, window)¶ Save the window settings to this settings object
- Parameters
settings (qt.QSettings) – Initialized settings
-
setParent
(parent)¶
-
pyFAI.gui.CalibrationContext module¶
Context shared through all the application
-
class
pyFAI.gui.CalibrationContext.
CalibrationContext
(settings=None)¶ Bases:
pyFAI.gui.ApplicationContext.ApplicationContext
-
__init__
(settings=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
createMarkerColors
()¶
-
disabledMarkerColor
()¶
-
getAngleUnit
()¶
-
getBackgroundColor
()¶ Returns the Qt color used to display part of the diagram outside of the data.
- Return type
qt.QColor
-
getCalibrationModel
()¶
-
getColormapDialog
()¶ Returns a shared color dialog.
- Return type
ColorDialog
-
getCurrentStyle
()¶
-
getHtmlMarkerColor
(index)¶
-
getLabelColor
()¶ Returns the Qt color used to display text label
- Return type
qt.QColor
-
getLengthUnit
()¶
-
getMarkerColor
(index, mode='qt')¶
-
getMaskedColor
()¶ Returns the Qt color used to display masked pixels
- Return type
qt.QColor
-
getRawColormap
()¶ Returns the user preference colormap used to display raw data images
- Return type
Colormap
-
getScatteringVectorUnit
()¶
-
getWavelengthUnit
()¶
-
static
instance
()¶ - Return type
-
markerColorList
()¶
-
restoreSettings
()¶ Restore the settings of all the application
-
saveSettings
()¶ Save the settings of all the application
-
pyFAI.gui.CalibrationWindow module¶
pyFAI.gui.IntegrationDialog module¶
pyFAI-integrate
A graphical tool for performing azimuthal integration on series of files.
-
class
pyFAI.gui.IntegrationDialog.
IntegrationDialog
(input_data=None, output_path=None, json_file='.azimint.json', context=None)¶ Bases:
PyQt5.QtWidgets.QWidget
Dialog to configure an azimuthal integration.
-
__init__
(input_data=None, output_path=None, json_file='.azimint.json', context=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
batchProcessRequested
¶
-
closeEvent
(self, QCloseEvent)¶
-
die
()¶
-
dump
(filename=None)¶ Dump the status of the current widget to a file in JSON
- Parameters
filename (string) – path where to save the config
- Returns
dict with configuration
-
get_config
()¶ Read the configuration of the plugin and returns it as a dictionary
- Returns
dict with all information.
-
help
()¶
-
restore
(filename='.azimint.json')¶ Restore from JSON file the status of the current widget
- Parameters
filename (str) – path where the config was saved
-
save_config
()¶
-
set_config
(dico)¶ Setup the widget from its description
- Parameters
dico (dict) – dictionary with description of the widget
-
set_input_data
(stack)¶
-
-
class
pyFAI.gui.IntegrationDialog.
IntegrationProcess
(parent=None)¶ Bases:
PyQt5.QtWidgets.QDialog
,pyFAI.app.integrate.IntegrationObserver
-
__init__
(parent=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
createObserver
(qtSafe=True)¶ Returns a processing observer connected to this widget.
- Parameters
qtSafe (bool) – If True the returned observer can be called from any thread. Else it have to be called from the main Qt thread.
- Return type
-
data_result
(data_info, result)¶ Called after each data processing, with the result
- Parameters
data_info (DataInfo) – Contains data and metadata from the data to integrate
result (object) – Result of the integration.
-
processing_data
(data_info, approximate_count=None)¶ Start processing the data data_info
- Parameters
data_info (DataInfo) – Contains data and metadata from the data to integrate
approximate_count (int) – If set, the amount of total data to process have changed
-
processing_finished
()¶ Called when the full processing is finisehd.
-
processing_interrupted
()¶ Called before processing_finished if the processing was interrupted.
- Parameters
error ([str,Exception,None]) – A reason of the interruption.
-
processing_started
(data_count)¶ Called before starting the full processing.
- Parameters
data_count (int) – Number of data to integrate
-
processing_succeeded
()¶ Called before processing_finished if the processing succedded.
-
worker_initialized
(worker)¶ Called when the worker is initialized
- Parameters
data_count (int) – Number of data to integrate
-
pyFAI.gui.cli_calibration module¶
pyFAI-calib
A tool for determining the geometry of a detector using a reference sample.
-
class
pyFAI.gui.cli_calibration.
AbstractCalibration
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None, wavelength=None, calibrant=None)¶ Bases:
object
Everything that is common to Calibration and Recalibration
-
PARAMETERS
= ['dist', 'poni1', 'poni2', 'rot1', 'rot2', 'rot3', 'wavelength']¶
-
PTS_PER_DEG
= 0.3¶
-
UNITS
= {'dist': 'meter', 'poni1': 'meter', 'poni2': 'meter', 'rot1': 'radian', 'rot2': 'radian', 'rot3': 'radian', 'wavelength': 'meter'}¶
-
VALID_URL
= ['', 'file', 'hdf5', 'nxs', 'h5']¶
-
__init__
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None, wavelength=None, calibrant=None)¶ Constructor of AbstractCalibration
- Parameters
dataFiles – list of filenames containing data images
darkFiles – list of filenames containing dark current images
flatFiles – list of filenames containing flat images
pixelSize – size of the pixel in meter as 2 tuple
splineFile – file containing the distortion of the taper
detector – Detector name or instance
wavelength – radiation wavelength in meter
calibrant – pyFAI.calibrant.Calibrant instance
-
analyse_options
(options=None, args=None)¶ Analyzes options and arguments
- Returns
option,arguments
-
chiplot
(rings=None)¶ plot delta_2theta/2theta = f(chi) and fit the curve.
- Parameters
rings – list of rings to consider
-
configure_parser
(version='calibration from pyFAI version 0.18.0: 03/02/2019', usage='pyFAI-calib [options] input_image.edf', description=None, epilog=None)¶ Common configuration for parsers
-
extract_cpt
(method='massif', pts_per_deg=1.0)¶ Performs an automatic keypoint extraction: Can be used in recalib or in calib after a first calibration has been performed.
- Parameters
method – method for keypoint extraction
pts_per_deg – number of control points per azimuthal degree (increase for better precision)
-
get_pixelSize
(ans)¶ convert a comma separated sting into pixel size
-
postProcess
()¶ Common part: shows the result of the azimuthal integration in 1D and 2D
-
preprocess
()¶ Common part: do dark, flat correction thresholding, … and read missing data from keyboard if needed
-
prompt
()¶ prompt for commands to guide the calibration process
- Returns
True when the user is happy with what he has, False to request another refinement
-
read_dSpacingFile
(verbose=True)¶ Read the name of the calibrant / file with d-spacing
-
read_pixelsSize
()¶ Read the pixel size from prompt if not available
-
read_wavelength
()¶ Read the wavelength
-
refine
()¶ Contains the common geometry refinement part
-
reset_geometry
(how='center', refine=False)¶ Reset the geometry: no tilt in all cases
- Parameters
how – multiple options * center: set the PONI at the center of the detector * ring: center the poni at the middle of the inner-most ring * best: try both option and keeps the best (this option is not available)
refine – launch the refinement (argument not used)
-
set_data
(data)¶ call-back function for the peak-picker
-
validate_calibration
()¶ Validate the calibration and calculate the offset in the diffraction image
-
validate_center
(slices=36)¶ Validate the position of the center by cross-correlating two spectra 180 deg appart. Output values are in micron.
Designed for orthogonal setup with centered beam…
- Parameters
slices – number of slices on which perform
-
win_error
= 'We are under windows with a 32 bit version of python, matplotlib is not able to display too many images without crashing, this is why the window showing the diffraction image is closed'¶
-
-
class
pyFAI.gui.cli_calibration.
Calibration
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None, gaussianWidth=None, wavelength=None, calibrant=None)¶ Bases:
pyFAI.gui.cli_calibration.AbstractCalibration
class doing the calibration of frames
-
__init__
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None, gaussianWidth=None, wavelength=None, calibrant=None)¶ Constructor for calibration:
- Parameters
dataFiles – list of filenames containing data images
darkFiles – list of filenames containing dark current images
flatFiles – list of filenames containing flat images
pixelSize – size of the pixel in meter as 2 tuple
splineFile – file containing the distortion of the taper
detector – Detector name or instance
wavelength – radiation wavelength in meter
calibrant – pyFAI.calibrant.Calibrant instance
-
gui_peakPicker
()¶
-
initgeoRef
()¶ Tries to initialise the GeometryRefinement (dist, poni, rot) Returns a dictionary of key value pairs
-
parse
()¶ parse options from command line
-
preprocess
()¶ do dark, flat correction thresholding, …
-
refine
()¶ Contains the geometry refinement part specific to Calibration Sets up the initial guess when starting pyFAI-calib
-
-
class
pyFAI.gui.cli_calibration.
CheckCalib
(poni=None, img=None, unit='2th_deg')¶ Bases:
object
-
__init__
(poni=None, img=None, unit='2th_deg')¶ Initialize self. See help(type(self)) for accurate signature.
-
get_1dsize
()¶
-
integrate
()¶
-
parse
()¶
-
rebuild
()¶ Rebuild the diffraction image and measures the offset with the reference :return: offset
-
show
()¶ Show the image with the the errors
-
size1d
¶
-
smooth_mask
(hwhm=5)¶ smooth out around the mask to avoid aligning on the mask
-
-
class
pyFAI.gui.cli_calibration.
MultiCalib
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None)¶ Bases:
object
-
__init__
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None)¶
-
get_pixelSize
(ans)¶ convert a comma separated sting into pixel size
-
parse
(exe=None, description=None, epilog=None)¶ parse options from command line :param exe: name of the program (MX-calibrate) :param description: Description of the program
-
process
()¶
-
read_dSpacingFile
()¶ Read the name of the calibrant or the file with d-spacing
-
read_pixelsSize
()¶ Read the pixel size from prompt if not available
-
read_wavelength
()¶ Read the wavelength
-
regression
()¶
-
-
class
pyFAI.gui.cli_calibration.
Recalibration
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None, wavelength=None, calibrant=None)¶ Bases:
pyFAI.gui.cli_calibration.AbstractCalibration
class doing the re-calibration of frames
-
__init__
(dataFiles=None, darkFiles=None, flatFiles=None, pixelSize=None, splineFile=None, detector=None, wavelength=None, calibrant=None)¶ Constructor for Recalibration:
- Parameters
dataFiles – list of filenames containing data images
darkFiles – list of filenames containing dark current images
flatFiles – list of filenames containing flat images
pixelSize – size of the pixel in meter as 2 tuple
splineFile – file containing the distortion of the taper
detector – Detector name or instance
wavelength – radiation wavelength in meter
calibrant – pyFAI.calibrant.Calibrant instance
-
parse
()¶ parse options from command line
-
preprocess
()¶ do dark, flat correction thresholding, …
-
read_dSpacingFile
()¶ Read the name of the file with d-spacing
-
refine
()¶ Contains the geometry refinement part specific to Recalibration
-
-
pyFAI.gui.cli_calibration.
calib
(img, calibrant, detector, basename='from_ipython', reconstruct=False, dist=0.1, gaussian=None, interactive=True)¶ Procedural interfact for calibration
- Parameters
img – 2d array representing the calibration image
calibrant – Instance of Calibrant, set-up with wavelength
detector – Detector instance containing the mask
basename – output file base
recontruct – perform image reconstruction of masked pixel ?
dist – initial distance
gaussian – width of the gaussian used for difference of gaussian in the “massif” peak-picking algorithm
interactive – set to False for testing
- Returns
AzimuthalIntegrator instance
-
pyFAI.gui.cli_calibration.
get_detector
(detector, datafiles=None)¶ Detector factory taking into account the binning knowing the datafiles
- Parameters
detector – string or detector or other junk
datafiles – can be a list of images to be opened and their shape used
- Returns
pyFAI.detector.Detector instance
- Raises
RuntimeError – If no detector found
pyFAI.gui.diffmap_widget module¶
-
class
pyFAI.gui.diffmap_widget.
DiffMapWidget
¶ Bases:
PyQt5.QtWidgets.QWidget
-
__init__
()¶ Initialize self. See help(type(self)) for accurate signature.
-
clear_selection
(*args, **kwargs)¶ called to remove selected files from the list
-
configure_diffraction
(*arg, **kwarg)¶
-
configure_output
(*args, **kwargs)¶ called when clicking on “outputFileSelector”
-
create_connections
()¶ Signal-slot connection
-
display_processing
(config)¶ Setup the display for visualizing the processing
- Parameters
config – configuration of the processing ongoing
-
do_abort
()¶
-
dump
(fname=None)¶ Save the configuration in a JSON file
- Parameters
fname – file where the config is saved as JSON
-
get_config
()¶ Return a dict with the plugin configuration which is JSON-serializable
-
input_filer
(*args, **kwargs)¶ Called when addFiles clicked: opens a file-browser and populates the listFiles object
-
json_file
= '.diffmap.json'¶
-
process
(config=None)¶ Called in a separate thread
-
progressbarChanged
¶
-
restore
(fname=None)¶ Restore the widget from saved config
- Parameters
fname – file where the config is saved as JSON
-
save_config
()¶
-
set_config
(dico)¶ Set up the widget from dictionary
- Parameters
dico – dictionary
-
set_validator
()¶
-
sort_input
()¶
-
start_processing
(*arg, **kwarg)¶
-
uif
= 'diffmap.ui'¶
-
update_number_of_frames
()¶
-
update_number_of_points
()¶
-
update_processing
(idx_file, idx_img)¶ Update the process bar and the images
- Parameters
idx_file – file number
idx_img – frame number
-
update_slice
(*args)¶ Update the slice
-
-
class
pyFAI.gui.diffmap_widget.
IntegrateDialog
(parent=None)¶ Bases:
PyQt5.QtWidgets.QDialog
-
__init__
(parent=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
-
class
pyFAI.gui.diffmap_widget.
TreeModel
(win, root_item)¶ Bases:
PyQt5.QtCore.QAbstractItemModel
-
__init__
(win, root_item)¶ Initialize self. See help(type(self)) for accurate signature.
-
columnCount
(self, parent: QModelIndex = QModelIndex()) → int¶
-
data
(midx, role)¶ What to display depending on model_index and role
-
flags
(self, QModelIndex) → Qt.ItemFlags¶
-
headerData
(self, int, Qt.Orientation, role: int = Qt.DisplayRole) → Any¶
-
index
(self, int, int, parent: QModelIndex = QModelIndex()) → QModelIndex¶
-
parent
(self, QModelIndex) → QModelIndex¶ parent(self) -> QObject
-
rowCount
(self, parent: QModelIndex = QModelIndex()) → int¶
-
update
(new_root)¶
-
pyFAI.gui.jupyter module¶
-
pyFAI.gui.jupyter.
display
(img=None, cp=None, ai=None, label=None, sg=None, ax=None)¶ Display an image with the control points and the calibrated rings in Jupyter notebooks
- Parameters
img – 2D numpy array with an image
cp – ControlPoint instance
ai – azimuthal integrator for iso-2th curves
label – name of the curve
sg – single geometry object regrouping img, cp and ai
ax – subplot object to display in, if None, a new one is created.
- Returns
Matplotlib subplot
-
pyFAI.gui.jupyter.
plot1d
(result, calibrant=None, label=None, ax=None)¶ Display the powder diffraction pattern in the jupyter notebook
- Parameters
result – instance of Integrate1dResult
calibrant – Calibrant instance to overlay diffraction lines
label – (str) name of the curve
ax – subplot object to display in, if None, a new one is created.
- Returns
Matplotlib subplot
-
pyFAI.gui.jupyter.
plot2d
(result, calibrant=None, label=None, ax=None)¶ Display the caked image in the jupyter notebook
- Parameters
result – instance of Integrate2dResult
calibrant – Calibrant instance to overlay diffraction lines
label – (str) name of the curve
ax – subplot object to display in, if None, a new one is created.
- Returns
Matplotlib subplot
pyFAI.gui.matplotlib module¶
This module inits matplotlib and setups the backend to use.
It MUST be imported prior to any other import of matplotlib.
It provides the matplotlib FigureCanvasQTAgg
class corresponding
to the used backend.
pyFAI.gui.peak_picker module¶
Semi-graphical tool for peak-picking and extracting visually control points from an image with Debye-Scherer rings
-
class
pyFAI.gui.peak_picker.
PeakPicker
(data, reconst=False, mask=None, pointfile=None, calibrant=None, wavelength=None, detector=None, method='massif')¶ Bases:
object
This class is in charge of peak picking, i.e. find bragg spots in the image Two methods can be used : massif or blob
-
VALID_METHODS
= ['massif', 'blob', 'watershed']¶
-
__init__
(data, reconst=False, mask=None, pointfile=None, calibrant=None, wavelength=None, detector=None, method='massif')¶ - Parameters
data – input image as numpy array
reconst – shall masked part or negative values be reconstructed (wipe out problems with pilatus gaps)
mask – area in which keypoints will not be considered as valid
pointfile –
-
closeGUI
()¶
-
contour
(data, cmap='autumn', linewidths=2, linestyles='dashed')¶ Overlay a contour-plot
- Parameters
data – 2darray with the 2theta values in radians…
-
display_points
(minIndex=0, reset=False)¶ display all points and their ring annotations :param minIndex: ring index to start with :param reset: remove all point before re-displaying them
-
finish
(filename=None, callback=None)¶ Ask the ring number for the given points
- Parameters
filename – file with the point coordinates saved
-
gui
(log=False, maximize=False, pick=True)¶ - Parameters
log – show z in log scale
-
help
= ['Please select rings on the diffraction image. In parenthesis, some modified shortcuts for single button mouse (Apple):', ' * Right-click (click+n): try an auto find for a ring', ' * Right-click + Ctrl (click+b): create new group with one point', ' * Right-click + Shift (click+v): add one point to current group', ' * Right-click + m (click+m): find more points for current group', ' * Center-click or (click+d): erase current group', ' * Center-click + 1 or (click+1): erase closest point from current group']¶
-
init
(method, sync=True)¶ Unified initializer
-
load
(filename)¶ load a filename and plot data on the screen (if GUI)
-
massif_contour
(data)¶ Overlays a mask over a diffraction image
- Parameters
data – mask to be overlaid
-
on_minus_pts_clicked
(*args)¶ callback function
-
on_option_clicked
(*args)¶ callback function
-
on_plus_pts_clicked
(*args)¶ callback function
-
on_refine_clicked
(*args)¶ callback function
-
onclick
(event)¶ Called when a mouse is clicked
-
peaks_from_area
(**kwargs)¶ Return the list of peaks within an area
- Parameters
mask – 2d array with mask.
Imin – minimum of intensity above the background to keep the point
keep – maximum number of points to keep
method – enforce the use of detection using “massif” or “blob” or “watershed”
ring – ring number to which assign the points
dmin – minimum distance between two peaks (in pixels)
seed – good starting points.
- Returns
list of peaks [y,x], [y,x], …]
-
remove_grp
(lbl)¶ remove a group of points
- Parameters
lbl – label of the group of points
-
reset
()¶ Reset control point and graph (if needed)
-
sync_init
()¶
-
Module contents¶
Module containing dependency with Qt or matplotlib GUI