Note
Go to the end to download the full example code.
J Estimator Validation — Fixed Bead Size, Variable Illumination#
This example demonstrates how to estimate the J parameter, which quantifies how the relative noise (robust coefficient of variation) scales with the signal strength under varying illumination power. We simulate a flow cytometry system with fixed bead diameter and varying illumination.
Setup and configuration#
import numpy as np
from TypedUnit import ureg
from FlowCyPy import FlowCytometer, SimulationSettings
from FlowCyPy.calibration import JEstimator
from FlowCyPy.fluidics import FlowCell, Fluidics, ScattererCollection
from FlowCyPy.opto_electronics import (
Detector,
OptoElectronics,
TransimpedanceAmplifier,
source,
)
from FlowCyPy.signal_processing import Digitizer, SignalProcessing
Configure simulation-level noise assumptions
SimulationSettings.include_noises = True
SimulationSettings.include_shot_noise = True
SimulationSettings.include_dark_current_noise = False
SimulationSettings.include_source_noise = False
SimulationSettings.include_amplifier_noise = False
SimulationSettings.assume_perfect_hydrodynamic_focusing = True
SimulationSettings.assume_amplifier_bandwidth_is_infinite = True
SimulationSettings.assume_perfect_digitizer = True
SimulationSettings.evenly_spaced_events = True
np.random.seed(3) # Reproducibility
Construct simulation components#
flow_cell = FlowCell(
sample_volume_flow=80 * ureg.microliter / ureg.minute,
sheath_volume_flow=1 * ureg.milliliter / ureg.minute,
width=400 * ureg.micrometer,
height=400 * ureg.micrometer,
)
scatterer_collection = ScattererCollection(medium_refractive_index=1.33 * ureg.RIU)
fluidics = Fluidics(scatterer_collection=scatterer_collection, flow_cell=flow_cell)
source = source.GaussianBeam(
numerical_aperture=0.2 * ureg.AU,
wavelength=450 * ureg.nanometer,
optical_power=0 * ureg.watt,
)
digitizer = Digitizer(
bit_depth="16bit",
saturation_levels=(0 * ureg.volt, 2 * ureg.volt),
sampling_rate=60 * ureg.megahertz,
)
amplifier = TransimpedanceAmplifier(
gain=10 * ureg.volt / ureg.ampere,
bandwidth=60 * ureg.megahertz,
)
detector_0 = Detector(
name="default",
phi_angle=0 * ureg.degree, # Forward scatter
numerical_aperture=0.2 * ureg.AU,
cache_numerical_aperture=0.0 * ureg.AU,
responsivity=1 * ureg.ampere / ureg.watt,
)
opto_electronics = OptoElectronics(
detectors=[detector_0], source=source, amplifier=amplifier
)
signal_processing = SignalProcessing(
digitizer=digitizer,
analog_processing=[],
)
flow_cytometer = FlowCytometer(
opto_electronics=opto_electronics,
fluidics=fluidics,
signal_processing=signal_processing,
background_power=source.optical_power * 0.001,
)
Run J Estimation Simulation#
j_estimator = JEstimator(debug_mode=False)
j_estimator.add_batch(
illumination_powers=np.linspace(10, 380, 25) * ureg.milliwatt,
bead_diameter=400 * ureg.nanometer,
flow_cytometer=flow_cytometer,
particle_count=50 * ureg.particle,
)
[INFO] Running simulation 1/25
Population ScattererID
population 0 0.0
1 0.0
2 -0.0
3 -0.0
4 0.0
5 -0.0
6 0.0
7 0.0
8 0.0
9 -0.0
10 -0.0
11 0.0
12 -0.0
13 -0.0
14 0.0
15 0.0
16 -0.0
17 0.0
18 0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 -0.0
24 -0.0
25 0.0
26 0.0
27 0.0
28 -0.0
29 0.0
30 0.0
31 -0.0
32 0.0
33 0.0
34 0.0
35 0.0
36 -0.0
37 0.0
38 0.0
39 -0.0
40 0.0
41 0.0
42 0.0
43 0.0
44 -0.0
45 -0.0
46 -0.0
47 -0.0
48 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 2/25
Population ScattererID
population 0 -0.0
1 -0.0
2 0.0
3 -0.0
4 0.0
5 0.0
6 -0.0
7 0.0
8 0.0
9 0.0
10 0.0
11 0.0
12 -0.0
13 0.0
14 0.0
15 -0.0
16 -0.0
17 -0.0
18 0.0
19 -0.0
20 0.0
21 0.0
22 0.0
23 -0.0
24 -0.0
25 -0.0
26 -0.0
27 -0.0
28 0.0
29 0.0
30 0.0
31 0.0
32 0.0
33 0.0
34 0.0
35 -0.0
36 0.0
37 -0.0
38 -0.0
39 -0.0
40 0.0
41 -0.0
42 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 3/25
Population ScattererID
population 0 0.0
1 0.0
2 0.0
3 -0.0
4 0.0
5 0.0
6 -0.0
7 -0.0
8 -0.0
9 -0.0
10 -0.0
11 0.0
12 -0.0
13 -0.0
14 0.0
15 -0.0
16 0.0
17 -0.0
18 0.0
19 -0.0
20 -0.0
21 0.0
22 -0.0
23 -0.0
24 -0.0
25 0.0
26 -0.0
27 0.0
28 0.0
29 -0.0
30 -0.0
31 0.0
32 0.0
33 0.0
34 -0.0
35 0.0
36 -0.0
37 0.0
38 -0.0
39 -0.0
40 -0.0
41 0.0
42 0.0
43 0.0
44 -0.0
45 0.0
46 0.0
47 -0.0
48 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 4/25
Population ScattererID
population 0 -0.0
1 0.0
2 0.0
3 -0.0
4 -0.0
...
57 -0.0
58 0.0
59 -0.0
60 -0.0
61 -0.0
Name: y, Length: 62, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 5/25
Population ScattererID
population 0 -0.0
1 0.0
2 0.0
3 -0.0
4 0.0
5 -0.0
6 -0.0
7 -0.0
8 -0.0
9 0.0
10 0.0
11 -0.0
12 0.0
13 0.0
14 -0.0
15 0.0
16 0.0
17 -0.0
18 0.0
19 0.0
20 -0.0
21 -0.0
22 -0.0
23 -0.0
24 0.0
25 -0.0
26 0.0
27 0.0
28 -0.0
29 0.0
30 0.0
31 -0.0
32 -0.0
33 -0.0
34 0.0
35 0.0
36 -0.0
37 -0.0
38 -0.0
39 0.0
40 -0.0
41 -0.0
42 0.0
43 0.0
44 0.0
45 0.0
46 -0.0
47 -0.0
48 0.0
49 -0.0
50 -0.0
51 0.0
52 -0.0
53 0.0
54 -0.0
55 -0.0
56 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 6/25
Population ScattererID
population 0 -0.0
1 -0.0
2 -0.0
3 -0.0
4 0.0
5 0.0
6 0.0
7 0.0
8 0.0
9 0.0
10 -0.0
11 -0.0
12 0.0
13 -0.0
14 -0.0
15 0.0
16 -0.0
17 0.0
18 0.0
19 -0.0
20 -0.0
21 0.0
22 -0.0
23 -0.0
24 -0.0
25 -0.0
26 0.0
27 -0.0
28 -0.0
29 0.0
30 0.0
31 -0.0
32 0.0
33 0.0
34 -0.0
35 0.0
36 0.0
37 0.0
38 -0.0
39 0.0
40 0.0
41 0.0
42 0.0
43 0.0
44 0.0
45 0.0
46 -0.0
47 -0.0
48 -0.0
49 0.0
50 -0.0
51 -0.0
52 0.0
53 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 7/25
Population ScattererID
population 0 0.0
1 0.0
2 0.0
3 0.0
4 -0.0
5 -0.0
6 -0.0
7 -0.0
8 0.0
9 0.0
10 -0.0
11 0.0
12 -0.0
13 -0.0
14 0.0
15 0.0
16 -0.0
17 0.0
18 -0.0
19 0.0
20 -0.0
21 -0.0
22 -0.0
23 0.0
24 0.0
25 -0.0
26 0.0
27 -0.0
28 -0.0
29 0.0
30 0.0
31 -0.0
32 0.0
33 -0.0
34 -0.0
35 0.0
36 -0.0
37 0.0
38 -0.0
39 0.0
40 0.0
41 -0.0
42 -0.0
43 -0.0
44 0.0
45 -0.0
46 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 8/25
Population ScattererID
population 0 0.0
1 0.0
2 -0.0
3 0.0
4 0.0
5 -0.0
6 0.0
7 -0.0
8 0.0
9 -0.0
10 0.0
11 -0.0
12 -0.0
13 0.0
14 0.0
15 0.0
16 -0.0
17 0.0
18 0.0
19 0.0
20 -0.0
21 0.0
22 0.0
23 -0.0
24 -0.0
25 -0.0
26 -0.0
27 0.0
28 0.0
29 0.0
30 -0.0
31 -0.0
32 0.0
33 0.0
34 0.0
35 0.0
36 0.0
37 -0.0
38 -0.0
39 0.0
40 -0.0
41 0.0
42 0.0
43 0.0
44 -0.0
45 -0.0
46 -0.0
47 -0.0
48 -0.0
49 -0.0
50 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 9/25
Population ScattererID
population 0 -0.0
1 -0.0
2 -0.0
3 0.0
4 -0.0
5 -0.0
6 -0.0
7 0.0
8 0.0
9 0.0
10 -0.0
11 -0.0
12 -0.0
13 -0.0
14 0.0
15 0.0
16 -0.0
17 -0.0
18 0.0
19 0.0
20 -0.0
21 0.0
22 0.0
23 -0.0
24 0.0
25 0.0
26 0.0
27 -0.0
28 0.0
29 -0.0
30 -0.0
31 -0.0
32 -0.0
33 0.0
34 0.0
35 0.0
36 -0.0
37 -0.0
38 -0.0
39 -0.0
40 0.0
41 0.0
42 -0.0
43 0.0
44 0.0
45 0.0
46 0.0
47 -0.0
48 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 10/25
Population ScattererID
population 0 0.0
1 -0.0
2 -0.0
3 -0.0
4 0.0
5 -0.0
6 -0.0
7 -0.0
8 -0.0
9 0.0
10 0.0
11 -0.0
12 -0.0
13 -0.0
14 0.0
15 0.0
16 -0.0
17 0.0
18 0.0
19 0.0
20 -0.0
21 0.0
22 -0.0
23 0.0
24 0.0
25 -0.0
26 0.0
27 0.0
28 0.0
29 0.0
30 -0.0
31 0.0
32 -0.0
33 0.0
34 -0.0
35 0.0
36 -0.0
37 -0.0
38 0.0
39 -0.0
40 0.0
41 -0.0
42 -0.0
43 -0.0
44 0.0
45 -0.0
46 0.0
47 0.0
48 0.0
49 0.0
50 0.0
51 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 11/25
Population ScattererID
population 0 0.0
1 0.0
2 0.0
3 -0.0
4 0.0
5 -0.0
6 -0.0
7 -0.0
8 0.0
9 -0.0
10 0.0
11 0.0
12 -0.0
13 -0.0
14 0.0
15 -0.0
16 0.0
17 0.0
18 -0.0
19 -0.0
20 0.0
21 -0.0
22 0.0
23 -0.0
24 -0.0
25 -0.0
26 0.0
27 0.0
28 -0.0
29 -0.0
30 0.0
31 0.0
32 0.0
33 0.0
34 0.0
35 -0.0
36 -0.0
37 -0.0
38 -0.0
39 0.0
40 -0.0
41 -0.0
42 0.0
43 -0.0
44 -0.0
45 0.0
46 0.0
47 0.0
48 0.0
49 0.0
50 -0.0
51 0.0
52 0.0
53 -0.0
54 0.0
55 -0.0
56 -0.0
57 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 12/25
Population ScattererID
population 0 -0.0
1 0.0
2 -0.0
3 -0.0
4 -0.0
5 -0.0
6 -0.0
7 0.0
8 -0.0
9 0.0
10 0.0
11 0.0
12 0.0
13 -0.0
14 -0.0
15 0.0
16 -0.0
17 -0.0
18 0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 -0.0
24 -0.0
25 0.0
26 0.0
27 0.0
28 0.0
29 0.0
30 -0.0
31 0.0
32 0.0
33 0.0
34 0.0
35 0.0
36 -0.0
37 -0.0
38 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 13/25
Population ScattererID
population 0 -0.0
1 -0.0
2 0.0
3 -0.0
4 -0.0
5 0.0
6 0.0
7 -0.0
8 -0.0
9 -0.0
10 -0.0
11 0.0
12 -0.0
13 -0.0
14 0.0
15 0.0
16 -0.0
17 -0.0
18 0.0
19 0.0
20 -0.0
21 0.0
22 -0.0
23 -0.0
24 0.0
25 0.0
26 -0.0
27 0.0
28 -0.0
29 -0.0
30 -0.0
31 0.0
32 0.0
33 0.0
34 0.0
35 0.0
36 0.0
37 -0.0
38 -0.0
39 -0.0
40 0.0
41 -0.0
42 -0.0
43 0.0
44 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 14/25
Population ScattererID
population 0 0.0
1 -0.0
2 -0.0
3 0.0
4 -0.0
5 0.0
6 -0.0
7 -0.0
8 -0.0
9 0.0
10 0.0
11 -0.0
12 0.0
13 -0.0
14 -0.0
15 -0.0
16 0.0
17 -0.0
18 0.0
19 -0.0
20 0.0
21 -0.0
22 -0.0
23 -0.0
24 0.0
25 0.0
26 -0.0
27 -0.0
28 -0.0
29 -0.0
30 -0.0
31 0.0
32 0.0
33 -0.0
34 0.0
35 -0.0
36 -0.0
37 -0.0
38 -0.0
39 -0.0
40 0.0
41 0.0
42 0.0
43 -0.0
44 0.0
45 0.0
46 0.0
47 0.0
48 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 15/25
Population ScattererID
population 0 0.0
1 -0.0
2 -0.0
3 0.0
4 0.0
5 -0.0
6 0.0
7 -0.0
8 -0.0
9 0.0
10 0.0
11 0.0
12 -0.0
13 0.0
14 0.0
15 0.0
16 -0.0
17 -0.0
18 0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 -0.0
24 -0.0
25 0.0
26 -0.0
27 0.0
28 -0.0
29 0.0
30 -0.0
31 -0.0
32 -0.0
33 0.0
34 0.0
35 -0.0
36 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 16/25
Population ScattererID
population 0 0.0
1 -0.0
2 -0.0
3 0.0
4 0.0
5 -0.0
6 0.0
7 0.0
8 0.0
9 0.0
10 0.0
11 0.0
12 -0.0
13 0.0
14 0.0
15 -0.0
16 -0.0
17 0.0
18 0.0
19 0.0
20 -0.0
21 0.0
22 0.0
23 -0.0
24 0.0
25 0.0
26 0.0
27 0.0
28 0.0
29 -0.0
30 -0.0
31 -0.0
32 0.0
33 0.0
34 0.0
35 -0.0
36 -0.0
37 0.0
38 -0.0
39 -0.0
40 -0.0
41 -0.0
42 0.0
43 0.0
44 -0.0
45 -0.0
46 0.0
47 0.0
48 -0.0
49 0.0
50 -0.0
51 -0.0
52 -0.0
53 -0.0
54 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 17/25
Population ScattererID
population 0 -0.0
1 -0.0
2 0.0
3 -0.0
4 -0.0
5 0.0
6 0.0
7 -0.0
8 -0.0
9 -0.0
10 -0.0
11 0.0
12 -0.0
13 0.0
14 -0.0
15 -0.0
16 0.0
17 0.0
18 -0.0
19 -0.0
20 0.0
21 -0.0
22 -0.0
23 0.0
24 0.0
25 -0.0
26 0.0
27 0.0
28 0.0
29 -0.0
30 -0.0
31 0.0
32 0.0
33 0.0
34 0.0
35 -0.0
36 -0.0
37 -0.0
38 0.0
39 -0.0
40 0.0
41 0.0
42 -0.0
43 -0.0
44 -0.0
45 -0.0
46 -0.0
47 -0.0
48 -0.0
49 -0.0
50 0.0
51 -0.0
52 -0.0
53 -0.0
54 -0.0
55 -0.0
56 0.0
57 0.0
58 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 18/25
Population ScattererID
population 0 0.0
1 0.0
2 -0.0
3 -0.0
4 0.0
5 0.0
6 -0.0
7 0.0
8 0.0
9 -0.0
10 0.0
11 -0.0
12 -0.0
13 0.0
14 -0.0
15 0.0
16 0.0
17 -0.0
18 -0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 -0.0
24 0.0
25 -0.0
26 -0.0
27 0.0
28 -0.0
29 -0.0
30 0.0
31 0.0
32 0.0
33 -0.0
34 0.0
35 0.0
36 0.0
37 0.0
38 0.0
39 0.0
40 -0.0
41 0.0
42 -0.0
43 -0.0
44 -0.0
45 -0.0
46 -0.0
47 -0.0
48 0.0
49 -0.0
50 -0.0
51 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 19/25
Population ScattererID
population 0 -0.0
1 -0.0
2 -0.0
3 0.0
4 0.0
5 -0.0
6 -0.0
7 -0.0
8 0.0
9 -0.0
10 -0.0
11 0.0
12 -0.0
13 0.0
14 -0.0
15 0.0
16 0.0
17 -0.0
18 0.0
19 -0.0
20 -0.0
21 0.0
22 -0.0
23 -0.0
24 0.0
25 -0.0
26 0.0
27 0.0
28 -0.0
29 0.0
30 -0.0
31 -0.0
32 0.0
33 -0.0
34 -0.0
35 -0.0
36 0.0
37 -0.0
38 -0.0
39 -0.0
40 0.0
41 -0.0
42 -0.0
43 0.0
44 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 20/25
Population ScattererID
population 0 -0.0
1 0.0
2 -0.0
3 0.0
4 -0.0
5 -0.0
6 0.0
7 0.0
8 -0.0
9 -0.0
10 0.0
11 -0.0
12 0.0
13 0.0
14 0.0
15 -0.0
16 0.0
17 -0.0
18 -0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 0.0
24 0.0
25 0.0
26 -0.0
27 0.0
28 0.0
29 -0.0
30 -0.0
31 -0.0
32 0.0
33 0.0
34 0.0
35 0.0
36 0.0
37 0.0
38 -0.0
39 -0.0
40 -0.0
41 -0.0
42 -0.0
43 -0.0
44 -0.0
45 -0.0
46 -0.0
47 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 21/25
Population ScattererID
population 0 0.0
1 0.0
2 0.0
3 0.0
4 -0.0
...
56 0.0
57 0.0
58 0.0
59 -0.0
60 0.0
Name: y, Length: 61, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 22/25
Population ScattererID
population 0 -0.0
1 0.0
2 -0.0
3 -0.0
4 0.0
5 -0.0
6 -0.0
7 -0.0
8 -0.0
9 0.0
10 0.0
11 0.0
12 0.0
13 -0.0
14 0.0
15 0.0
16 0.0
17 -0.0
18 -0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 -0.0
24 0.0
25 -0.0
26 0.0
27 0.0
28 -0.0
29 -0.0
30 -0.0
31 0.0
32 -0.0
33 -0.0
34 -0.0
35 0.0
36 0.0
37 0.0
38 0.0
39 -0.0
40 0.0
41 0.0
42 -0.0
43 -0.0
44 0.0
45 -0.0
46 -0.0
47 -0.0
48 -0.0
49 0.0
50 0.0
51 -0.0
52 0.0
53 0.0
54 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 23/25
Population ScattererID
population 0 -0.0
1 0.0
2 0.0
3 -0.0
4 0.0
5 -0.0
6 0.0
7 0.0
8 0.0
9 0.0
10 -0.0
11 0.0
12 0.0
13 -0.0
14 0.0
15 0.0
16 -0.0
17 -0.0
18 -0.0
19 -0.0
20 -0.0
21 -0.0
22 -0.0
23 0.0
24 -0.0
25 0.0
26 -0.0
27 -0.0
28 0.0
29 -0.0
30 -0.0
31 0.0
32 0.0
33 -0.0
34 0.0
35 -0.0
36 -0.0
37 0.0
38 0.0
39 -0.0
40 0.0
41 -0.0
42 0.0
43 0.0
44 0.0
45 0.0
46 -0.0
47 -0.0
48 0.0
49 -0.0
50 0.0
51 0.0
52 0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 24/25
Population ScattererID
population 0 -0.0
1 0.0
2 -0.0
3 -0.0
4 0.0
5 -0.0
6 0.0
7 -0.0
8 0.0
9 0.0
10 -0.0
11 0.0
12 0.0
13 -0.0
14 -0.0
15 -0.0
16 -0.0
17 -0.0
18 0.0
19 -0.0
20 0.0
21 0.0
22 0.0
23 0.0
24 0.0
25 0.0
26 0.0
27 0.0
28 0.0
29 0.0
30 0.0
31 0.0
32 0.0
33 -0.0
34 -0.0
35 0.0
36 0.0
37 0.0
38 -0.0
39 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
[INFO] Running simulation 25/25
Population ScattererID
population 0 -0.0
1 -0.0
2 0.0
3 0.0
4 -0.0
5 -0.0
6 -0.0
7 -0.0
8 -0.0
9 -0.0
10 -0.0
11 0.0
12 -0.0
13 -0.0
14 -0.0
15 0.0
16 0.0
17 -0.0
18 -0.0
19 -0.0
20 -0.0
21 0.0
22 -0.0
23 0.0
24 0.0
25 -0.0
26 0.0
27 0.0
28 -0.0
29 0.0
30 0.0
31 -0.0
32 -0.0
33 0.0
34 0.0
35 0.0
36 0.0
37 0.0
38 0.0
39 -0.0
40 -0.0
41 -0.0
42 -0.0
43 0.0
44 0.0
45 0.0
46 -0.0
47 0.0
48 0.0
49 -0.0
50 0.0
51 -0.0
Name: y, dtype: pint[meter][Float64] 716.1972439135291 nanometer
Plot estimation and diagnostics#
j_estimator.plot()

Plot relevant statistics#
j_estimator.plot_statistics()

Total running time of the script: (0 minutes 48.850 seconds)