ADR suggestion: Experiment
#7
henrikjacobsenfys
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
General
We need a class to handle everything relating to the experiment: holding data, resolution function, background. It should also be able to plot data. The
Experimentclass will be attached tojob, along withAnalysis#5 andSampleModel#4 .It's unclear to me exactly how multidimensional data should be handled, so for now we'll make a proof of concept with a single one-dimensional data set. In the end, we need multi-dimensional data sets that must be binned in some way before they can be analysed. I think the binning should be handled by
Experiment.Current implementation
There is no
ExperimentclassProposed implementation
The class will inherit from the
corelibExperimentBaseclass. It will have the following classes and methods.Data
This holds the data as a
scipp DataArrayappend: appends a data set to the list of data setsremove: removes a data setplot: plots data. Probably needs a bunch of settings to make the plot nice.remove_outliers: I want to be able to detect data points that are clear outliers and remove them. I'm unsure exactly what criteria I will need for this.We will furthermore need/make use of a bunch of
scippmethods such as binning/grouping. We might want to wrap them in a nice way to hide most of the syntax from the users. I'll need to play around with it a bit to see what's needed.Resolution
This holds the resolution, for now only as a
SampleModel. Later, we will allow users to use a measurement as the resolution, but there are some intricacies that must be dealt with first.set_resolutionSets the resolution. When we have multi-dimensional data, the resolution should be the same dimension as the data.There will be more settings for the resolution, see #2 . I think that I will expect multiple data sets to have the same resolution (because they would be the same instrument configuration, but e.g. different temperatures or other external parameters), but I'm not sure yet.
Background
The background model will also be a
SampleModel, but explicitly without resolution convolution or detailed balancing (#6 )Other
In addition to the above, we also want to store other experimental information. This could be e.g. temperature, sample name, sample mass, sample formula, general notes. We can consider implementing absolute normalisation, although that depends on what the IDS and instrument responsibles expect. It would require measurements of a standard and some straightforward but tedious math.
Beta Was this translation helpful? Give feedback.
All reactions