diff --git a/auto/Examples/fit/scatter2d/custom_objective_function.py b/auto/Examples/fit/scatter2d/custom_objective_function.py index c37ff65eab0e98ce84c1012ac5f6e54a3bab7dfa..00d61fc9e3547e448e9c237556e7a8ba9df9feec 100755 --- a/auto/Examples/fit/scatter2d/custom_objective_function.py +++ b/auto/Examples/fit/scatter2d/custom_objective_function.py @@ -35,7 +35,7 @@ if __name__ == '__main__': data = model.fake_data() objective = MyObjective() - objective.addSimulationAndData(model.get_simulation, data, 1) + objective.addFitPair(model.get_simulation, data, 1) objective.initPrint(10) P = ba.Parameters() diff --git a/auto/Examples/fit/scatter2d/find_background.py b/auto/Examples/fit/scatter2d/find_background.py index a6d19c9b75e1a3ca4634470c28f0f1059a2a85d5..72565a617972f409f5a47aa5d92294e6018949cc 100755 --- a/auto/Examples/fit/scatter2d/find_background.py +++ b/auto/Examples/fit/scatter2d/find_background.py @@ -42,7 +42,6 @@ def fake_data(): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array return result diff --git a/auto/Examples/fit/scatter2d/fit_along_slices.py b/auto/Examples/fit/scatter2d/fit_along_slices.py index 5f52ff7062b0b952d995b4364900de8d31783e5e..086302dcc8dc61ccc8824c0bde0e8916da4c3511 100755 --- a/auto/Examples/fit/scatter2d/fit_along_slices.py +++ b/auto/Examples/fit/scatter2d/fit_along_slices.py @@ -35,12 +35,11 @@ def fake_data(): # initial values which we will have to find later during the fit P = {'radius': 5*nm, 'height': 10*nm} - # retrieving simulated data in the form of numpy array simulation = model.get_simulation(P) simulation.setBackground(ba.PoissonBackground()) result = simulation.simulate() - return result + return result.noisy(0.1, 0.1) class PlotObserver: diff --git a/auto/Examples/fit/scatter2d/fit_with_masks.py b/auto/Examples/fit/scatter2d/fit_with_masks.py index 33e27317530ad730e1fa154753152d5cd3e6eb4f..95acd099683df91c9522b7f599ffa81379c0ef46 100755 --- a/auto/Examples/fit/scatter2d/fit_with_masks.py +++ b/auto/Examples/fit/scatter2d/fit_with_masks.py @@ -56,10 +56,10 @@ def add_mask_to_simulation(simulation): if __name__ == '__main__': - data = model.fake_data() + data = model.fake_data().noisy(0.1, 0.1) fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(get_masked_simulation, data, 1) + fit_objective.addFitPair(get_masked_simulation, data, 1) fit_objective.initPrint(10) observer = ba_fitmonitor.PlotterGISAS() fit_objective.initPlot(10, observer) diff --git a/auto/Examples/fit/scatter2d/lmfit_basics.py b/auto/Examples/fit/scatter2d/lmfit_basics.py index 845e086ef12ac6a01db810859066f9577e6f712e..ff4a7afe4978a3bfbb572452626fe2b78fa970ca 100755 --- a/auto/Examples/fit/scatter2d/lmfit_basics.py +++ b/auto/Examples/fit/scatter2d/lmfit_basics.py @@ -12,7 +12,7 @@ if __name__ == '__main__': data = model.fake_data() fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(model.get_simulation, data, 1) + fit_objective.addFitPair(model.get_simulation, data, 1) fit_objective.initPrint(10) P = lmfit.Parameters() diff --git a/auto/Examples/fit/scatter2d/lmfit_with_plotting.py b/auto/Examples/fit/scatter2d/lmfit_with_plotting.py index 6054cfc413b9b6c62723ed80d6eaf757efae3573..4b2785ee77f4c8d231a8725b5f79fd5e4c9eba46 100755 --- a/auto/Examples/fit/scatter2d/lmfit_with_plotting.py +++ b/auto/Examples/fit/scatter2d/lmfit_with_plotting.py @@ -28,13 +28,13 @@ if __name__ == '__main__': data = model.fake_data() fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(model.get_simulation, data, 1) + fit_objective.addFitPair(model.get_simulation, data, 1) fit_objective.initPrint(10) P = lmfit.Parameters() P.add('radius', value=7*nm, min=5*nm, max=8*nm) P.add('length', value=10*nm, min=8*nm, max=14*nm) - + plotter = LMFITPlotter(fit_objective) result = lmfit.minimize(fit_objective.evaluate_residuals, P, iter_cb=plotter) diff --git a/auto/Examples/fit/scatter2d/model1_cylinders.py b/auto/Examples/fit/scatter2d/model1_cylinders.py index 3f6b70be7dac82a13ee7cc72824f5ea5083c5c41..bcc2435f299c0e98ea231b61c495afb0bfa200e9 100755 --- a/auto/Examples/fit/scatter2d/model1_cylinders.py +++ b/auto/Examples/fit/scatter2d/model1_cylinders.py @@ -48,13 +48,7 @@ def fake_data(): """ P = {'radius': 5*nm, 'height': 10*nm} - # retrieving simulated data in the form of numpy array simulation = get_simulation(P) result = simulation.simulate() - data = result.npArray() - # spoiling simulated data with the noise to produce "real" data - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) diff --git a/auto/Examples/fit/scatter2d/model2_hexlattice.py b/auto/Examples/fit/scatter2d/model2_hexlattice.py index 868eede0966262f58913296b19bd9a81281b1e80..5cf760658db0df82d90cd1e57c24b6bfba6980e8 100755 --- a/auto/Examples/fit/scatter2d/model2_hexlattice.py +++ b/auto/Examples/fit/scatter2d/model2_hexlattice.py @@ -56,12 +56,4 @@ def fake_data(): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array - data = result.npArray() - - # spoiling simulated data with noise to produce "real" data - np.random.seed(0) - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) diff --git a/auto/Examples/fit/scatter2d/multiple_datasets.py b/auto/Examples/fit/scatter2d/multiple_datasets.py index 7fe0eb29292aa6f5a91dce1c1da9e7ab6a454108..9def2912788efeb28804f15137e2bba9e2ecccdd 100755 --- a/auto/Examples/fit/scatter2d/multiple_datasets.py +++ b/auto/Examples/fit/scatter2d/multiple_datasets.py @@ -73,14 +73,7 @@ def fake_data(incident_alpha): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array - data = result.npArray() - - # spoiling simulated data with the noise to produce "real" data - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) class PlotObserver(): @@ -193,8 +186,8 @@ def run_fitting(): data2 = fake_data(0.4*deg) fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(simulation1, data1, 1) - fit_objective.addSimulationAndData(simulation2, data2, 1) + fit_objective.addFitPair(simulation1, data1, 1) + fit_objective.addFitPair(simulation2, data2, 1) fit_objective.initPrint(10) # creating custom observer which will draw fit progress diff --git a/auto/MiniExamples/fit/scatter2d/custom_objective_function.py b/auto/MiniExamples/fit/scatter2d/custom_objective_function.py index c37ff65eab0e98ce84c1012ac5f6e54a3bab7dfa..00d61fc9e3547e448e9c237556e7a8ba9df9feec 100755 --- a/auto/MiniExamples/fit/scatter2d/custom_objective_function.py +++ b/auto/MiniExamples/fit/scatter2d/custom_objective_function.py @@ -35,7 +35,7 @@ if __name__ == '__main__': data = model.fake_data() objective = MyObjective() - objective.addSimulationAndData(model.get_simulation, data, 1) + objective.addFitPair(model.get_simulation, data, 1) objective.initPrint(10) P = ba.Parameters() diff --git a/auto/MiniExamples/fit/scatter2d/find_background.py b/auto/MiniExamples/fit/scatter2d/find_background.py index c70267287c33ee0b34c6f366e86274d5fa27ba95..adf22b4dee316aa098ba68960ba4c46e933f702a 100755 --- a/auto/MiniExamples/fit/scatter2d/find_background.py +++ b/auto/MiniExamples/fit/scatter2d/find_background.py @@ -42,7 +42,6 @@ def fake_data(): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array return result diff --git a/auto/MiniExamples/fit/scatter2d/fit_along_slices.py b/auto/MiniExamples/fit/scatter2d/fit_along_slices.py index 659e1ab348560b46469f32ed8b6edb1acc1d9ebf..9383f16397d0ed7efda33f804e38dfd3de4778d0 100755 --- a/auto/MiniExamples/fit/scatter2d/fit_along_slices.py +++ b/auto/MiniExamples/fit/scatter2d/fit_along_slices.py @@ -35,12 +35,11 @@ def fake_data(): # initial values which we will have to find later during the fit P = {'radius': 5*nm, 'height': 10*nm} - # retrieving simulated data in the form of numpy array simulation = model.get_simulation(P) simulation.setBackground(ba.PoissonBackground()) result = simulation.simulate() - return result + return result.noisy(0.1, 0.1) class PlotObserver: diff --git a/auto/MiniExamples/fit/scatter2d/fit_with_masks.py b/auto/MiniExamples/fit/scatter2d/fit_with_masks.py index dbbffebcd73bfc0a08df7179042e4441438bde59..ca1130b852b4c877b4fafa3c355a0562a895cbd6 100755 --- a/auto/MiniExamples/fit/scatter2d/fit_with_masks.py +++ b/auto/MiniExamples/fit/scatter2d/fit_with_masks.py @@ -56,10 +56,10 @@ def add_mask_to_simulation(simulation): if __name__ == '__main__': - data = model.fake_data() + data = model.fake_data().noisy(0.1, 0.1) fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(get_masked_simulation, data, 1) + fit_objective.addFitPair(get_masked_simulation, data, 1) fit_objective.initPrint(10) observer = ba_fitmonitor.PlotterGISAS() plt.close() # (hide plot) fit_objective.initPlot(10, observer) diff --git a/auto/MiniExamples/fit/scatter2d/lmfit_basics.py b/auto/MiniExamples/fit/scatter2d/lmfit_basics.py index 845e086ef12ac6a01db810859066f9577e6f712e..ff4a7afe4978a3bfbb572452626fe2b78fa970ca 100755 --- a/auto/MiniExamples/fit/scatter2d/lmfit_basics.py +++ b/auto/MiniExamples/fit/scatter2d/lmfit_basics.py @@ -12,7 +12,7 @@ if __name__ == '__main__': data = model.fake_data() fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(model.get_simulation, data, 1) + fit_objective.addFitPair(model.get_simulation, data, 1) fit_objective.initPrint(10) P = lmfit.Parameters() diff --git a/auto/MiniExamples/fit/scatter2d/lmfit_with_plotting.py b/auto/MiniExamples/fit/scatter2d/lmfit_with_plotting.py index d0d4ef5d32ab0c20553261c8cdde88f993acc127..643fa35722e31a7fe6fd8dbe278b5b820c9aecfe 100755 --- a/auto/MiniExamples/fit/scatter2d/lmfit_with_plotting.py +++ b/auto/MiniExamples/fit/scatter2d/lmfit_with_plotting.py @@ -28,13 +28,13 @@ if __name__ == '__main__': data = model.fake_data() fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(model.get_simulation, data, 1) + fit_objective.addFitPair(model.get_simulation, data, 1) fit_objective.initPrint(10) P = lmfit.Parameters() P.add('radius', value=7*nm, min=5*nm, max=8*nm) P.add('length', value=10*nm, min=8*nm, max=14*nm) - + result = lmfit.minimize(fit_objective.evaluate_residuals, P) diff --git a/auto/MiniExamples/fit/scatter2d/model1_cylinders.py b/auto/MiniExamples/fit/scatter2d/model1_cylinders.py index 6c6da038f425d4c01db4fa07177ca70396da75c4..b2bbf592a80e5762a1d962fc029bd13e82b3e19b 100755 --- a/auto/MiniExamples/fit/scatter2d/model1_cylinders.py +++ b/auto/MiniExamples/fit/scatter2d/model1_cylinders.py @@ -48,13 +48,7 @@ def fake_data(): """ P = {'radius': 5*nm, 'height': 10*nm} - # retrieving simulated data in the form of numpy array simulation = get_simulation(P) result = simulation.simulate() - data = result.npArray() - # spoiling simulated data with the noise to produce "real" data - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) diff --git a/auto/MiniExamples/fit/scatter2d/model2_hexlattice.py b/auto/MiniExamples/fit/scatter2d/model2_hexlattice.py index df2d9533eb52dc87cbd7b79e85093f2f1dc0597e..e65c5f0bd9782637c6d6afca225d38915545e4f5 100755 --- a/auto/MiniExamples/fit/scatter2d/model2_hexlattice.py +++ b/auto/MiniExamples/fit/scatter2d/model2_hexlattice.py @@ -56,12 +56,4 @@ def fake_data(): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array - data = result.npArray() - - # spoiling simulated data with noise to produce "real" data - np.random.seed(0) - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) diff --git a/auto/MiniExamples/fit/scatter2d/multiple_datasets.py b/auto/MiniExamples/fit/scatter2d/multiple_datasets.py index 0c6adf23897f32b1e62ed7d7764209abe00269ba..aa1f4d20cc8d656edc88af848566790ed5e8bfed 100755 --- a/auto/MiniExamples/fit/scatter2d/multiple_datasets.py +++ b/auto/MiniExamples/fit/scatter2d/multiple_datasets.py @@ -73,14 +73,7 @@ def fake_data(incident_alpha): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array - data = result.npArray() - - # spoiling simulated data with the noise to produce "real" data - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) class PlotObserver(): @@ -193,8 +186,8 @@ def run_fitting(): data2 = fake_data(0.4*deg) fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(simulation1, data1, 1) - fit_objective.addSimulationAndData(simulation2, data2, 1) + fit_objective.addFitPair(simulation1, data1, 1) + fit_objective.addFitPair(simulation2, data2, 1) fit_objective.initPrint(10) # creating custom observer which will draw fit progress diff --git a/rawEx/fit/scatter2d/custom_objective_function.py b/rawEx/fit/scatter2d/custom_objective_function.py index c37ff65eab0e98ce84c1012ac5f6e54a3bab7dfa..00d61fc9e3547e448e9c237556e7a8ba9df9feec 100755 --- a/rawEx/fit/scatter2d/custom_objective_function.py +++ b/rawEx/fit/scatter2d/custom_objective_function.py @@ -35,7 +35,7 @@ if __name__ == '__main__': data = model.fake_data() objective = MyObjective() - objective.addSimulationAndData(model.get_simulation, data, 1) + objective.addFitPair(model.get_simulation, data, 1) objective.initPrint(10) P = ba.Parameters() diff --git a/rawEx/fit/scatter2d/find_background.py b/rawEx/fit/scatter2d/find_background.py index 788d5f6001571ee8d979b18c7733d8c870d141bf..8720eb52d8d6f95aa9efa421f2fdd582a82129fb 100755 --- a/rawEx/fit/scatter2d/find_background.py +++ b/rawEx/fit/scatter2d/find_background.py @@ -42,7 +42,6 @@ def fake_data(): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array return result diff --git a/rawEx/fit/scatter2d/fit_along_slices.py b/rawEx/fit/scatter2d/fit_along_slices.py index 66806408aee61505dd0a866bd349fb5ddc5192b2..da6989c7adb1df19204ddd275500dfc98288d484 100755 --- a/rawEx/fit/scatter2d/fit_along_slices.py +++ b/rawEx/fit/scatter2d/fit_along_slices.py @@ -35,12 +35,11 @@ def fake_data(): # initial values which we will have to find later during the fit P = {'radius': 5*nm, 'height': 10*nm} - # retrieving simulated data in the form of numpy array simulation = model.get_simulation(P) simulation.setBackground(ba.PoissonBackground()) result = simulation.simulate() - return result + return result.noisy(0.1, 0.1) class PlotObserver: diff --git a/rawEx/fit/scatter2d/fit_with_masks.py b/rawEx/fit/scatter2d/fit_with_masks.py index 8dd587b269354a8f5e21ab234cfe1fee1c0f6c5e..aaf0159d64602932b5ee0a1812ba5dff86f3bb0a 100755 --- a/rawEx/fit/scatter2d/fit_with_masks.py +++ b/rawEx/fit/scatter2d/fit_with_masks.py @@ -56,10 +56,10 @@ def add_mask_to_simulation(simulation): if __name__ == '__main__': - data = model.fake_data() + data = model.fake_data().noisy(0.1, 0.1) fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(get_masked_simulation, data, 1) + fit_objective.addFitPair(get_masked_simulation, data, 1) fit_objective.initPrint(10) observer = ba_fitmonitor.PlotterGISAS() <%= sm ? "plt.close() # (hide plot) " :"" %>fit_objective.initPlot(10, observer) diff --git a/rawEx/fit/scatter2d/lmfit_basics.py b/rawEx/fit/scatter2d/lmfit_basics.py index 845e086ef12ac6a01db810859066f9577e6f712e..ff4a7afe4978a3bfbb572452626fe2b78fa970ca 100755 --- a/rawEx/fit/scatter2d/lmfit_basics.py +++ b/rawEx/fit/scatter2d/lmfit_basics.py @@ -12,7 +12,7 @@ if __name__ == '__main__': data = model.fake_data() fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(model.get_simulation, data, 1) + fit_objective.addFitPair(model.get_simulation, data, 1) fit_objective.initPrint(10) P = lmfit.Parameters() diff --git a/rawEx/fit/scatter2d/lmfit_with_plotting.py b/rawEx/fit/scatter2d/lmfit_with_plotting.py index 267e8135dd5394e55fadab892daf86642913baac..7e68bd8c35b0412ae8c948a426cc0d5e5b7cb0ab 100755 --- a/rawEx/fit/scatter2d/lmfit_with_plotting.py +++ b/rawEx/fit/scatter2d/lmfit_with_plotting.py @@ -28,13 +28,13 @@ if __name__ == '__main__': data = model.fake_data() fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(model.get_simulation, data, 1) + fit_objective.addFitPair(model.get_simulation, data, 1) fit_objective.initPrint(10) P = lmfit.Parameters() P.add('radius', value=7*nm, min=5*nm, max=8*nm) P.add('length', value=10*nm, min=8*nm, max=14*nm) - + <%= sm ? "" :"plotter = LMFITPlotter(fit_objective)" %> result = lmfit.minimize(fit_objective.evaluate_residuals, P<%= sm ? "" :", iter_cb=plotter" %>) diff --git a/rawEx/fit/scatter2d/model1_cylinders.py b/rawEx/fit/scatter2d/model1_cylinders.py index 32d2ebdaf928ebada63a9e39fd4dce877b05f304..56d6d4e11bdc95d2d4cc7e0acb9ccb9a16ff37a8 100644 --- a/rawEx/fit/scatter2d/model1_cylinders.py +++ b/rawEx/fit/scatter2d/model1_cylinders.py @@ -48,13 +48,7 @@ def fake_data(): """ P = {'radius': 5*nm, 'height': 10*nm} - # retrieving simulated data in the form of numpy array simulation = get_simulation(P) result = simulation.simulate() - data = result.npArray() - # spoiling simulated data with the noise to produce "real" data - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) diff --git a/rawEx/fit/scatter2d/model2_hexlattice.py b/rawEx/fit/scatter2d/model2_hexlattice.py index 83ad1dd15681ba7325185085efdd858eb7941f88..e6f82616e2a187b9a576e44b1f599de6230af5d2 100644 --- a/rawEx/fit/scatter2d/model2_hexlattice.py +++ b/rawEx/fit/scatter2d/model2_hexlattice.py @@ -56,12 +56,4 @@ def fake_data(): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array - data = result.npArray() - - # spoiling simulated data with noise to produce "real" data - np.random.seed(0) - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) diff --git a/rawEx/fit/scatter2d/multiple_datasets.py b/rawEx/fit/scatter2d/multiple_datasets.py index 82d6b48e0dd966c77b673062f7f75a72f8ac7292..5edec05979f6e0406da6049f0c9f81f5c4528860 100755 --- a/rawEx/fit/scatter2d/multiple_datasets.py +++ b/rawEx/fit/scatter2d/multiple_datasets.py @@ -73,14 +73,7 @@ def fake_data(incident_alpha): simulation = get_simulation(P) result = simulation.simulate() - # retrieving simulated data in the form of numpy array - data = result.npArray() - - # spoiling simulated data with the noise to produce "real" data - noise_factor = 0.1 - noisy = np.random.normal(data, noise_factor*np.sqrt(data)) - noisy[noisy < 0.1] = 0.1 - return noisy + return result.noisy(0.1, 0.1) class PlotObserver(): @@ -193,8 +186,8 @@ def run_fitting(): data2 = fake_data(0.4*deg) fit_objective = ba.FitObjective() - fit_objective.addSimulationAndData(simulation1, data1, 1) - fit_objective.addSimulationAndData(simulation2, data2, 1) + fit_objective.addFitPair(simulation1, data1, 1) + fit_objective.addFitPair(simulation2, data2, 1) fit_objective.initPrint(10) # creating custom observer which will draw fit progress