Skip to content

Commit ee07ccf

Browse files
Add examples to all docstrings and update notebooks (#214)
* Standardize repr strings * pixi run fix * Add examples to model components and diffusion models * Add examples to all docstrings and update notebook examples
1 parent 0a0bf47 commit ee07ccf

56 files changed

Lines changed: 1021 additions & 376 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/docs/tutorials/analysis.ipynb

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,8 @@
2323
"# Imports\n",
2424
"import pooch\n",
2525
"\n",
26-
"from easydynamics.analysis.analysis import Analysis\n",
27-
"from easydynamics.experiment import Experiment\n",
28-
"from easydynamics.sample_model import BrownianTranslationalDiffusion\n",
29-
"from easydynamics.sample_model import ComponentCollection\n",
30-
"from easydynamics.sample_model import DeltaFunction\n",
31-
"from easydynamics.sample_model import Gaussian\n",
32-
"from easydynamics.sample_model import Lorentzian\n",
33-
"from easydynamics.sample_model import Polynomial\n",
34-
"from easydynamics.sample_model.background_model import BackgroundModel\n",
35-
"from easydynamics.sample_model.instrument_model import InstrumentModel\n",
36-
"from easydynamics.sample_model.resolution_model import ResolutionModel\n",
37-
"from easydynamics.sample_model.sample_model import SampleModel\n",
26+
"import easydynamics as edyn\n",
27+
"import easydynamics.sample_model as sm\n",
3828
"\n",
3929
"%matplotlib widget"
4030
]
@@ -47,7 +37,7 @@
4737
"outputs": [],
4838
"source": [
4939
"# Load the vanadium data\n",
50-
"vanadium_experiment = Experiment('Vanadium')\n",
40+
"vanadium_experiment = edyn.Experiment('Vanadium')\n",
5141
"file_path = pooch.retrieve(\n",
5242
" url='https://github.com/easyscience/dynamics-lib/raw/refs/heads/master/docs/docs/tutorials/data/vanadium_data_example.h5',\n",
5343
" known_hash='16cc1b327c303feeb88fb9dda5390dc4880b62396b1793f98c6fef0b27c7b873',\n",
@@ -66,34 +56,34 @@
6656
"# Example of Analysis with a simple sample model and instrument model\n",
6757
"# The scattering from vanadium is purely elastic, so we model it with a\n",
6858
"# delta function\n",
69-
"delta_function = DeltaFunction(display_name='DeltaFunction', area=1)\n",
70-
"sample_model = SampleModel(\n",
59+
"delta_function = sm.DeltaFunction(display_name='DeltaFunction', area=1)\n",
60+
"sample_model = sm.SampleModel(\n",
7161
" components=delta_function,\n",
7262
")\n",
7363
"\n",
7464
"# The resolution is in this case modeled as a Gaussian. However, we can\n",
7565
"# add as many components as we like to the resolution model\n",
76-
"res_gauss = Gaussian(width=0.1)\n",
66+
"res_gauss = sm.Gaussian(width=0.1)\n",
7767
"res_gauss.area.fixed = True\n",
78-
"resolution_components = ComponentCollection()\n",
68+
"resolution_components = sm.ComponentCollection()\n",
7969
"resolution_components.append_component(res_gauss)\n",
80-
"resolution_model = ResolutionModel(components=resolution_components)\n",
70+
"resolution_model = sm.ResolutionModel(components=resolution_components)\n",
8171
"\n",
8272
"# The background model is created in the same way. In this case, we use\n",
8373
"# a flat background\n",
84-
"background_model = BackgroundModel(components=Polynomial(coefficients=[0.001]))\n",
74+
"background_model = sm.BackgroundModel(components=sm.Polynomial(coefficients=[0.001]))\n",
8575
"\n",
8676
"# We combine the resolution abd background model into an instrument\n",
8777
"# model. This model also contains a small energy offset to account for\n",
8878
"# instrument misalignment.\n",
8979
"\n",
90-
"instrument_model = InstrumentModel(\n",
80+
"instrument_model = sm.InstrumentModel(\n",
9181
" resolution_model=resolution_model,\n",
9282
" background_model=background_model,\n",
9383
")\n",
9484
"\n",
9585
"# Collect everything into an analysis object.\n",
96-
"vanadium_analysis = Analysis(\n",
86+
"vanadium_analysis = edyn.Analysis(\n",
9787
" display_name='Vanadium Full Analysis',\n",
9888
" experiment=vanadium_experiment,\n",
9989
" sample_model=sample_model,\n",
@@ -180,7 +170,7 @@
180170
"source": [
181171
"# Now it's time to look at the data we want to fit. We first load the\n",
182172
"# data\n",
183-
"diffusion_experiment = Experiment('Diffusion')\n",
173+
"diffusion_experiment = edyn.Experiment('Diffusion')\n",
184174
"\n",
185175
"file_path = pooch.retrieve(\n",
186176
" url='https://github.com/easyscience/dynamics-lib/raw/refs/heads/master/docs/docs/tutorials/data/diffusion_data_example.h5',\n",
@@ -200,23 +190,23 @@
200190
"# Now we set up the model, similarly to how we set up the model for the\n",
201191
"# vanadium data.\n",
202192
"\n",
203-
"delta_function = DeltaFunction(display_name='DeltaFunction', area=0.2)\n",
204-
"lorentzian = Lorentzian(display_name='Lorentzian', area=0.5, width=0.3)\n",
205-
"component_collection = ComponentCollection(\n",
193+
"delta_function = sm.DeltaFunction(display_name='DeltaFunction', area=0.2)\n",
194+
"lorentzian = sm.Lorentzian(display_name='Lorentzian', area=0.5, width=0.3)\n",
195+
"component_collection = sm.ComponentCollection(\n",
206196
" components=[delta_function, lorentzian],\n",
207197
")\n",
208198
"\n",
209-
"sample_model = SampleModel(\n",
199+
"sample_model = sm.SampleModel(\n",
210200
" components=component_collection,\n",
211201
")\n",
212202
"\n",
213-
"background_model = BackgroundModel(components=Polynomial(coefficients=[0.001]))\n",
203+
"background_model = sm.BackgroundModel(components=sm.Polynomial(coefficients=[0.001]))\n",
214204
"\n",
215-
"instrument_model = InstrumentModel(\n",
205+
"instrument_model = sm.InstrumentModel(\n",
216206
" background_model=background_model,\n",
217207
")\n",
218208
"\n",
219-
"diffusion_analysis = Analysis(\n",
209+
"diffusion_analysis = edyn.Analysis(\n",
220210
" display_name='Diffusion Full Analysis',\n",
221211
" experiment=diffusion_experiment,\n",
222212
" sample_model=sample_model,\n",
@@ -286,26 +276,26 @@
286276
"# Let us now fit directly to a diffusion model. We replace the\n",
287277
"# Lorentzian with a Brownian translational diffusion model and keep the\n",
288278
"# other parameters the same.\n",
289-
"delta_function = DeltaFunction(display_name='DeltaFunction', area=0.2)\n",
290-
"component_collection = ComponentCollection(\n",
279+
"delta_function = sm.DeltaFunction(display_name='DeltaFunction', area=0.2)\n",
280+
"component_collection = sm.ComponentCollection(\n",
291281
" components=[delta_function],\n",
292282
")\n",
293-
"diffusion_model = BrownianTranslationalDiffusion(\n",
283+
"diffusion_model = sm.BrownianTranslationalDiffusion(\n",
294284
" display_name='Brownian Translational Diffusion', diffusion_coefficient=2.4e-9, scale=0.5\n",
295285
")\n",
296286
"\n",
297-
"sample_model = SampleModel(\n",
287+
"sample_model = sm.SampleModel(\n",
298288
" components=component_collection,\n",
299289
" diffusion_models=diffusion_model,\n",
300290
")\n",
301291
"\n",
302-
"background_model = BackgroundModel(components=Polynomial(coefficients=[0.001]))\n",
292+
"background_model = sm.BackgroundModel(components=sm.Polynomial(coefficients=[0.001]))\n",
303293
"\n",
304-
"instrument_model = InstrumentModel(\n",
294+
"instrument_model = sm.InstrumentModel(\n",
305295
" background_model=background_model,\n",
306296
")\n",
307297
"\n",
308-
"diffusion_model_analysis = Analysis(\n",
298+
"diffusion_model_analysis = edyn.Analysis(\n",
309299
" display_name='Diffusion Full Analysis',\n",
310300
" experiment=diffusion_experiment,\n",
311301
" sample_model=sample_model,\n",
@@ -367,4 +357,4 @@
367357
},
368358
"nbformat": 4,
369359
"nbformat_minor": 5
370-
}
360+
}

docs/docs/tutorials/analysis1d.ipynb

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,9 @@
1818
"source": [
1919
"import pooch\n",
2020
"\n",
21+
"import easydynamics as edyn\n",
22+
"import easydynamics.sample_model as sm\n",
2123
"from easydynamics.analysis.analysis1d import Analysis1d\n",
22-
"from easydynamics.experiment import Experiment\n",
23-
"from easydynamics.sample_model import DeltaFunction\n",
24-
"from easydynamics.sample_model import Gaussian\n",
25-
"from easydynamics.sample_model import Polynomial\n",
26-
"from easydynamics.sample_model.background_model import BackgroundModel\n",
27-
"from easydynamics.sample_model.instrument_model import InstrumentModel\n",
28-
"from easydynamics.sample_model.resolution_model import ResolutionModel\n",
29-
"from easydynamics.sample_model.sample_model import SampleModel\n",
3024
"\n",
3125
"%matplotlib widget"
3226
]
@@ -38,7 +32,7 @@
3832
"metadata": {},
3933
"outputs": [],
4034
"source": [
41-
"vanadium_experiment = Experiment('Vanadium')\n",
35+
"vanadium_experiment = edyn.Experiment('Vanadium')\n",
4236
"\n",
4337
"file_path = pooch.retrieve(\n",
4438
" url='https://github.com/easyscience/dynamics-lib/raw/refs/heads/master/docs/docs/tutorials/data/vanadium_data_example.h5',\n",
@@ -56,18 +50,18 @@
5650
"outputs": [],
5751
"source": [
5852
"# Example of Analysis1d with a simple sample model and instrument model\n",
59-
"delta_function = DeltaFunction(display_name='DeltaFunction', area=1)\n",
60-
"sample_model = SampleModel(\n",
53+
"delta_function = sm.DeltaFunction(display_name='DeltaFunction', area=1)\n",
54+
"sample_model = sm.SampleModel(\n",
6155
" components=delta_function,\n",
6256
")\n",
6357
"\n",
64-
"res_gauss = Gaussian(width=0.1)\n",
65-
"resolution_model = ResolutionModel(components=res_gauss)\n",
58+
"res_gauss = sm.Gaussian(width=0.1)\n",
59+
"resolution_model = sm.ResolutionModel(components=res_gauss)\n",
6660
"\n",
6761
"\n",
68-
"background_model = BackgroundModel(components=Polynomial(coefficients=[0.001]))\n",
62+
"background_model = sm.BackgroundModel(components=sm.Polynomial(coefficients=[0.001]))\n",
6963
"\n",
70-
"instrument_model = InstrumentModel(\n",
64+
"instrument_model = sm.InstrumentModel(\n",
7165
" resolution_model=resolution_model,\n",
7266
" background_model=background_model,\n",
7367
")\n",
@@ -106,4 +100,4 @@
106100
},
107101
"nbformat": 4,
108102
"nbformat_minor": 5
109-
}
103+
}

docs/docs/tutorials/component_collection.ipynb

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@
2020
"import matplotlib.pyplot as plt\n",
2121
"import numpy as np\n",
2222
"\n",
23-
"from easydynamics.sample_model import ComponentCollection\n",
24-
"from easydynamics.sample_model import DampedHarmonicOscillator\n",
25-
"from easydynamics.sample_model import Gaussian\n",
26-
"from easydynamics.sample_model import Lorentzian\n",
27-
"from easydynamics.sample_model import Polynomial\n",
23+
"import easydynamics.sample_model as sm\n",
2824
"\n",
2925
"%matplotlib widget"
3026
]
@@ -36,13 +32,13 @@
3632
"metadata": {},
3733
"outputs": [],
3834
"source": [
39-
"component_collection = ComponentCollection()\n",
35+
"component_collection = sm.ComponentCollection()\n",
4036
"\n",
4137
"# Creating components\n",
42-
"gaussian = Gaussian(display_name='Gaussian', width=0.5, area=1)\n",
43-
"dho = DampedHarmonicOscillator(display_name='DHO', center=1.0, width=0.3, area=2.0)\n",
44-
"lorentzian = Lorentzian(display_name='Lorentzian', center=-1.0, width=0.2, area=1.0)\n",
45-
"polynomial = Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n",
38+
"gaussian = sm.Gaussian(display_name='Gaussian', width=0.5, area=1)\n",
39+
"dho = sm.DampedHarmonicOscillator(display_name='DHO', center=1.0, width=0.3, area=2.0)\n",
40+
"lorentzian = sm.Lorentzian(display_name='Lorentzian', center=-1.0, width=0.2, area=1.0)\n",
41+
"polynomial = sm.Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n",
4642
"\n",
4743
"# Adding components to the component collection\n",
4844
"component_collection.append_component(gaussian)\n",
@@ -90,4 +86,4 @@
9086
},
9187
"nbformat": 4,
9288
"nbformat_minor": 5
93-
}
89+
}

docs/docs/tutorials/components.ipynb

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,7 @@
2323
"import numpy as np\n",
2424
"import scipp as sc\n",
2525
"\n",
26-
"from easydynamics.sample_model import DampedHarmonicOscillator\n",
27-
"from easydynamics.sample_model import DeltaFunction\n",
28-
"from easydynamics.sample_model import Exponential\n",
29-
"from easydynamics.sample_model import ExpressionComponent\n",
30-
"from easydynamics.sample_model import Gaussian\n",
31-
"from easydynamics.sample_model import Lorentzian\n",
32-
"from easydynamics.sample_model import Polynomial\n",
26+
"import easydynamics.sample_model as sm\n",
3327
"\n",
3428
"%matplotlib widget"
3529
]
@@ -42,11 +36,11 @@
4236
"outputs": [],
4337
"source": [
4438
"# Creating a component\n",
45-
"gaussian = Gaussian(display_name='Gaussian', width=0.5, area=1)\n",
46-
"dho = DampedHarmonicOscillator(display_name='DHO', center=1.0, width=0.3, area=2.0)\n",
47-
"lorentzian = Lorentzian(display_name='Lorentzian', center=-1.0, width=0.2, area=1.0)\n",
48-
"polynomial = Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n",
49-
"exponential = Exponential(display_name='Exponential', amplitude=1.0, rate=-0.5)\n",
39+
"gaussian = sm.Gaussian(display_name='Gaussian', width=0.5, area=1)\n",
40+
"dho = sm.DampedHarmonicOscillator(display_name='DHO', center=1.0, width=0.3, area=2.0)\n",
41+
"lorentzian = sm.Lorentzian(display_name='Lorentzian', center=-1.0, width=0.2, area=1.0)\n",
42+
"polynomial = sm.Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n",
43+
"exponential = sm.Exponential(display_name='Exponential', amplitude=1.0, rate=-0.5)\n",
5044
"\n",
5145
"x = np.linspace(-2, 2, 100)\n",
5246
"\n",
@@ -86,7 +80,7 @@
8680
"metadata": {},
8781
"outputs": [],
8882
"source": [
89-
"delta = DeltaFunction(display_name='Delta', center=0.0, area=1.0)\n",
83+
"delta = sm.DeltaFunction(display_name='Delta', center=0.0, area=1.0)\n",
9084
"x1 = np.linspace(-2, 2, 100)\n",
9185
"y = delta.evaluate(x1)\n",
9286
"x2 = np.linspace(-2, 2, 51)\n",
@@ -114,7 +108,7 @@
114108
"x1 = sc.linspace(dim='x', start=-2.0, stop=2.0, num=100, unit='meV')\n",
115109
"x2 = sc.linspace(dim='x', start=-2.0 * 1e3, stop=2.0 * 1e3, num=101, unit='microeV')\n",
116110
"\n",
117-
"polynomial = Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n",
111+
"polynomial = sm.Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n",
118112
"y1 = polynomial.evaluate(x1)\n",
119113
"y2 = polynomial.evaluate(x2)\n",
120114
"\n",
@@ -132,7 +126,7 @@
132126
"metadata": {},
133127
"outputs": [],
134128
"source": [
135-
"expr = ExpressionComponent(\n",
129+
"expr = sm.ExpressionComponent(\n",
136130
" 'A * exp(-(x - x0)**2 / (2*sigma**2)) +B*sin(2*pi*x/period)',\n",
137131
" parameters={'A': 10, 'x0': 0, 'sigma': 1},\n",
138132
")\n",
@@ -158,7 +152,7 @@
158152
"metadata": {},
159153
"outputs": [],
160154
"source": [
161-
"expr = ExpressionComponent(\n",
155+
"expr = sm.ExpressionComponent(\n",
162156
" 'A*erf(B*x)',\n",
163157
")\n",
164158
"\n",
@@ -197,4 +191,4 @@
197191
},
198192
"nbformat": 4,
199193
"nbformat_minor": 5
200-
}
194+
}

0 commit comments

Comments
 (0)