schrodinger.application.matsci.gsas.GSASIIpwd module

# Third-party code. No Schrodinger Copyright.

GSASII powder calculation module

schrodinger.application.matsci.gsas.GSASIIpwd.tand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.atand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.atan2d(y, x)
schrodinger.application.matsci.gsas.GSASIIpwd.cosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.acosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.rdsq2d(x, p)
schrodinger.application.matsci.gsas.GSASIIpwd.npsind(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npasind(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npcosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npacosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.nptand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npatand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npatan2d(y, x)
schrodinger.application.matsci.gsas.GSASIIpwd.npT2stl(tth, wave)
schrodinger.application.matsci.gsas.GSASIIpwd.npT2q(tth, wave)
schrodinger.application.matsci.gsas.GSASIIpwd.PhaseWtSum(G2frame, histo)

Calculate sum of phase mass*phase fraction for PWDR data (exclude magnetic phases)

Parameters:
  • G2frame – GSASII main frame structure
  • histo (str) – histogram name
Returns:

sum(scale*mass) for phases in histo

schrodinger.application.matsci.gsas.GSASIIpwd.Transmission(Geometry, Abs, Diam)

Calculate sample transmission

Parameters:
  • Geometry (str) – one of ‘Cylinder’,’Bragg-Brentano’,’Tilting flat plate in transmission’,’Fixed flat plate’
  • Abs (float) – absorption coeff in cm-1
  • Diam (float) – sample thickness/diameter in mm
schrodinger.application.matsci.gsas.GSASIIpwd.SurfaceRough(SRA, SRB, Tth)

Suortti (J. Appl. Cryst, 5,325-331, 1972) surface roughness correction :param float SRA: Suortti surface roughness parameter :param float SRB: Suortti surface roughness parameter :param float Tth: 2-theta(deg) - can be numpy array

schrodinger.application.matsci.gsas.GSASIIpwd.SurfaceRoughDerv(SRA, SRB, Tth)

Suortti surface roughness correction derivatives :param float SRA: Suortti surface roughness parameter (dimensionless) :param float SRB: Suortti surface roughness parameter (dimensionless) :param float Tth: 2-theta(deg) - can be numpy array :return list: [dydSRA,dydSRB] derivatives to be used for intensity derivative

schrodinger.application.matsci.gsas.GSASIIpwd.Absorb(Geometry, MuR, Tth, Phi=0, Psi=0)

Calculate sample absorption :param str Geometry: one of ‘Cylinder’,’Bragg-Brentano’,’Tilting Flat Plate in transmission’,’Fixed flat plate’ :param float MuR: absorption coeff * sample thickness/2 or radius :param Tth: 2-theta scattering angle - can be numpy array :param float Phi: flat plate tilt angle - future :param float Psi: flat plate tilt axis - future

schrodinger.application.matsci.gsas.GSASIIpwd.AbsorbDerv(Geometry, MuR, Tth, Phi=0, Psi=0)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.Polarization(Pola, Tth, Azm=0.0)

Calculate angle dependent x-ray polarization correction (not scaled correctly!)

Parameters:
  • Pola – polarization coefficient e.g 1.0 fully polarized, 0.5 unpolarized
  • Azm – azimuthal angle e.g. 0.0 in plane of polarization
  • Tth – 2-theta scattering angle - can be numpy array which (if either) of these is “right”?
Returns:

(pola, dpdPola) * pola = ((1-Pola)*npcosd(Azm)**2+Pola*npsind(Azm)**2)*npcosd(Tth)**2+ (1-Pola)*npsind(Azm)**2+Pola*npcosd(Azm)**2 * dpdPola: derivative needed for least squares

schrodinger.application.matsci.gsas.GSASIIpwd.Oblique(ObCoeff, Tth)

currently assumes detector is normal to beam

schrodinger.application.matsci.gsas.GSASIIpwd.Ruland(RulCoff, wave, Q, Compton)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.LorchWeight(Q)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.GetAsfMean(ElList, Sthl2)

Calculate various scattering factor terms for PDF calcs

Parameters:
  • ElList (dict) – element dictionary contains scattering factor coefficients, etc.
  • Sthl2 (np.array) – numpy array of sin theta/lambda squared values
Returns:

mean(f^2), mean(f)^2, mean(compton)

schrodinger.application.matsci.gsas.GSASIIpwd.GetNumDensity(ElList, Vol)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.CalcPDF(data, inst, limits, xydata)

Computes I(Q), S(Q) & G(r) from Sample, Bkg, etc. diffraction patterns loaded into dict xydata; results are placed in xydata. Calculation parameters are found in dicts data and inst and list limits. The return value is at present an empty list.

schrodinger.application.matsci.gsas.GSASIIpwd.PDFPeakFit(peaks, data)
schrodinger.application.matsci.gsas.GSASIIpwd.MakeRDF(RDFcontrols, background, inst, pwddata)
schrodinger.application.matsci.gsas.GSASIIpwd.OptimizePDF(data, xydata, limits, inst, showFit=True, maxCycles=5)
schrodinger.application.matsci.gsas.GSASIIpwd.SetupPDFEval(data, xydata, limits, inst, numbDen)
schrodinger.application.matsci.gsas.GSASIIpwd.factorize(num)

Provide prime number factors for integer num :returns: dictionary of prime factors (keys) & power for each (data)

schrodinger.application.matsci.gsas.GSASIIpwd.makeFFTsizeList(nmin=1, nmax=1023, thresh=15)

Provide list of optimal data sizes for FFT calculations

Parameters:
  • nmin (int) – minimum data size >= 1
  • nmax (int) – maximum data size > nmin
  • thresh (int) – maximum prime factor allowed
Returns:

list of data sizes where the maximum prime factor is < thresh

class schrodinger.application.matsci.gsas.GSASIIpwd.norm_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Bases: scipy.stats._distn_infrastructure.rv_continuous

needs a doc string

pdf(x, *args, **kwds)

Probability density function at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
pdf : ndarray
Probability density function evaluated at x
__init__(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Initialize self. See help(type(self)) for accurate signature.

cdf(x, *args, **kwds)

Cumulative distribution function of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
cdf : ndarray
Cumulative distribution function evaluated at x
entropy(*args, **kwds)

Differential entropy of the RV.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
Location parameter (default=0).
scale : array_like, optional (continuous distributions only).
Scale parameter (default=1).

Entropy is defined base e:

>>> drv = rv_discrete(values=((0, 1), (0.5, 0.5)))
>>> np.allclose(drv.entropy(), np.log(2.0))
True
expect(func=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

Calculate expected value of a function with respect to the distribution by numerical integration.

The expected value of a function f(x) with respect to a distribution dist is defined as:

        ub
E[f(x)] = Integral(f(x) * dist.pdf(x)),
        lb

where ub and lb are arguments and x has the dist.pdf(x) distribution. If the bounds lb and ub correspond to the support of the distribution, e.g. [-inf, inf] in the default case, then the integral is the unrestricted expectation of f(x). Also, the function f(x) may be defined such that f(x) is 0 outside a finite interval in which case the expectation is calculated within the finite range [lb, ub].

func : callable, optional
Function for which integral is calculated. Takes only one argument. The default is the identity mapping f(x) = x.
args : tuple, optional
Shape parameters of the distribution.
loc : float, optional
Location parameter (default=0).
scale : float, optional
Scale parameter (default=1).
lb, ub : scalar, optional
Lower and upper bound for integration. Default is set to the support of the distribution.
conditional : bool, optional
If True, the integral is corrected by the conditional probability of the integration interval. The return value is the expectation of the function, conditional on being in the given interval. Default is False.

Additional keyword arguments are passed to the integration routine.

expect : float
The calculated expected value.

The integration behavior of this function is inherited from scipy.integrate.quad. Neither this function nor scipy.integrate.quad can verify whether the integral exists or is finite. For example cauchy(0).mean() returns np.nan and cauchy(0).expect() returns 0.0.

To understand the effect of the bounds of integration consider

>>> from scipy.stats import expon
>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0)
0.6321205588285578

This is close to

>>> expon(1).cdf(2.0) - expon(1).cdf(0.0)
0.6321205588285577

If conditional=True

>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0, conditional=True)
1.0000000000000002

The slight deviation from 1 is due to numerical integration.

fit(data, *args, **kwds)

Return MLEs for shape (if applicable), location, and scale parameters from data.

MLE stands for Maximum Likelihood Estimate. Starting estimates for the fit are given by input arguments; for any arguments not provided with starting estimates, self._fitstart(data) is called to generate such.

One can hold some parameters fixed to specific values by passing in keyword arguments f0, f1, …, fn (for shape parameters) and floc and fscale (for location and scale parameters, respectively).

data : array_like
Data to use in calculating the MLEs.
args : floats, optional
Starting value(s) for any shape-characterizing arguments (those not provided will be determined by a call to _fitstart(data)). No default value.
kwds : floats, optional

Starting values for the location and scale parameters; no default. Special keyword arguments are recognized as holding certain parameters fixed:

  • f0…fn : hold respective shape parameters fixed. Alternatively, shape parameters to fix can be specified by name. For example, if self.shapes == "a, b", fa``and ``fix_a are equivalent to f0, and fb and fix_b are equivalent to f1.
  • floc : hold location parameter fixed to specified value.
  • fscale : hold scale parameter fixed to specified value.
  • optimizer : The optimizer to use. The optimizer must take func, and starting position as the first two arguments, plus args (for extra arguments to pass to the function to be optimized) and disp=0 to suppress output as keyword arguments.
mle_tuple : tuple of floats
MLEs for any shape parameters (if applicable), followed by those for location and scale. For most random variables, shape statistics will be returned, but there are exceptions (e.g. norm).

This fit is computed by maximizing a log-likelihood function, with penalty applied for samples outside of range of the distribution. The returned answer is not guaranteed to be the globally optimal MLE, it may only be locally optimal, or the optimization may fail altogether. If the data contain any of np.nan, np.inf, or -np.inf, the fit routine will throw a RuntimeError.

Generate some data to fit: draw random variates from the beta distribution

>>> from scipy.stats import beta
>>> a, b = 1., 2.
>>> x = beta.rvs(a, b, size=1000)

Now we can fit all four parameters (a, b, loc and scale):

>>> a1, b1, loc1, scale1 = beta.fit(x)

We can also use some prior knowledge about the dataset: let’s keep loc and scale fixed:

>>> a1, b1, loc1, scale1 = beta.fit(x, floc=0, fscale=1)
>>> loc1, scale1
(0, 1)

We can also keep shape parameters fixed by using f-keywords. To keep the zero-th shape parameter a equal 1, use f0=1 or, equivalently, fa=1:

>>> a1, b1, loc1, scale1 = beta.fit(x, fa=1, floc=0, fscale=1)
>>> a1
1

Not all distributions return estimates for the shape parameters. norm for example just returns estimates for location and scale:

>>> from scipy.stats import norm
>>> x = norm.rvs(a, b, size=1000, random_state=123)
>>> loc1, scale1 = norm.fit(x)
>>> loc1, scale1
(0.92087172783841631, 2.0015750750324668)
fit_loc_scale(data, *args)

Estimate loc and scale parameters from data using 1st and 2nd moments.

data : array_like
Data to fit.
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
Lhat : float
Estimated location parameter for the data.
Shat : float
Estimated scale parameter for the data.
freeze(*args, **kwds)

Freeze the distribution for the given arguments.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution. Should include all the non-optional arguments, may include loc and scale.
rv_frozen : rv_frozen instance
The frozen distribution.
interval(alpha, *args, **kwds)

Confidence interval with equal areas around the median.

alpha : array_like of float
Probability that an rv will be drawn from the returned range. Each value should be in the range [0, 1].
arg1, arg2, … : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter, Default is 0.
scale : array_like, optional
scale parameter, Default is 1.
a, b : ndarray of float
end-points of range that contain 100 * alpha % of the rv’s possible values.
isf(q, *args, **kwds)

Inverse survival function (inverse of sf) at q of the given RV.

q : array_like
upper tail probability
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
x : ndarray or scalar
Quantile corresponding to the upper tail probability q.
logcdf(x, *args, **kwds)

Log of the cumulative distribution function at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logcdf : array_like
Log of the cumulative distribution function evaluated at x
logpdf(x, *args, **kwds)

Log of the probability density function at x of the given RV.

This uses a more numerically accurate calculation if available.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logpdf : array_like
Log of the probability density function evaluated at x
logsf(x, *args, **kwds)

Log of the survival function of the given RV.

Returns the log of the “survival function,” defined as (1 - cdf), evaluated at x.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logsf : ndarray
Log of the survival function evaluated at x.
mean(*args, **kwds)

Mean of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
mean : float
the mean of the distribution
median(*args, **kwds)

Median of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
Location parameter, Default is 0.
scale : array_like, optional
Scale parameter, Default is 1.
median : float
The median of the distribution.
rv_discrete.ppf
Inverse of the CDF
moment(n, *args, **kwds)

n-th order non-central moment of distribution.

n : int, n >= 1
Order of moment.
arg1, arg2, arg3,… : float
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
nnlf(theta, x)

Return negative loglikelihood function.

This is -sum(log pdf(x, theta), axis=0) where theta are the parameters (including loc and scale).

ppf(q, *args, **kwds)

Percent point function (inverse of cdf) at q of the given RV.

q : array_like
lower tail probability
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
x : array_like
quantile corresponding to the lower tail probability q.
random_state

Get or set the RandomState object for generating random variates.

This can be either None or an existing RandomState object.

If None (or np.random), use the RandomState singleton used by np.random. If already a RandomState instance, use it. If an int, use a new RandomState instance seeded with seed.

rvs(*args, **kwds)

Random variates of given type.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
Location parameter (default=0).
scale : array_like, optional
Scale parameter (default=1).
size : int or tuple of ints, optional
Defining number of random variates (default is 1).
random_state : None or int or np.random.RandomState instance, optional
If int or RandomState, use it for drawing the random variates. If None, rely on self.random_state. Default is None.
rvs : ndarray or scalar
Random variates of given size.
sf(x, *args, **kwds)

Survival function (1 - cdf) at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
sf : array_like
Survival function evaluated at x
stats(*args, **kwds)

Some statistics of the given RV.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional (continuous RVs only)
scale parameter (default=1)
moments : str, optional
composed of letters [‘mvsk’] defining which moments to compute: ‘m’ = mean, ‘v’ = variance, ‘s’ = (Fisher’s) skew, ‘k’ = (Fisher’s) kurtosis. (default is ‘mv’)
stats : sequence
of requested moments.
std(*args, **kwds)

Standard deviation of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
std : float
standard deviation of the distribution
support(*args, **kwargs)

Return the support of the distribution.

arg1, arg2, … : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter, Default is 0.
scale : array_like, optional
scale parameter, Default is 1.
a, b : float
end-points of the distribution’s support.
var(*args, **kwds)

Variance of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
var : float
the variance of the distribution
class schrodinger.application.matsci.gsas.GSASIIpwd.cauchy_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Bases: scipy.stats._distn_infrastructure.rv_continuous

needs a doc string

pdf(x, *args, **kwds)

Probability density function at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
pdf : ndarray
Probability density function evaluated at x
__init__(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Initialize self. See help(type(self)) for accurate signature.

cdf(x, *args, **kwds)

Cumulative distribution function of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
cdf : ndarray
Cumulative distribution function evaluated at x
entropy(*args, **kwds)

Differential entropy of the RV.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
Location parameter (default=0).
scale : array_like, optional (continuous distributions only).
Scale parameter (default=1).

Entropy is defined base e:

>>> drv = rv_discrete(values=((0, 1), (0.5, 0.5)))
>>> np.allclose(drv.entropy(), np.log(2.0))
True
expect(func=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

Calculate expected value of a function with respect to the distribution by numerical integration.

The expected value of a function f(x) with respect to a distribution dist is defined as:

        ub
E[f(x)] = Integral(f(x) * dist.pdf(x)),
        lb

where ub and lb are arguments and x has the dist.pdf(x) distribution. If the bounds lb and ub correspond to the support of the distribution, e.g. [-inf, inf] in the default case, then the integral is the unrestricted expectation of f(x). Also, the function f(x) may be defined such that f(x) is 0 outside a finite interval in which case the expectation is calculated within the finite range [lb, ub].

func : callable, optional
Function for which integral is calculated. Takes only one argument. The default is the identity mapping f(x) = x.
args : tuple, optional
Shape parameters of the distribution.
loc : float, optional
Location parameter (default=0).
scale : float, optional
Scale parameter (default=1).
lb, ub : scalar, optional
Lower and upper bound for integration. Default is set to the support of the distribution.
conditional : bool, optional
If True, the integral is corrected by the conditional probability of the integration interval. The return value is the expectation of the function, conditional on being in the given interval. Default is False.

Additional keyword arguments are passed to the integration routine.

expect : float
The calculated expected value.

The integration behavior of this function is inherited from scipy.integrate.quad. Neither this function nor scipy.integrate.quad can verify whether the integral exists or is finite. For example cauchy(0).mean() returns np.nan and cauchy(0).expect() returns 0.0.

To understand the effect of the bounds of integration consider

>>> from scipy.stats import expon
>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0)
0.6321205588285578

This is close to

>>> expon(1).cdf(2.0) - expon(1).cdf(0.0)
0.6321205588285577

If conditional=True

>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0, conditional=True)
1.0000000000000002

The slight deviation from 1 is due to numerical integration.

fit(data, *args, **kwds)

Return MLEs for shape (if applicable), location, and scale parameters from data.

MLE stands for Maximum Likelihood Estimate. Starting estimates for the fit are given by input arguments; for any arguments not provided with starting estimates, self._fitstart(data) is called to generate such.

One can hold some parameters fixed to specific values by passing in keyword arguments f0, f1, …, fn (for shape parameters) and floc and fscale (for location and scale parameters, respectively).

data : array_like
Data to use in calculating the MLEs.
args : floats, optional
Starting value(s) for any shape-characterizing arguments (those not provided will be determined by a call to _fitstart(data)). No default value.
kwds : floats, optional

Starting values for the location and scale parameters; no default. Special keyword arguments are recognized as holding certain parameters fixed:

  • f0…fn : hold respective shape parameters fixed. Alternatively, shape parameters to fix can be specified by name. For example, if self.shapes == "a, b", fa``and ``fix_a are equivalent to f0, and fb and fix_b are equivalent to f1.
  • floc : hold location parameter fixed to specified value.
  • fscale : hold scale parameter fixed to specified value.
  • optimizer : The optimizer to use. The optimizer must take func, and starting position as the first two arguments, plus args (for extra arguments to pass to the function to be optimized) and disp=0 to suppress output as keyword arguments.
mle_tuple : tuple of floats
MLEs for any shape parameters (if applicable), followed by those for location and scale. For most random variables, shape statistics will be returned, but there are exceptions (e.g. norm).

This fit is computed by maximizing a log-likelihood function, with penalty applied for samples outside of range of the distribution. The returned answer is not guaranteed to be the globally optimal MLE, it may only be locally optimal, or the optimization may fail altogether. If the data contain any of np.nan, np.inf, or -np.inf, the fit routine will throw a RuntimeError.

Generate some data to fit: draw random variates from the beta distribution

>>> from scipy.stats import beta
>>> a, b = 1., 2.
>>> x = beta.rvs(a, b, size=1000)

Now we can fit all four parameters (a, b, loc and scale):

>>> a1, b1, loc1, scale1 = beta.fit(x)

We can also use some prior knowledge about the dataset: let’s keep loc and scale fixed:

>>> a1, b1, loc1, scale1 = beta.fit(x, floc=0, fscale=1)
>>> loc1, scale1
(0, 1)

We can also keep shape parameters fixed by using f-keywords. To keep the zero-th shape parameter a equal 1, use f0=1 or, equivalently, fa=1:

>>> a1, b1, loc1, scale1 = beta.fit(x, fa=1, floc=0, fscale=1)
>>> a1
1

Not all distributions return estimates for the shape parameters. norm for example just returns estimates for location and scale:

>>> from scipy.stats import norm
>>> x = norm.rvs(a, b, size=1000, random_state=123)
>>> loc1, scale1 = norm.fit(x)
>>> loc1, scale1
(0.92087172783841631, 2.0015750750324668)
fit_loc_scale(data, *args)

Estimate loc and scale parameters from data using 1st and 2nd moments.

data : array_like
Data to fit.
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
Lhat : float
Estimated location parameter for the data.
Shat : float
Estimated scale parameter for the data.
freeze(*args, **kwds)

Freeze the distribution for the given arguments.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution. Should include all the non-optional arguments, may include loc and scale.
rv_frozen : rv_frozen instance
The frozen distribution.
interval(alpha, *args, **kwds)

Confidence interval with equal areas around the median.

alpha : array_like of float
Probability that an rv will be drawn from the returned range. Each value should be in the range [0, 1].
arg1, arg2, … : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter, Default is 0.
scale : array_like, optional
scale parameter, Default is 1.
a, b : ndarray of float
end-points of range that contain 100 * alpha % of the rv’s possible values.
isf(q, *args, **kwds)

Inverse survival function (inverse of sf) at q of the given RV.

q : array_like
upper tail probability
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
x : ndarray or scalar
Quantile corresponding to the upper tail probability q.
logcdf(x, *args, **kwds)

Log of the cumulative distribution function at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logcdf : array_like
Log of the cumulative distribution function evaluated at x
logpdf(x, *args, **kwds)

Log of the probability density function at x of the given RV.

This uses a more numerically accurate calculation if available.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logpdf : array_like
Log of the probability density function evaluated at x
logsf(x, *args, **kwds)

Log of the survival function of the given RV.

Returns the log of the “survival function,” defined as (1 - cdf), evaluated at x.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logsf : ndarray
Log of the survival function evaluated at x.
mean(*args, **kwds)

Mean of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
mean : float
the mean of the distribution
median(*args, **kwds)

Median of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
Location parameter, Default is 0.
scale : array_like, optional
Scale parameter, Default is 1.
median : float
The median of the distribution.
rv_discrete.ppf
Inverse of the CDF
moment(n, *args, **kwds)

n-th order non-central moment of distribution.

n : int, n >= 1
Order of moment.
arg1, arg2, arg3,… : float
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
nnlf(theta, x)

Return negative loglikelihood function.

This is -sum(log pdf(x, theta), axis=0) where theta are the parameters (including loc and scale).

ppf(q, *args, **kwds)

Percent point function (inverse of cdf) at q of the given RV.

q : array_like
lower tail probability
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
x : array_like
quantile corresponding to the lower tail probability q.
random_state

Get or set the RandomState object for generating random variates.

This can be either None or an existing RandomState object.

If None (or np.random), use the RandomState singleton used by np.random. If already a RandomState instance, use it. If an int, use a new RandomState instance seeded with seed.

rvs(*args, **kwds)

Random variates of given type.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
Location parameter (default=0).
scale : array_like, optional
Scale parameter (default=1).
size : int or tuple of ints, optional
Defining number of random variates (default is 1).
random_state : None or int or np.random.RandomState instance, optional
If int or RandomState, use it for drawing the random variates. If None, rely on self.random_state. Default is None.
rvs : ndarray or scalar
Random variates of given size.
sf(x, *args, **kwds)

Survival function (1 - cdf) at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
sf : array_like
Survival function evaluated at x
stats(*args, **kwds)

Some statistics of the given RV.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional (continuous RVs only)
scale parameter (default=1)
moments : str, optional
composed of letters [‘mvsk’] defining which moments to compute: ‘m’ = mean, ‘v’ = variance, ‘s’ = (Fisher’s) skew, ‘k’ = (Fisher’s) kurtosis. (default is ‘mv’)
stats : sequence
of requested moments.
std(*args, **kwds)

Standard deviation of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
std : float
standard deviation of the distribution
support(*args, **kwargs)

Return the support of the distribution.

arg1, arg2, … : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter, Default is 0.
scale : array_like, optional
scale parameter, Default is 1.
a, b : float
end-points of the distribution’s support.
var(*args, **kwds)

Variance of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
var : float
the variance of the distribution
class schrodinger.application.matsci.gsas.GSASIIpwd.fcjde_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Bases: scipy.stats._distn_infrastructure.rv_continuous

Finger-Cox-Jephcoat D(2phi,2th) function for S/L = H/L Ref: J. Appl. Cryst. (1994) 27, 892-900.

Parameters:
  • x – array -1 to 1
  • t – 2-theta position of peak
  • s – sum(S/L,H/L); S: sample height, H: detector opening, L: sample to detector opening distance
  • dx – 2-theta step size in deg
Returns:

for fcj.pdf

  • T = x*dx+t

  • s = S/L+H/L

  • if x < 0:

    fcj.pdf = [1/sqrt({cos(T)**2/cos(t)**2}-1) - 1/s]/|cos(T)| 
    
  • if x >= 0: fcj.pdf = 0

pdf(x, *args, **kwds)

Probability density function at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
pdf : ndarray
Probability density function evaluated at x
__init__(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Initialize self. See help(type(self)) for accurate signature.

cdf(x, *args, **kwds)

Cumulative distribution function of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
cdf : ndarray
Cumulative distribution function evaluated at x
entropy(*args, **kwds)

Differential entropy of the RV.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
Location parameter (default=0).
scale : array_like, optional (continuous distributions only).
Scale parameter (default=1).

Entropy is defined base e:

>>> drv = rv_discrete(values=((0, 1), (0.5, 0.5)))
>>> np.allclose(drv.entropy(), np.log(2.0))
True
expect(func=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

Calculate expected value of a function with respect to the distribution by numerical integration.

The expected value of a function f(x) with respect to a distribution dist is defined as:

        ub
E[f(x)] = Integral(f(x) * dist.pdf(x)),
        lb

where ub and lb are arguments and x has the dist.pdf(x) distribution. If the bounds lb and ub correspond to the support of the distribution, e.g. [-inf, inf] in the default case, then the integral is the unrestricted expectation of f(x). Also, the function f(x) may be defined such that f(x) is 0 outside a finite interval in which case the expectation is calculated within the finite range [lb, ub].

func : callable, optional
Function for which integral is calculated. Takes only one argument. The default is the identity mapping f(x) = x.
args : tuple, optional
Shape parameters of the distribution.
loc : float, optional
Location parameter (default=0).
scale : float, optional
Scale parameter (default=1).
lb, ub : scalar, optional
Lower and upper bound for integration. Default is set to the support of the distribution.
conditional : bool, optional
If True, the integral is corrected by the conditional probability of the integration interval. The return value is the expectation of the function, conditional on being in the given interval. Default is False.

Additional keyword arguments are passed to the integration routine.

expect : float
The calculated expected value.

The integration behavior of this function is inherited from scipy.integrate.quad. Neither this function nor scipy.integrate.quad can verify whether the integral exists or is finite. For example cauchy(0).mean() returns np.nan and cauchy(0).expect() returns 0.0.

To understand the effect of the bounds of integration consider

>>> from scipy.stats import expon
>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0)
0.6321205588285578

This is close to

>>> expon(1).cdf(2.0) - expon(1).cdf(0.0)
0.6321205588285577

If conditional=True

>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0, conditional=True)
1.0000000000000002

The slight deviation from 1 is due to numerical integration.

fit(data, *args, **kwds)

Return MLEs for shape (if applicable), location, and scale parameters from data.

MLE stands for Maximum Likelihood Estimate. Starting estimates for the fit are given by input arguments; for any arguments not provided with starting estimates, self._fitstart(data) is called to generate such.

One can hold some parameters fixed to specific values by passing in keyword arguments f0, f1, …, fn (for shape parameters) and floc and fscale (for location and scale parameters, respectively).

data : array_like
Data to use in calculating the MLEs.
args : floats, optional
Starting value(s) for any shape-characterizing arguments (those not provided will be determined by a call to _fitstart(data)). No default value.
kwds : floats, optional

Starting values for the location and scale parameters; no default. Special keyword arguments are recognized as holding certain parameters fixed:

  • f0…fn : hold respective shape parameters fixed. Alternatively, shape parameters to fix can be specified by name. For example, if self.shapes == "a, b", fa``and ``fix_a are equivalent to f0, and fb and fix_b are equivalent to f1.
  • floc : hold location parameter fixed to specified value.
  • fscale : hold scale parameter fixed to specified value.
  • optimizer : The optimizer to use. The optimizer must take func, and starting position as the first two arguments, plus args (for extra arguments to pass to the function to be optimized) and disp=0 to suppress output as keyword arguments.
mle_tuple : tuple of floats
MLEs for any shape parameters (if applicable), followed by those for location and scale. For most random variables, shape statistics will be returned, but there are exceptions (e.g. norm).

This fit is computed by maximizing a log-likelihood function, with penalty applied for samples outside of range of the distribution. The returned answer is not guaranteed to be the globally optimal MLE, it may only be locally optimal, or the optimization may fail altogether. If the data contain any of np.nan, np.inf, or -np.inf, the fit routine will throw a RuntimeError.

Generate some data to fit: draw random variates from the beta distribution

>>> from scipy.stats import beta
>>> a, b = 1., 2.
>>> x = beta.rvs(a, b, size=1000)

Now we can fit all four parameters (a, b, loc and scale):

>>> a1, b1, loc1, scale1 = beta.fit(x)

We can also use some prior knowledge about the dataset: let’s keep loc and scale fixed:

>>> a1, b1, loc1, scale1 = beta.fit(x, floc=0, fscale=1)
>>> loc1, scale1
(0, 1)

We can also keep shape parameters fixed by using f-keywords. To keep the zero-th shape parameter a equal 1, use f0=1 or, equivalently, fa=1:

>>> a1, b1, loc1, scale1 = beta.fit(x, fa=1, floc=0, fscale=1)
>>> a1
1

Not all distributions return estimates for the shape parameters. norm for example just returns estimates for location and scale:

>>> from scipy.stats import norm
>>> x = norm.rvs(a, b, size=1000, random_state=123)
>>> loc1, scale1 = norm.fit(x)
>>> loc1, scale1
(0.92087172783841631, 2.0015750750324668)
fit_loc_scale(data, *args)

Estimate loc and scale parameters from data using 1st and 2nd moments.

data : array_like
Data to fit.
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
Lhat : float
Estimated location parameter for the data.
Shat : float
Estimated scale parameter for the data.
freeze(*args, **kwds)

Freeze the distribution for the given arguments.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution. Should include all the non-optional arguments, may include loc and scale.
rv_frozen : rv_frozen instance
The frozen distribution.
interval(alpha, *args, **kwds)

Confidence interval with equal areas around the median.

alpha : array_like of float
Probability that an rv will be drawn from the returned range. Each value should be in the range [0, 1].
arg1, arg2, … : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter, Default is 0.
scale : array_like, optional
scale parameter, Default is 1.
a, b : ndarray of float
end-points of range that contain 100 * alpha % of the rv’s possible values.
isf(q, *args, **kwds)

Inverse survival function (inverse of sf) at q of the given RV.

q : array_like
upper tail probability
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
x : ndarray or scalar
Quantile corresponding to the upper tail probability q.
logcdf(x, *args, **kwds)

Log of the cumulative distribution function at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logcdf : array_like
Log of the cumulative distribution function evaluated at x
logpdf(x, *args, **kwds)

Log of the probability density function at x of the given RV.

This uses a more numerically accurate calculation if available.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logpdf : array_like
Log of the probability density function evaluated at x
logsf(x, *args, **kwds)

Log of the survival function of the given RV.

Returns the log of the “survival function,” defined as (1 - cdf), evaluated at x.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
logsf : ndarray
Log of the survival function evaluated at x.
mean(*args, **kwds)

Mean of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
mean : float
the mean of the distribution
median(*args, **kwds)

Median of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
Location parameter, Default is 0.
scale : array_like, optional
Scale parameter, Default is 1.
median : float
The median of the distribution.
rv_discrete.ppf
Inverse of the CDF
moment(n, *args, **kwds)

n-th order non-central moment of distribution.

n : int, n >= 1
Order of moment.
arg1, arg2, arg3,… : float
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
nnlf(theta, x)

Return negative loglikelihood function.

This is -sum(log pdf(x, theta), axis=0) where theta are the parameters (including loc and scale).

ppf(q, *args, **kwds)

Percent point function (inverse of cdf) at q of the given RV.

q : array_like
lower tail probability
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
x : array_like
quantile corresponding to the lower tail probability q.
random_state

Get or set the RandomState object for generating random variates.

This can be either None or an existing RandomState object.

If None (or np.random), use the RandomState singleton used by np.random. If already a RandomState instance, use it. If an int, use a new RandomState instance seeded with seed.

rvs(*args, **kwds)

Random variates of given type.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
Location parameter (default=0).
scale : array_like, optional
Scale parameter (default=1).
size : int or tuple of ints, optional
Defining number of random variates (default is 1).
random_state : None or int or np.random.RandomState instance, optional
If int or RandomState, use it for drawing the random variates. If None, rely on self.random_state. Default is None.
rvs : ndarray or scalar
Random variates of given size.
sf(x, *args, **kwds)

Survival function (1 - cdf) at x of the given RV.

x : array_like
quantiles
arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
sf : array_like
Survival function evaluated at x
stats(*args, **kwds)

Some statistics of the given RV.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional (continuous RVs only)
scale parameter (default=1)
moments : str, optional
composed of letters [‘mvsk’] defining which moments to compute: ‘m’ = mean, ‘v’ = variance, ‘s’ = (Fisher’s) skew, ‘k’ = (Fisher’s) kurtosis. (default is ‘mv’)
stats : sequence
of requested moments.
std(*args, **kwds)

Standard deviation of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
std : float
standard deviation of the distribution
support(*args, **kwargs)

Return the support of the distribution.

arg1, arg2, … : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information).
loc : array_like, optional
location parameter, Default is 0.
scale : array_like, optional
scale parameter, Default is 1.
a, b : float
end-points of the distribution’s support.
var(*args, **kwds)

Variance of the distribution.

arg1, arg2, arg3,… : array_like
The shape parameter(s) for the distribution (see docstring of the instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
var : float
the variance of the distribution
schrodinger.application.matsci.gsas.GSASIIpwd.getWidthsCW(pos, sig, gam, shl)

Compute the peak widths used for computing the range of a peak for constant wavelength data. On low-angle side, 50 FWHM are used, on high-angle side 75 are used, low angle side extended for axial divergence (for peaks above 90 deg, these are reversed.)

schrodinger.application.matsci.gsas.GSASIIpwd.getWidthsTOF(pos, alp, bet, sig, gam)

Compute the peak widths used for computing the range of a peak for constant wavelength data. 50 FWHM are used on both sides each extended by exponential coeff.

schrodinger.application.matsci.gsas.GSASIIpwd.getFWHM(pos, Inst)

Compute total FWHM from Thompson, Cox & Hastings (1987) , J. Appl. Cryst. 20, 79-83 via getgamFW(g,s).

Parameters:
  • pos – float peak position in deg 2-theta or tof in musec
  • Inst – dict instrument parameters
Returns float:

total FWHM of pseudoVoigt in deg or musec

schrodinger.application.matsci.gsas.GSASIIpwd.getgamFW(g, s)

Compute total FWHM from Thompson, Cox & Hastings (1987), J. Appl. Cryst. 20, 79-83 lambda fxn needs FWHM for both Gaussian & Lorentzian components

Parameters:
  • g – float Lorentzian gamma = FWHM(L)
  • s – float Gaussian sig
Returns float:

total FWHM of pseudoVoigt

schrodinger.application.matsci.gsas.GSASIIpwd.getFCJVoigt(pos, intens, sig, gam, shl, xdata)

Compute the Finger-Cox-Jepcoat modified Voigt function for a CW powder peak by direct convolution. This version is not used.

schrodinger.application.matsci.gsas.GSASIIpwd.getBackground(pfx, parmDict, bakType, dataType, xdata, fixedBkg={})

Computes the background from vars pulled from gpx file or tree.

schrodinger.application.matsci.gsas.GSASIIpwd.getBackgroundDerv(hfx, parmDict, bakType, dataType, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getFCJVoigt3(pos, sig, gam, shl, xdata)

Compute the Finger-Cox-Jepcoat modified Pseudo-Voigt function for a CW powder peak in external Fortran routine

schrodinger.application.matsci.gsas.GSASIIpwd.getdFCJVoigt3(pos, sig, gam, shl, xdata)

Compute analytic derivatives the Finger-Cox-Jepcoat modified Pseudo-Voigt function for a CW powder peak

schrodinger.application.matsci.gsas.GSASIIpwd.getPsVoigt(pos, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getdPsVoigt(pos, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getEpsVoigt(pos, alp, bet, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getdEpsVoigt(pos, alp, bet, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.ellipseSize(H, Sij, GB)

Implements r=1/sqrt(sum((1/S)*(q.v)^2) per note from Alexander Brady

schrodinger.application.matsci.gsas.GSASIIpwd.ellipseSizeDerv(H, Sij, GB)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getHKLpeak(dmin, SGData, A, Inst=None, nodup=False)

Generates allowed by symmetry reflections with d >= dmin NB: GenHKLf & checkMagextc return True for extinct reflections

Parameters:
  • dmin – minimum d-spacing
  • SGData – space group data obtained from SpcGroup
  • A – lattice parameter terms A1-A6
  • Inst – instrument parameter info
Returns:

HKLs: np.array hkl, etc for allowed reflections

schrodinger.application.matsci.gsas.GSASIIpwd.getHKLMpeak(dmin, Inst, SGData, SSGData, Vec, maxH, A)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getPeakProfile(dataType, parmDict, xdata, varyList, bakType)

Computes the profile for a powder pattern

schrodinger.application.matsci.gsas.GSASIIpwd.getPeakProfileDerv(dataType, parmDict, xdata, varyList, bakType)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.Dict2Values(parmdict, varylist)

Use before call to leastsq to setup list of values for the parameters in parmdict, as selected by key in varylist

schrodinger.application.matsci.gsas.GSASIIpwd.Values2Dict(parmdict, varylist, values)

Use after call to leastsq to update the parameter dictionary with values corresponding to keys in varylist

schrodinger.application.matsci.gsas.GSASIIpwd.SetBackgroundParms(Background)

Loads background parameters into dicts/lists to create varylist & parmdict

schrodinger.application.matsci.gsas.GSASIIpwd.DoCalibInst(IndexPeaks, Inst)
schrodinger.application.matsci.gsas.GSASIIpwd.DoPeakFit(FitPgm, Peaks, Background, Limits, Inst, Inst2, data, fixback=None, prevVaryList=[], oneCycle=False, controls=None, dlg=None)

Called to perform a peak fit, refining the selected items in the peak table as well as selected items in the background.

Parameters:
  • FitPgm (str) – type of fit to perform. At present this is ignored.
  • Peaks (list) – a list of peaks. Each peak entry is a list with 8 values: four values followed by a refine flag where the values are: position, intensity, sigma (Gaussian width) and gamma (Lorentzian width). From the Histogram/”Peak List” tree entry, dict item “peaks”
  • Background (list) – describes the background. List with two items. Item 0 specifies a background model and coefficients. Item 1 is a dict. From the Histogram/Background tree entry.
  • Limits (list) – min and max x-value to use
  • Inst (dict) – Instrument parameters
  • Inst2 (dict) – more Instrument parameters
  • data (numpy.array) – a 5xn array. data[0] is the x-values, data[1] is the y-values, data[2] are weight values, data[3], [4] and [5] are calc, background and difference intensities, respectively.
  • fixback (array) – fixed background values
  • prevVaryList (list) – Used in sequential refinements to override the variable list. Defaults as an empty list.
  • oneCycle (bool) – True if only one cycle of fitting should be performed
  • controls (dict) – a dict specifying two values, Ftol = controls[‘min dM/M’] and derivType = controls[‘deriv type’]. If None default values are used.
  • dlg (wx.Dialog) – A dialog box that is updated with progress from the fit. Defaults to None, which means no updates are done.
schrodinger.application.matsci.gsas.GSASIIpwd.calcIncident(Iparm, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.REFDRefine(Profile, ProfDict, Inst, Limits, Substances, data)
schrodinger.application.matsci.gsas.GSASIIpwd.makeSLDprofile(data, Substances)
schrodinger.application.matsci.gsas.GSASIIpwd.REFDModelFxn(Profile, Inst, Limits, Substances, data)
schrodinger.application.matsci.gsas.GSASIIpwd.abeles(kz, depth, rho, irho=0, sigma=0)

Optical matrix form of the reflectivity calculation. O.S. Heavens, Optical Properties of Thin Solid Films

Reflectometry as a function of kz for a set of slabs.

Parameters:
  • kz – float[n] (1/Ang). Scattering vector, 2pi sin(theta)/lambda. This is \tfrac12 Q_z.
  • depth – float[m] (Ang). thickness of each layer. The thickness of the incident medium and substrate are ignored.
  • rho – float[n,k] (1e-6/Ang^2) Real scattering length density for each layer for each kz
  • irho – float[n,k] (1e-6/Ang^2) Imaginary scattering length density for each layer for each kz Note: absorption cross section mu = 2 irho/lambda for neutrons
  • sigma – float[m-1] (Ang) interfacial roughness. This is the roughness between a layer and the previous layer. The sigma array should have m-1 entries.

Slabs are ordered with the surface SLD at index 0 and substrate at index -1, or reversed if kz < 0.

schrodinger.application.matsci.gsas.GSASIIpwd.SmearAbeles(kz, dq, depth, rho, irho=0, sigma=0)
schrodinger.application.matsci.gsas.GSASIIpwd.makeRefdFFT(Limits, Profile)
schrodinger.application.matsci.gsas.GSASIIpwd.GetStackParms(Layers)
schrodinger.application.matsci.gsas.GSASIIpwd.StackSim(Layers, ctrls, scale=0.0, background={}, limits=[], inst={}, profile=[])

Simulate powder or selected area diffraction pattern from stacking faults using DIFFaX

Parameters:
  • Layers (dict) –

    dict with following items

    {'Laue':'-1','Cell':[False,1.,1.,1.,90.,90.,90,1.],
    'Width':[[10.,10.],[False,False]],'Toler':0.01,'AtInfo':{},
    'Layers':[],'Stacking':[],'Transitions':[]}
    
  • ctrls (str) – controls string to be written on DIFFaX controls.dif file
  • scale (float) – scale factor
  • background (dict) – background parameters
  • limits (list) – min/max 2-theta to be calculated
  • inst (dict) – instrument parameters dictionary
  • profile (list) – powder pattern data

Note that parameters all updated in place

schrodinger.application.matsci.gsas.GSASIIpwd.SetPWDRscan(inst, limits, profile)
schrodinger.application.matsci.gsas.GSASIIpwd.SetStackingSF(Layers, debug)
schrodinger.application.matsci.gsas.GSASIIpwd.SetStackingClay(Layers, Type)
schrodinger.application.matsci.gsas.GSASIIpwd.SetCellAtoms(Layers)
schrodinger.application.matsci.gsas.GSASIIpwd.SetStackingTrans(Layers, Nlayers)
schrodinger.application.matsci.gsas.GSASIIpwd.CalcStackingPWDR(Layers, scale, background, limits, inst, profile, debug)
schrodinger.application.matsci.gsas.GSASIIpwd.CalcStackingSADP(Layers, debug)
schrodinger.application.matsci.gsas.GSASIIpwd.makePRFfile(data, MEMtype)

makes Dysnomia .prf control file from Dysnomia GUI controls

Parameters:
  • data (dict) – GSAS-II phase data
  • MEMtype (int) – 1 for neutron data with negative scattering lengths 0 otherwise
Returns str:

name of Dysnomia control file

schrodinger.application.matsci.gsas.GSASIIpwd.makeMEMfile(data, reflData, MEMtype, DYSNOMIA)

make Dysnomia .mem file of reflection data, etc.

Parameters:
  • data (dict) – GSAS-II phase data
  • reflData (list) – GSAS-II reflection data
  • MEMtype (int) – 1 for neutron data with negative scattering lengths 0 otherwise
  • DYSNOMIA (str) – path to dysnomia.exe
schrodinger.application.matsci.gsas.GSASIIpwd.MEMupdateReflData(prfName, data, reflData)

Update reflection data with new Fosq, phase result from Dysnomia

Parameters:
  • prfName (str) – phase.mem file name
  • reflData (list) – GSAS-II reflection data
schrodinger.application.matsci.gsas.GSASIIpwd.TestData()

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.test0()
schrodinger.application.matsci.gsas.GSASIIpwd.test1()
schrodinger.application.matsci.gsas.GSASIIpwd.test2(name, delt)
schrodinger.application.matsci.gsas.GSASIIpwd.test3(name, delt)