sas.sascalc.calculator package
Submodules
sas.sascalc.calculator.BaseComponent module
Provide base functionality for all model components
-
class
sas.sascalc.calculator.BaseComponent.
BaseComponent
[source] Basic model component
Since version 0.5.0, basic operations are no longer supported.
-
calculate_ER
()[source] Calculate effective radius
-
calculate_VR
()[source] Calculate volume fraction ratio
-
clone
()[source] Returns a new object identical to the current object
-
evalDistribution
(qdist)[source] Evaluate a distribution of q-values.
For 1D, a numpy array is expected as input:
evalDistribution(q)
where q is a numpy array.
For 2D, a list of numpy arrays are expected: [qx_prime,qy_prime], where 1D arrays,
qx_prime = [ qx[0], qx[1], qx[2], ....]
and
qy_prime = [ qy[0], qy[1], qy[2], ....]
Then get
q = np.sqrt(qx_prime^2+qy_prime^2)
that is a qr in 1D array;
q = [q[0], q[1], q[2], ....]
Note
Due to 2D speed issue, no anisotropic scattering is supported for python models, thus C-models should have their own evalDistribution methods.
The method is then called the following way:
evalDistribution(q)
where q is a numpy array.
Parameters: qdist – ndarray of scalar q-values or list [qx,qy] where qx,qy are 1D ndarrays
-
getDispParamList
()[source] Return a list of all available parameters for the model
-
getParam
(name)[source] Set the value of a model parameter :param name: name of the parameter
-
getParamList
()[source] Return a list of all available parameters for the model
-
getParamListWithToken
(token, member)[source] get Param List With Token
-
getParamWithToken
(name, token, member)[source] get Param With Token
-
getProfile
()[source] Get SLD profile
- : return: (z, beta) where z is a list of depth of the transition points
- beta is a list of the corresponding SLD values
-
is_fittable
(par_name)[source] Check if a given parameter is fittable or not
Parameters: par_name – the parameter name to check
-
run
(x)[source] run 1d
-
runXY
(x)[source] run 2d
-
setParam
(name, value)[source] Set the value of a model parameter
Parameters: - name – name of the parameter
- value – value of the parameter
-
setParamWithToken
(name, value, token, member)[source] set Param With Token
-
set_dispersion
(parameter, dispersion)[source] model dispersions
-
sas.sascalc.calculator.instrument module
This module is a small tool to allow user to control instrumental parameters
-
class
sas.sascalc.calculator.instrument.
Aperture
[source] Bases:
object
An object class that defines the aperture variables
-
set_sample_distance
(distance=[])[source] Set the sample aperture distance
-
set_sample_size
(size=[])[source] Set the sample aperture size
-
set_source_size
(size=[])[source] Set the source aperture size
-
-
class
sas.sascalc.calculator.instrument.
Detector
[source] Bases:
object
An object class that defines the detector variables
-
set_distance
(distance=[])[source] Set the detector distance
-
set_pix_size
(size=[])[source] Set the detector pix_size
-
set_size
(size=[])[source] Set the detector size
-
-
class
sas.sascalc.calculator.instrument.
Neutron
[source] Bases:
object
An object that defines the wavelength variables
-
get_band
()[source] To get the wavelength band
-
get_default_spectrum
()[source] get default spectrum
-
get_intensity
()[source] To get the value of intensity
-
get_mass
()[source] To get the neutron mass
-
get_ramdom_value
()[source] To get the value of wave length
-
get_spectrum
()[source] To get the wavelength spectrum
-
get_wavelength
()[source] To get the value of wavelength
-
get_wavelength_spread
()[source] To get the value of wavelength spread
-
plot_spectrum
()[source] To plot the wavelength spactrum : requirement: matplotlib.pyplot
-
set_band
(band=[])[source] To set the wavelength band
Parameters: band – array of [min, max]
-
set_full_band
()[source] set band to default value
-
set_intensity
(intensity=368428)[source] Sets the intensity in counts/sec
-
set_mass
(mass=1.67492729e-24)[source] Sets the wavelength
-
set_spectrum
(spectrum)[source] Set spectrum
Parameters: spectrum – numpy array
-
set_wavelength
(wavelength=6.0)[source] Sets the wavelength
-
set_wavelength_spread
(spread=0.125)[source] Sets the wavelength spread
-
setup_spectrum
()[source] To set the wavelength spectrum, and intensity, assumes wavelength is already within the spectrum
-
-
class
sas.sascalc.calculator.instrument.
Sample
[source] Bases:
object
An object class that defines the sample variables
-
set_distance
(distance=[])[source] Set the sample distance
-
set_size
(size=[])[source] Set the sample size
-
set_thickness
(thickness=0.0)[source] Set the sample thickness
-
-
class
sas.sascalc.calculator.instrument.
TOF
[source] Bases:
sas.sascalc.calculator.instrument.Neutron
TOF: make list of wavelength and wave length spreads
-
get_intensity_list
()[source] get list of the intensity wrt wavelength_list
-
get_wave_list
()[source] Get wavelength and wavelength_spread list
-
set_wave_list
(wavelength=[])[source] Set wavelength list
Parameters: wavelength – list of wavelengths
-
set_wave_spread_list
(wavelength_spread=[])[source] Set wavelength_spread list
Parameters: wavelength_spread – list of wavelength spreads
-
-
sas.sascalc.calculator.instrument.
validate
(value=None)[source] Check if the value is folat > 0.0
Return value: True / False
sas.sascalc.calculator.kiessig_calculator module
This module is a small tool to allow user to quickly determine the size value in real space from the fringe width in q space.
-
class
sas.sascalc.calculator.kiessig_calculator.
KiessigThicknessCalculator
[source] Bases:
object
compute thickness from the fringe width of data
-
compute_thickness
()[source] Calculate thickness.
Returns: the thickness.
-
get_deltaq
()[source] return deltaQ value in 1/A unit
-
get_thickness_unit
()[source] Returns: the thickness unit.
-
set_deltaq
(dq=None)[source] Receive deltaQ value
Parameters: dq – q fringe width in 1/A unit
-
sas.sascalc.calculator.resolution_calculator module
This object is a small tool to allow user to quickly determine the variance in q from the instrumental parameters.
-
class
sas.sascalc.calculator.resolution_calculator.
ResolutionCalculator
[source] Bases:
object
compute resolution in 2D
-
compute
(wavelength, wavelength_spread, qx_value, qy_value, coord='cartesian', tof=False)[source] Compute the Q resoltuion in || and + direction of 2D : qx_value: x component of q : qy_value: y component of q
-
compute_and_plot
(qx_value, qy_value, qx_min, qx_max, qy_min, qy_max, coord='cartesian')[source] Compute the resolution : qx_value: x component of q : qy_value: y component of q
-
get_all_instrument_params
()[source] Get all instrumental parameters
-
get_default_spectrum
()[source] Get default_spectrum
-
get_detector_pix_size
()[source] Get detector pixel size
-
get_detector_qrange
()[source] get max detector q ranges
: return: qx_min, qx_max, qy_min, qy_max tuple
-
get_detector_size
()[source] Get detector size
-
get_image
(qx_value, qy_value, sigma_1, sigma_2, sigma_r, qx_min, qx_max, qy_min, qy_max, coord='cartesian', full_cal=True)[source] Get the resolution in polar coordinate ready to plot : qx_value: qx_value value : qy_value: qy_value value : sigma_1: variance in r direction : sigma_2: variance in phi direction : coord: coordinate system of image, ‘polar’ or ‘cartesian’
-
get_intensity
()[source] Get intensity
-
get_intensity_list
()[source] Set wavelength spread
-
get_neutron_mass
()[source] Get Neutron mass
-
get_sample2detector_distance
()[source] Get detector sample2detector_distance
-
get_sample2sample_distance
()[source] Get detector sampleslitsample_distance
-
get_sample_aperture_size
()[source] Get sample aperture size
-
get_source2sample_distance
()[source] Get detector source2sample_distance
-
get_source_aperture_size
()[source] Get source aperture size
-
get_spectrum
()[source] Get _spectrum
-
get_variance
(size=[], distance=0, phi=0, comp='radial')[source] Get the variance when the slit/pinhole size is given : size: list that can be one(diameter for circular) or two components(lengths for rectangular) : distance: [z, x] where z along the incident beam, x // qx_value : comp: direction of the sigma; can be ‘phi’, ‘y’, ‘x’, and ‘radial’
: return variance: sigma^2
-
get_variance_gravity
(s_distance, d_distance, wavelength, spread, phi, comp='radial', switch='on')[source] Get the variance from gravity when the wavelength spread is given
: s_distance: source to sample distance : d_distance: sample to detector distance : wavelength: wavelength : spread: wavelength spread (ratio) : comp: direction of the sigma; can be ‘phi’, ‘y’, ‘x’, and ‘radial’
: return variance: sigma^2
-
get_variance_wave
(A_value, radius, distance, spread, phi, comp='radial', switch='on')[source] Get the variance when the wavelength spread is given
: radius: the radial distance from the beam center to the pix of q : distance: sample to detector distance : spread: wavelength spread (ratio) : comp: direction of the sigma; can be ‘phi’, ‘y’, ‘x’, and ‘radial’
: return variance: sigma^2 for 2d, sigma^2 for 1d [tuple]
-
get_wave_list
()[source] Set wavelength spread
-
get_wavelength
()[source] Get wavelength
-
get_wavelength_spread
()[source] Get wavelength spread
-
plot_image
(image)[source] Plot image using pyplot : image: 2d resolution image
: return plt: pylab object
-
reset_image
()[source] Reset image to default (=[])
-
set_detector_pix_size
(size)[source] Set detector pixel size
-
set_detector_size
(size)[source] Set detector size in number of pixels : param size: [pixel_nums] or [x_pix_num, yx_pix_num]
-
set_intensity
(intensity)[source] Set intensity
-
set_neutron_mass
(mass)[source] Set Neutron mass
-
set_sample2detector_distance
(distance)[source] Set detector sample2detector_distance
: param distance: [distance, x_offset]
-
set_sample2sample_distance
(distance)[source] Set detector sample_slit2sample_distance
: param distance: [distance, x_offset]
-
set_sample_aperture_size
(size)[source] Set sample aperture size
: param size: [dia_value] or [xheight_value, yheight_value]
-
set_source2sample_distance
(distance)[source] Set detector source2sample_distance
: param distance: [distance, x_offset]
-
set_source_aperture_size
(size)[source] Set source aperture size
: param size: [dia_value] or [x_value, y_value]
-
set_spectrum
(spectrum)[source] Set spectrum
-
set_wave
(wavelength)[source] Set wavelength list or wavelength
-
set_wave_list
(wavelength_list, wavelengthspread_list)[source] Set wavelength and its spread list
-
set_wave_spread
(wavelength_spread)[source] Set wavelength spread or wavelength spread
-
set_wavelength
(wavelength)[source] Set wavelength
-
set_wavelength_spread
(wavelength_spread)[source] Set wavelength spread
-
setup_tof
(wavelength, wavelength_spread)[source] Setup all parameters in instrument
: param ind: index of lambda, etc
-
sas.sascalc.calculator.sas_gen module
SAS generic computation and sld file readers
-
class
sas.sascalc.calculator.sas_gen.
GenSAS
[source] Bases:
sas.sascalc.calculator.BaseComponent.BaseComponent
Generic SAS computation Model based on sld (n & m) arrays
-
evalDistribution
(qdist)[source] Evaluate a distribution of q-values.
Parameters: qdist – ndarray of scalar q-values (for 1D) or list [qx,qy] where qx,qy are 1D ndarrays (for 2D).
-
getProfile
()[source] Get SLD profile : return: sld_data
-
run
(x=0.0)[source] Evaluate the model :param x: simple value :return: (I value)
-
runXY
(x=0.0)[source] Evaluate the model :param x: simple value :return: I value :Use this runXY() for the computation
-
set_is_avg
(is_avg=False)[source] Sets is_avg: [bool]
-
set_pixel_volumes
(volume)[source] Set the volume of a pixel in (A^3) unit :Param volume: pixel volume [float]
-
set_sld_data
(sld_data=None)[source] Sets sld_data
-
-
class
sas.sascalc.calculator.sas_gen.
MagSLD
(pos_x, pos_y, pos_z, sld_n=None, sld_mx=None, sld_my=None, sld_mz=None, vol_pix=None)[source] Bases:
object
Magnetic SLD.
-
get_sldn
()[source] Returns nuclear sld
-
pos_x
= None
-
pos_y
= None
-
pos_z
= None
-
set_conect_lines
(line_x, line_y, line_z)[source] Set bonding line data if taken from pdb
-
set_nodes
()[source] Set xnodes, ynodes, and znodes
-
set_pix_type
(pix_type)[source] Set pixel type :Param pix_type: string, ‘pixel’ or ‘atom’
-
set_pixel_symbols
(symbol='pixel')[source] Set pixel :Params pixel: str; pixel or atomic symbol, or array of strings
-
set_pixel_volumes
(vol)[source] Set pixel volumes :Params pixel: str; pixel or atomic symbol, or array of strings
-
set_sldms
(sld_mx, sld_my, sld_mz)[source] Sets mx, my, mz and abs(m).
-
set_sldn
(sld_n)[source] Sets neutron SLD
-
set_stepsize
()[source] Set xtepsize, ystepsize, and zstepsize
-
sld_mx
= None
-
sld_my
= None
-
sld_mz
= None
-
sld_n
= None
-
-
class
sas.sascalc.calculator.sas_gen.
OMF2SLD
[source] Bases:
object
Convert OMFData to MAgData
-
get_magsld
()[source] return MagSLD
-
get_omfdata
()[source] Return all data
-
get_output
()[source] Return output
-
remove_null_points
(remove=False, recenter=False)[source] Removes any mx, my, and mz = 0 points
-
set_data
(omfdata, shape='rectangular')[source] Set all data
-
-
class
sas.sascalc.calculator.sas_gen.
OMFData
[source] Bases:
object
OMF Data.
-
set_m
(mx, my, mz)[source] Set the Mx, My, Mz values
-
-
class
sas.sascalc.calculator.sas_gen.
OMFReader
[source] Bases:
object
Class to load omf/ascii files (3 columns w/header).
-
ext
= ['.omf', '.OMF']
-
read
(path)[source] Load data file :param path: file path :return: x, y, z, sld_n, sld_mx, sld_my, sld_mz
-
type
= ['OMF files (*.OMF, *.omf)|*.omf']
-
type_name
= 'OMF ASCII'
-
-
class
sas.sascalc.calculator.sas_gen.
PDBReader
[source] Bases:
object
PDB reader class: limited for reading the lines starting with ‘ATOM’
-
ext
= ['.pdb', '.PDB']
-
read
(path)[source] Load data file
Parameters: path – file path Returns: MagSLD Raises: RuntimeError – when the file can’t be opened
-
type
= ['pdb files (*.PDB, *.pdb)|*.pdb']
-
type_name
= 'PDB'
-
write
(path, data)[source] Write
-
-
class
sas.sascalc.calculator.sas_gen.
SLDReader
[source] Bases:
object
Class to load ascii files (7 columns).
-
ext
= ['.sld', '.SLD', '.txt', '.TXT', '.*']
-
read
(path)[source] Load data file :param path: file path :return MagSLD: x, y, z, sld_n, sld_mx, sld_my, sld_mz :raise RuntimeError: when the file can’t be opened :raise ValueError: when the length of the data vectors are inconsistent
-
type
= ['sld files (*.SLD, *.sld)|*.sld', 'txt files (*.TXT, *.txt)|*.txt', 'all files (*.*)|*.*']
-
type_name
= 'SLD ASCII'
-
write
(path, data)[source] Write sld file :Param path: file path :Param data: MagSLD data object
-
-
sas.sascalc.calculator.sas_gen.
decode
(s)[source]
-
sas.sascalc.calculator.sas_gen.
mag2sld
(mag, v_unit=None)[source] Convert magnetization to magnatic SLD sldm = Dm * mag where Dm = gamma * classical elec. radius/(2*Bohr magneton) Dm ~ 2.853E-12 [A^(-2)] ==> Shouldn’t be 2.90636E-12 [A^(-2)]???
-
sas.sascalc.calculator.sas_gen.
test
()[source] Test code
-
sas.sascalc.calculator.sas_gen.
test_load
()[source] Test code
-
sas.sascalc.calculator.sas_gen.
test_save
()[source]
-
sas.sascalc.calculator.sas_gen.
transform_center
(pos_x, pos_y, pos_z)[source] re-center :return: posx, posy, posz [arrays]
sas.sascalc.calculator.slit_length_calculator module
This module is a small tool to allow user to quickly determine the slit length value of data.
-
class
sas.sascalc.calculator.slit_length_calculator.
SlitlengthCalculator
[source] Bases:
object
compute slit length from SAXSess beam profile (1st col. Q , 2nd col. I , and 3rd col. dI.: don’t need the 3rd)
-
calculate_slit_length
()[source] Calculate slit length.
Returns: the slit length calculated value.
-
get_slit_length_unit
()[source] Returns: the slit length unit.
-
set_data
(x=None, y=None)[source] - Receive two vector x, y and prepare the slit calculator for computation.
Parameters: - x – array
- y – array
-