Skip to content

Fit

Interactive curve fitting for Linux, Windows and macOS

Extension points

One section per seam: what you write, where it goes in, and what is registered through it in this build. Generated from the registries themselves.

Curve type

A shape that can be placed on data and fitted. The only seam whose members self-register, from the unit's own initialization section.

name id class analytic group amplitude unbounded placed by point set explanation preferred argument axis preferred value axis
2 br. Pseudo-Voigt{6DE06C1B-E51A-48C6-B036-C81A841EC468}T2BranchesPseudoVoigtPointsSetyes———A pseudo-Voigt peak with an independent width and Gaussian-Lorentzian mix on each side of its maximum.diffraction.two-thetadiffraction.intensity
Asym. Pseudo-Voigt{74A6EC30-A019-475D-99A3-B62C4AB03A6C}TAsymPseudoVoigtPointsSetyes———A pseudo-Voigt peak made asymmetric by giving its two sides different widths, sigma + deltasigma on the right and sigma - deltasigma on the left.diffraction.two-thetadiffraction.intensity
Constant background{D6553D98-F367-41D7-A717-6A4EA29605F2}TConstantBackgroundPointsSetyes———A flat background of level b0 under the peaks of each fit interval.——
Doniach-Sunjic{EC663A56-0E89-4BC3-91FD-F243AADB253E}TDoniachSunjicPointsSetyes———An asymmetric photoemission line of metals: a Lorentzian of half-width sigma skewed by the singularity index alpha.diffraction.two-thetadiffraction.intensity
Exponential background{1413E48F-A118-4B6F-99AC-7F708C3CE019}TExponentialBackgroundPointsSetyes———An exponentially decaying background: level b0 at the start of the interval, falling by a factor e every tau.——
Exponentially Modified Gaussian{4D320BBE-1000-4D70-A860-3AC0D7076FF5}TEmgPointsSetyes———A Gaussian convolved with a one-sided exponential decay, giving a peak with a tail of time constant tau.diffraction.two-thetadiffraction.intensity
Gaussian{FF4E399C-C33C-482E-84D7-952700BCD4AE}TGaussPointsSetyes———A symmetric bell-shaped peak whose area is A, centred at x0, with standard deviation sigma.diffraction.two-thetadiffraction.intensity
Linear background{A7D78941-8A02-4AF6-89E3-C14810A4EC6F}TLinearBackgroundPointsSetyes———A straight-line background, level b0 at the start of the interval and slope b1.——
Lorentzian{7CA6FDAF-95B7-4D84-BCBA-130C828407CC}TLorentzPointsSetyes———A symmetric peak with heavy tails, whose area is A, centred at x0, with full width at half maximum sigma.diffraction.two-thetadiffraction.intensity
Moffat{E6E51486-6970-4AB3-8010-908664116379}TMoffatPointsSetyes———A symmetric peak of height A with core width sigma and power-law wings set by m, used for stellar images.diffraction.two-thetadiffraction.intensity
Pearson VII{195B2208-9AA0-4281-8CAB-7D29D959AC4D}TPearson7PointsSetyes———A symmetric peak of height A and full width at half maximum sigma, whose tail weight m runs from Lorentzian to Gaussian.diffraction.two-thetadiffraction.intensity
Power-law background{4A7F9793-F2E8-4D61-B3C1-155BAA0C344B}TPowerLawBackgroundPointsSetyes———A background that changes as a power of x: level b0 at the start of the interval, exponent p.——
Pseudo-Voigt{9F27DC7C-970F-4DAC-88CD-F5FB3400D38D}TPseudoVoigtPointsSetyes———A weighted sum of a Gaussian and a Lorentzian with one shared width, used as a fast stand-in for the Voigt profile.diffraction.two-thetadiffraction.intensity
Quadratic background{85AEDDBA-26A1-4D1A-A95B-DB730BD76AB8}TQuadraticBackgroundPointsSetyes———A parabolic background: level b0 at the start of the interval, slope b1 and curvature b2.——
Skewed Gaussian{A32763F7-18DC-4378-A8E6-C0CCE28B5FD6}TSkewedGaussianPointsSetyes———A Gaussian made asymmetric by the shape parameter beta, following the skew-normal distribution.diffraction.two-thetadiffraction.intensity
Step (erf){3FC3B846-3A44-4ACE-B91B-CF84304391F9}TStepPointsSetyes———A smooth step of height A centred at x0, whose sharpness is set by sigma.diffraction.two-thetadiffraction.intensity
User Defined{D8CAFCE5-8B03-4CCE-9E93-EA28ACB8E7CA}TUserPointsSetyes———A curve whose formula you type yourself, with parameters named in that formula.——
Voigt{EEED2EC3-D036-473E-81E1-8E40943D8158}TVoigtPointsSetyes———The convolution of a Gaussian of width sigma with a Lorentzian of half-width gamma, scaled by A.diffraction.two-thetadiffraction.intensity

Data loader

Reads one file format. The Open dialog's filter is built from this registry, so a build can only offer what something can actually read.

class extensions format
TDATFileLoader.DATDiffraction profile
TDATFileLoader.XY;.TXTTwo-column numeric

Data source

Where data comes from before a loader reads it: a service, a repository or a directory. A source declares what it asks the user for and what extensions it produces; the wizard builds its own steps and its own input controls from that, and the file is parsed by whichever loader claims the extension. The framework names no service.

class id title category produces needs network
TSamplesSourcesamplesSample dataGeneral.DAT;.XY;.TXT—
TUrlSourceurlWeb addressGeneral.DAT;.XY;.TXTyes
TDoiSourcedoiPublished data (DOI)General.DAT;.XY;.TXTyes

Axis mode

A way of showing the argument or the value: a name and unit, a display-only transform, and how the axis is marked and read out. Curve types and data formats say which one their coordinates are in, by id; both axis menus are built from this registry.

class id caption topic
TPositionAxisModepositionGeneral Positiondata/argument-axes
TValueAxisModevalueGeneral Valuedata/value-axes
TLogarithmicAxisModelogarithmicLogarithmicdata/logarithmic-axis
TCustomAxisModecustomCustom...data/custom-axis
TThetaAxisModediffraction.thetaThetapeaks-and-diffraction/diffraction-angles
TTwoThetaAxisModediffraction.two-theta2 * Thetapeaks-and-diffraction/diffraction-angles
TSinThetaOverLambdaAxisModediffraction.sin-theta-over-lambdaSin Theta / Lambdapeaks-and-diffraction/diffraction-angles
TIntensityAxisModediffraction.intensityIntensitypeaks-and-diffraction/diffraction-angles

Minimizer

An engine, and the capability answers the client greys choices out from. Its factory returns the IFitBackend that does the work.

kind name description needs formula needs python sidecar supports weighting supports curve scaling has backend factory
0Downhill Simplex (native)The original algorithm. Needs no Python and fits any curve type, including those with no formula.———yesyes
1Levenberg-Marquardt (Python/lmfit)Trust-region least squares with uncertainties. Needs the Python sidecar, and a curve type that has a formula.yesyesyes—yes
2Downhill Simplex, curve by curve (native)The same simplex over one curve's parameters at a time, widest curve first, repeated until a pass gains nothing. Faster on models of many curves that each shape their own stretch; curves that trade off against each other may settle less well than under the simplex over everything.———yesyes
3Downhill Simplex, restarted (native)The same simplex over every parameter, started again from its own best, stepping each parameter forward or backward at random, until a run improves the loss by less than one percent. Never worse than the simplex, which is its first run; slower, and often a good deal better.———yesyes

Loss function

What "best fit" means. Compatibility with a curve type is DERIVED from the two capability flags, never from a table of type names.

kind name description self normalising least squares poolable
0R-factorSquared deviations normalised by the data, so values are comparable between datasets.—yesyes
1R-factor (legacy)The original objective. Normalised by the model rather than by the data, so with curve scaling on it can be lowered by inflating the model. Kept for comparison.yes——
2Sum of squaresPlain least squares, with no normalisation at all - the value scales with the data, so compare it only within one dataset.—yesyes
3Relative deviationAbsolute deviations as a fraction of the data - reads directly as "the model is off by this much".——yes

REST action

One verb of the HTTP API the desktop client and any other caller use.

name description asynchronous
minimize-differenceFit the current model to the profile.yes
minimize-difference-againContinue fitting from where the last fit stopped.yes
minimize-number-of-curvesFit, then drop curves that do not earn their place.yes
do-all-automaticallyBackground, positions and fit, in one pass.yes
smooth-profileSmooth the experimental profile.yes
compute-curve-boundsWork out where each curve begins and ends.yes
compute-background-pointsPropose background points from the profile.yes
compute-curve-positionsPropose a curve position for each peak found.yes
select-all-points-as-curve-positionsUse every profile point as a curve position.yes
select-entire-profileFit over the whole profile rather than a marked interval.yes
create-curve-listRebuild the curve list from the current model.—
evaluate-modelMeasure the model as it stands, without fitting it.—
stopStop the operation now, keeping what it has reached.—
subtract-backgroundSubtract the background from the profile.—
select-profile-intervalRestrict the fit to the interval between start and stop.—

Explanation

What everything a user meets says about itself: what it is, why it is allowed or refused, whether that rests on the field's sources, on convention or on this software's own choice, what it does not cover, and where to read more. A curve type explains itself through its class; anything else a module adds, through its own provider.

topic title summary standing standing hint quote
getting-started/what-fit-isWhat Fit isFit describes a measured profile as a sum of curves and tells you the parameters of each curve.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/two-programsThe window and the compute serverFit is two programs: the window you work in, and a compute server, fit_server, that does every fit.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/main-windowThe main window at a glanceThe window has a chart in the middle, tools on the left, the model on the right and tables of numbers along the bottom.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/first-fitA first fitImport a profile, choose a curve type, run Fit > Automatically and read the result in the tables below the chart.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/fitting-by-handFitting by hand, step by stepInstead of letting the program decide, you can say where the background is, what to fit and where the curves go, and then fit.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/explain-paneThe Explain paneA pane below the model list that explains whatever you are looking at, as you look at it.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/explain-everythingExplain EverythingHelp > Explain Everything opens a window listing every explanation this build can give, including this user guide.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/standingHow much authority an explanation hasEvery explanation carries one of four labels saying whether it rests on the field's sources, on common practice, or on a choice this program made.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/aboutAbout FitHelp > About shows which version of Fit you are running, and the terms it is licensed under.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
getting-started/updatesKeeping Fit up to dateFit checks for a new version by itself, at most every six hours, and asks before installing anything.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/projectsProjectsA project is your whole piece of work in one file, so that you can close Fit and later carry on fitting from where you stopped.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/new-projectNew ProjectFile > New Project closes what is open and leaves an empty window, ready for a profile to be imported.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/open-projectOpen ProjectFile > Open Project asks for a .fitproj file and restores the work it holds.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/open-recentOpen RecentFile > Open Recent lists the projects you opened or saved most recently, newest first, and opens one with a click.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/save-projectSave ProjectFile > Save Project writes the project to its file, and asks for a name the first time.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/save-project-asSave Project AsFile > Save Project As always asks for a file name and saves the project there.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/project-contentsWhat a project file holdsA project holds the data and everything needed to continue fitting it, but nothing that can be recalculated from those.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/project-formatThe .fitproj file formatA .fitproj file is a ZIP archive of JSON parts, which any archive tool can open.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/source-fileWhere the data came fromA project remembers which data file it was imported from, and notes in the log when that file no longer says the same thing.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/unsaved-changesUnsaved changesClosing Fit, starting a new project or opening another with unsaved work asks whether to save the project first, and a save that does not happen stops the command.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/import-profileImport ProfileFile > Import Profile reads a data file and makes it the profile of the current project.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/dat-filesTwo-column data files (.dat)A .dat file is plain text with the argument and the measured value on each line, and Fit reads the first two numbers of every line.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/reload-profileReload ProfileFile > Reload Profile reads the data file the open project came from again, for when it has changed on disk.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/export-curve-parametersExport Curve ParametersFile > Export > Curve Parameters writes the Curve Attributes table to a tab-separated text file.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/export-summary-tableExport Summary TableFile > Export > Summary Table writes the Summary table - data, model and difference point by point - to a tab-separated text file.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/quitQuitFile > Quit closes Fit, asking first whether to save unsaved work.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/sample-dataSample dataFit comes with a few data files to try it on, in a folder called Data.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/command-lineCommand-line optionsFit's window accepts a few options that say what to open at start-up and how much to log.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/log-filesLog filesThe window and the compute server each keep a log file, which is where to look when something went wrong.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/remembered-settingsWhat Fit remembers on this computerChoices that belong to you and to this computer rather than to a project are kept in one file, settings.json.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
projects-and-files/file-locationsWhere Fit keeps its filesFit keeps your settings, your own curve types, its logs and the data it downloads in the folders each system names for them, never in your home folder itself.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/the-profileThe profileThe profile is the measured data a model is fitted to: a list of points, each an argument and the amplitude measured at it.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/data-tableThe Data tableThe Data tab on the left lists every point of the profile, or of the data interval in force, and lets you correct a value by typing over it.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/argument-axesArgument axes and unitsThe horizontal axis can show the stored argument in several ways - as the model and the data say it should, as a plain position, on a logarithmic scale, through formulas of your own or as a module included in the build reads it - without changing the data or the fit.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/value-axesValue axesThe vertical axis is chosen the same way as the horizontal one: what the model and the data say the value is, a plain value, a logarithmic scale or formulas of your own - without changing the data or the fit.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/logarithmic-axisThe logarithmic axisLogarithmic draws a coordinate at the decimal logarithm of its value, so equal ratios are equal distances, and marks and reads it in the value itself.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
data/custom-axisA custom argument axisData > Argument Transformation > Use Rule > Custom Position shows the argument through a formula of your own, given together with its inverse.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/data-intervalWorking on part of the profileData > Range narrows the program's work to the stretch of the profile between two points you pick, and brings the whole profile back.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/smoothingSmoothing the profileData > Smooth Profile replaces each amplitude by the mean of itself and its two neighbours, keeping the total of all amplitudes the same.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/data-sourcesData sourcesFile > New Project from Data Source finds data in a published collection or at an address, downloads it and starts a project with it.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/source-samplesSample dataThe Sample data source offers the example files installed with Fit, so there is something to fit before any data has been found.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/source-urlWeb addressThe Web address source downloads a data file from an address you paste in.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
data/source-doiPublished data (DOI)The DOI source opens a Zenodo or figshare record by its DOI and lists the files it publishes.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/the-modelThe modelThe model is what the program fits to the profile: curves of a chosen shape, placed at positions and fitted over intervals.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/curve-typeChoosing a curve typeThe curve type is the shape every curve placed from a position takes, and is chosen from Model > Curve Type or from the list at the top of the Tools tab.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/tools-paneBuilding the model from the Tools tabThe Tools tab on the left carries the model-building commands as buttons, so a round of picking, fitting and adjusting needs no trip through the menus.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/picking-on-the-chartPicking points on the chartIn a picking mode each left click on the chart adds the data point nearest the pointer to the set being built, and a click on a point already in the set takes it out.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/curve-positionsCurve positionsA curve position is the argument where one curve of the model is placed; positions can be picked on the chart, proposed by the program or put at every data point.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/fit-intervalsFit intervalsA fit interval is a stretch of the profile fitted as a problem of its own, marked by a pair of bounds.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/model-panelThe Model tabThe Model tab on the right lists the curves of the model, one row per curve with where it sits, and is where one curve is chosen to be explained or deleted.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/curve-attributesThe Curve Attributes tableThe Curve Attributes tab at the bottom of the window lists every curve of the model with the value of each of its parameters.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/parameter-kindsParameter kinds: fitted, shared, fixed and computedEach parameter value in the Curve Attributes table is one of four kinds, which say whether and how the fit moves it.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/parameter-limitsLimits on parameter valuesEvery parameter keeps to a range of its own, and a value outside it - proposed by a fit, typed into the table or read from a saved project - is held at the nearest one the range allows.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/delete-curveDeleting a curveRight-click a curve in the Model tab and choose Delete curve to remove it, together with the position it was placed from.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/clear-modelClearing the modelModel > Clear Model removes every curve from the model at once, after asking.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
model/model-historyThe model historyEvery run that ends records the model it reached, so you can go back to any of them, compare them and carry on from the best.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/overviewFitting a modelA fit adjusts the parameters of the model's curves until the calculated profile matches the measured one as closely as it can.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/automaticallyAutomatic decompositionFit > Automatically decides how many curves the profile needs: it starts with far more than any profile needs and removes every one the fit can do without.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/how-many-curvesHow many curvesFit > Remove Curves By chooses how the program decides how many curves a profile needs: by BIC, the default, or within a maximum difference you set.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
fitting/minimize-number-of-curvesMinimize Number of CurvesRemoves every curve the fit can do without, starting from the curves and fit intervals you already have.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/minimize-differenceMinimize DifferenceFits the model as it stands: every curve is kept and only their parameters change.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/stopStopEnds the fit or other long computation that is running.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/why-fit-commands-are-greyedWhy a fit command is greyedThe fit commands are offered only when there is something to fit, the background has been dealt with, and nothing else is running.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/r-factorThe difference (R-factor)The number Fit reports for how well the model matches the data is an R-factor: the squared differences divided by the square of the summed data.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/max-acceptable-differenceMax Acceptable DifferenceThe ceiling on the R-factor that decides how many curves are kept while Fit > Remove Curves By > Max Acceptable Difference is chosen.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/curve-scalingCurve scalingWith curve scaling on, the model is multiplied by one factor per fit interval so that its area matches the data before the two are compared.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/minimizerMinimizerFit > Minimizer chooses the algorithm that searches for the best parameters; the first one, the default, needs nothing extra.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/loss-functionLoss FunctionFit > Loss Function chooses the number a fit makes as small as possible; the default, R-factor, suits almost every fit.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/weightingWeightingWeighting decides how much each point counts in a fit by the Python engine; counting data are conventionally weighted by one over the square root of the count.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
fitting/what-the-fit-will-doWhat the fit will actually doWhen a choice cannot be honoured, the fit changes it and says so: always in the status bar, and in a dialog when you make the choice.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/when-a-fit-endsWhen a fit endsThe chart, the tables and the Model panel are refreshed from the result, and the status bar shows how long the fit took and how good it is.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/samples-no-curve-coversSamples no curve coversA point inside a fit interval that no curve of the model reaches is modelled as 0, still counts in the R-factor, and is named where the result is shown.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/is-the-difference-noiseIs the difference only noise?A model that explains the data leaves a difference that is noise; after every fit the Ljung-Box test asks whether it is, and the wavelet transform names where it is not.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.Q = n(n + 2) sum_(k=1..h) r_k^2 / (n - k), which for white noise follows a chi-square of h degrees of freedom.
fitting/compute-serverCompute ServerThe window does no fitting itself: every computation runs in a compute server, fit_server, and Fit > Compute Server says where it is.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/compute-backendsCompute backendsHelp > Compute Backends summarises the engines a fit can run on and how to set up the optional Python one.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fitting/python-setupSetting up the Python engineAn installed copy needs no setup: the installer puts the Python engine beside the compute server, with its own Python. A copy built from source needs a one-time setup: a private Python environment with numpy, scipy and lmfit at the tested versions.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/layoutThe main windowData and tools on the left, the chart in the middle, the legend and the model on the right, tables along the bottom and a status bar under them.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/tools-tabThe Tools tabThe Tools tab holds the list of curve types and a group of buttons for each step of building and fitting a model.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/chartThe chartThe chart draws the measured profile and everything the model adds to it, and shows the coordinates of the point nearest the pointer.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/zoom-and-scrollZooming and scrolling the chartDrag a rectangle from its top-left corner to its bottom-right corner to zoom into it; drag in any other direction to see everything again.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/view-markersView MarkersView > View Markers marks every point of the profile and of the model curves, not only the line through them.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/graphs-tabThe Graphs tabThe Graphs tab is the chart's legend: one row per series, with a tick to show or hide it and a square of its colour.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/themeThemeView > Theme chooses whether the chart, the tables and the explanation panes are painted light or dark.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/model-panelThe Model panelThe Model tab lists the curves the model is made of, one row per curve, with the Explain pane under the list.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/history-tabThe History tabThe History tab lists every model a fit reached, newest first, with a graph of which model each was fitted from.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/explain-paneThe Explain paneThe pane under the Model panel explains what you are looking at: the selected curve, the curve type you clicked, or an entry of the Model panel's right-click menu.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/explain-everythingExplain EverythingHelp > Explain Everything opens every explanation this build can give: this guide, every curve type and every rule a module adds.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/tablesThe tables at the bottomTabs along the bottom show the model's inputs and results as numbers: Fit Intervals, Curve Positions, Curve Attributes and Summary, and any table a module adds.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/fit-intervals-tableThe Fit Intervals tableLists each fit interval by its Starting Position and Final Position.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/curve-positions-tableThe Curve Positions tableLists where curves are placed: the positions you picked, or where the fit put the curves when you picked none.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/curve-attributes-tableThe Curve Attributes tableOne row per curve and one column per parameter, holding the values the last fit found.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/summary-tableThe Summary tableFor every point inside every fit interval: the measured value, the model's value, their difference and each curve's own contribution.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/run-logThe Run LogThe Run Log tab says what a run decided and why: each curve it removed, each it kept, and whether what it left is only noise.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/edit-menuThe Edit menuEdit > Copy to Clipboard, Edit > Delete and Edit > Select All act on the table that has the keyboard focus.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/status-barThe status barFour panels along the bottom: the elapsed time, the fit's figures, a hint, and what the next fit will do.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/screen-scalingScreen scalingThe window scales itself to the screen's pixel density; the --dpi option or the FIT_UI_DPI variable sets the density when the guess is wrong.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/remembered-settingsWhat the window remembersA few choices are kept between sessions in this computer's settings.json; everything about the model is kept in the project instead.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
the-window/remembered-layoutThe window's size and its partsThe window opens at the size and place you left it, with each part as large as you made it; View > Reset Layout puts it back as it was designed.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
the-window/modulesModules in the windowA build that contains a module shows its commands in a submenu of Model and a group on the Tools tab, and can give it a table tab of its own.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fit-progress/live-progressFit progressWhile a fit runs, the line over the charts and the R-factor tab show how far it has got.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fit-progress/animation-modeAnimation ModeWith View > Animation Mode ticked, a running fit redraws the model over the data in the Model tab as it improves; the R-factor tab draws its progress either way.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
fit-progress/r-factor-scaleR-factor scaleView > R-factor Scale chooses how the R-factor of a running fit is drawn on the progress chart, and how the status bar and the History tab give it; right-clicking that chart offers the same choices.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/backgroundThe backgroundThe background is the slowly varying level under the peaks; the program can fit it as a curve of the model, or mark it with background points and subtract it.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/background-curveThe background curveModel > Background > Curve puts the background under the peaks as a curve of the model, fitted with them, drawn and saved with the project - and leaves the profile as it was measured.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/background-subtractionSubtracting the backgroundModel > Background > Subtract joins the background points by straight lines and subtracts those lines from the profile.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/background-fractionBackground fractionThe background fraction decides how small a peak the automatic searches still count: a point below 1/N of the highest point, for the factor N you set, is treated as background.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/background-variationBackground variationWith Model > Background > Enable Variation ticked, a fit also adjusts a smooth background of its own alongside the curves.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/background-points-tableThe Background Points tableLists the background points by Position and Amplitude, beside the buttons that find, subtract and remove them.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/diffraction-anglesDiffraction angles: Theta, 2 Theta and sin(Theta)/lambdaFor a diffraction pattern the stored argument is read as the scattering angle 2 Theta in degrees, and the axis can show it as 2 Theta, as Theta, or as sin(Theta)/lambda.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
peaks-and-diffraction/wavelengthWavelengthThe wavelength of the radiation, in angstrom, is the number the Sin Theta / Lambda axis divides by.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/sample-profilesSample diffraction profilesNine diffraction profiles come with the peaks, in the Data folder, to try a fit on.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/first-peak-fitA first fit of peaksTwo overlapping peaks in 2.dat, fitted automatically in a few clicks.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/parameter-limitsLimits on the peaks, the backgrounds and your own formulasHow wide each peak shape may be, how the backgrounds keep above zero, and what the parameters of a formula you define may take.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/residual-spectrumThe Residual SpectrumThe Residual Spectrum tab of the chart area maps where, and at which length of rhythm, the difference between the data and the model holds more than noise.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/user-defined-curvesUser-defined curvesYou can fit a shape of your own by typing its formula; the program turns it into a curve type that is saved and offered like the built-in ones.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/user-curve-formulaWriting the formula of a user-defined curveIn the Create New Curve Type dialog you give the curve a name and a formula in x; every other name in the formula becomes a parameter.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/user-curve-rolesParameter roles and starting valuesThe Set Curve Type Properties dialog says which parameter of a user-defined curve is its argument, position, amplitude and width, which are held, and where each starts.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
peaks-and-diffraction/user-curve-librarySelecting and deleting user-defined curvesThe curve types you have defined are chosen and deleted under Model > Curve Type > User.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
curve-type/6de06c1b-e51a-48c6-b036-c81a841ec4682 br. Pseudo-VoigtA pseudo-Voigt peak with an independent width and Gaussian-Lorentzian mix on each side of its maximum.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
curve-type/74a6ec30-a019-475d-99a3-b62c4ab03a6cAsym. Pseudo-VoigtA pseudo-Voigt peak made asymmetric by giving its two sides different widths, sigma + deltasigma on the right and sigma - deltasigma on the left.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
curve-type/d6553d98-f367-41d7-a717-6a4ea29605f2Constant backgroundA flat background of level b0 under the peaks of each fit interval.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
curve-type/ec663a56-0e89-4bc3-91fd-f243aadb253eDoniach-SunjicAn asymmetric photoemission line of metals: a Lorentzian of half-width sigma skewed by the singularity index alpha.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.I(E) = cos(pi alpha / 2 + (1 - alpha) arctan(E / gamma)) / (E^2 + gamma^2)^((1 - alpha) / 2)
curve-type/1413e48f-a118-4b6f-99ac-7f708c3ce019Exponential backgroundAn exponentially decaying background: level b0 at the start of the interval, falling by a factor e every tau.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
curve-type/4d320bbe-1000-4d70-a860-3ac0d7076ff5Exponentially Modified GaussianA Gaussian convolved with a one-sided exponential decay, giving a peak with a tail of time constant tau.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.f(t) = Gaussian(t; t_G, sigma) convolved with exp(-t / tau) / tau
curve-type/ff4e399c-c33c-482e-84d7-952700bcd4aeGaussianA symmetric bell-shaped peak whose area is A, centred at x0, with standard deviation sigma.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.f(x) = exp(-(x - mu)^2 / (2 sigma^2)) / (sigma sqrt(2 pi))
curve-type/a7d78941-8a02-4af6-89e3-c14810a4ec6fLinear backgroundA straight-line background, level b0 at the start of the interval and slope b1.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
curve-type/7ca6fdaf-95b7-4d84-bcba-130c828407ccLorentzianA symmetric peak with heavy tails, whose area is A, centred at x0, with full width at half maximum sigma.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.f(x) = 1 / (pi s (1 + ((x - t) / s)^2))
curve-type/e6e51486-6970-4ab3-8010-908664116379MoffatA symmetric peak of height A with core width sigma and power-law wings set by m, used for stellar images.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.I(r) = I0 (1 + (r / alpha)^2)^(-beta)
curve-type/195b2208-9aa0-4281-8cab-7d29d959ac4dPearson VIIA symmetric peak of height A and full width at half maximum sigma, whose tail weight m runs from Lorentzian to Gaussian.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.y = A / (1 + (2^(1/m) - 1) (2 (x - x0) / w)^2)^m
curve-type/4a7f9793-f2e8-4d61-b3c1-155baa0c344bPower-law backgroundA background that changes as a power of x: level b0 at the start of the interval, exponent p.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
curve-type/9f27dc7c-970f-4dac-88cd-f5fb3400d38dPseudo-VoigtA weighted sum of a Gaussian and a Lorentzian with one shared width, used as a fast stand-in for the Voigt profile.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.pV = eta L + (1 - eta) G
curve-type/85aeddba-26a1-4d1a-a95b-db730bd76ab8Quadratic backgroundA parabolic background: level b0 at the start of the interval, slope b1 and curvature b2.ConventionCommon practice or a guideline in the field, not a rule its sources require.—
curve-type/a32763f7-18dc-4378-a8e6-c0cce28b5fd6Skewed GaussianA Gaussian made asymmetric by the shape parameter beta, following the skew-normal distribution.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.f(x) = 2 phi(x) Phi(alpha x)
curve-type/3fc3b846-3a44-4ace-b91b-cf84304391f9Step (erf)A smooth step of height A centred at x0, whose sharpness is set by sigma.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.erf z = (2 / sqrt(pi)) integral from 0 to z of exp(-t^2) dt
curve-type/d8cafce5-8b03-4cce-9e93-ea28acb8e7caUser DefinedA curve whose formula you type yourself, with parameters named in that formula.This software's choiceA decision made by this software rather than by the field's sources; the explanation says why it was made.—
curve-type/eeed2ec3-d036-473e-81e1-8e40943d8158VoigtThe convolution of a Gaussian of width sigma with a Lorentzian of half-width gamma, scaled by A.CanonicalStated by the field's authoritative sources, which the explanation quotes and cites.U(x, t) + i V(x, t) = sqrt(pi / (4 t)) exp(z^2) erfc(z), z = (1 - i x) / (2 sqrt(t))

Server module

An analysis vertical's server side: the resources it answers and its per-problem session state.

name
scientific

UI module

A module's contribution to the window, declared as data. One declaration serves three surfaces: the menu bar, the Tools pane and the Model panel's context menu - Surface says where an entry is shown and Scope whether it acts on the selected row. Structure for the Model panel is pushed separately under structure_id, and the panel itself belongs to the framework. WHICH contributor fills it is not arbitrated: it follows the selected curve type's placed_by_point_set, reported on the curve_types seam - empty means the framework's flat list of curves, and a named set means the module owning that set describes what its markup produced. The client names no module type.

Python sidecar pack

Names a module's <name>_routes.py, which the sidecar imports on start. Only the name travels; the sidecar finds the file itself.

Curve builder

Builds every curve a marked point set describes. Without one, the engine takes the position-based path.

Chart overlay

Redraws a module's own marks after the model is recomputed, so the client need not name the module to refresh it.