PEMtk fitting setup & batch run demo
22/08/22
Updated version including:
parallel fitting routine with
self.multiFit()
method. This uses XYZpy library for quick parallelization.data IO with
self.writeFitData()
method.fitting now supports additional backends, these are set in
self.fitOpts
. For a list of available backends runself.backends()
. Currently this implements support for AF or MF fitting routines.
06/06/21
Outline of this notebook:
Use
setup_fit_demo.py
script to load data and setup fitting environment.Run a batch of fits…
run batch
load a batch
Exploring the results… see the analysis notebook for more.
Setup
[1]:
# Import & set paths
import pemtk
from pemtk.fit.fitClass import pemtkFit
from pathlib import Path
# Path for demo script
demoPath = Path(pemtk.__file__).parent.parent/Path('demos','fitting')
# Run demo script to configure workspace
%run {demoPath/"setup_fit_demo.py"}
*** ePSproc installation not found, setting for local copy.
* Setting plotter defaults with epsproc.basicPlotters.setPlotters(). Run directly to modify, or change options in local env.
* Set Holoviews with bokeh.
C:\Users\femtolab\.conda\envs\ePSdev\lib\site-packages\xyzpy\plot\xyz_cmaps.py:6: MatplotlibDeprecationWarning:
The revcmap function was deprecated in Matplotlib 3.2 and will be removed two minor releases later. Use Colormap.reversed() instead.
return LinearSegmentedColormap(name, cm.revcmap(cmap._segmentdata))
*** Setting up demo fitting workspace and main `data` class object...
For more details see https://pemtk.readthedocs.io/en/latest/fitting/PEMtk_fitting_basic_demo_030621-full.html
To use local source code, pass the parent path to this script at run time, e.g. "setup_fit_demo ~/github"
* Loading packages...
* Set Holoviews with bokeh.
* Loading demo matrix element data from D:\code\github\ePSproc\data\photoionization\n2_multiorb...
*** Job subset details
Key: subset
No 'job' info set for self.data[subset].
*** Job orb6 details
Key: orb6
Dir D:\code\github\ePSproc\data\photoionization\n2_multiorb, 1 file(s).
{ 'batch': 'ePS n2, batch n2_1pu_0.1-50.1eV, orbital A2',
'event': ' N2 A-state (1piu-1)',
'orbE': -17.096913836366,
'orbLabel': '1piu-1'}
*** Job orb5 details
Key: orb5
Dir D:\code\github\ePSproc\data\photoionization\n2_multiorb, 1 file(s).
{ 'batch': 'ePS n2, batch n2_3sg_0.1-50.1eV, orbital A2',
'event': ' N2 X-state (3sg-1)',
'orbE': -17.341816310545997,
'orbLabel': '3sg-1'}
* Loading demo ADM data from D:\code\github\ePSproc\data\alignment\N2_ADM_VM_290816.mat...
* Subselecting data...
Subselected from dataset 'orb5', dataType 'matE': 36 from 11016 points (0.33%)
Subselected from dataset 'pol', dataType 'pol': 1 from 3 points (33.33%)
Subselected from dataset 'ADM', dataType 'ADM': 52 from 14764 points (0.35%)
* Calculating AF-BLMs...
Subselected from dataset 'sim', dataType 'AFBLM': 195 from 195 points (100.00%)
*Setting up fit parameters (with constraints)...
Set 6 complex matrix elements to 12 fitting params, see self.params for details.
*** Warning, parameter m_PU_SG_PU_1_n1_1 not present, skipping constraint m_PU_SG_PU_1_n1_1 = m_PU_SG_PU_1_1_n1
*** Warning, parameter p_PU_SG_PU_1_n1_1 not present, skipping constraint p_PU_SG_PU_1_n1_1 = p_PU_SG_PU_1_1_n1
*** Warning, parameter m_PU_SG_PU_3_n1_1 not present, skipping constraint m_PU_SG_PU_3_n1_1 = m_PU_SG_PU_3_1_n1
*** Warning, parameter p_PU_SG_PU_3_n1_1 not present, skipping constraint p_PU_SG_PU_3_n1_1 = p_PU_SG_PU_3_1_n1
name | value | initial value | min | max | vary |
---|---|---|---|---|---|
m_PU_SG_PU_1_n1_1_1 | 1.78461575 | 1.784615753610107 | 1.0000e-04 | 5.00000000 | True |
m_PU_SG_PU_1_1_n1_1 | 1.78461575 | 1.784615753610107 | 1.0000e-04 | 5.00000000 | True |
m_PU_SG_PU_3_n1_1_1 | 0.80290495 | 0.802904951323892 | 1.0000e-04 | 5.00000000 | True |
m_PU_SG_PU_3_1_n1_1 | 0.80290495 | 0.802904951323892 | 1.0000e-04 | 5.00000000 | True |
m_SU_SG_SU_1_0_0_1 | 2.68606212 | 2.686062120382649 | 1.0000e-04 | 5.00000000 | True |
m_SU_SG_SU_3_0_0_1 | 1.10915311 | 1.109153108617096 | 1.0000e-04 | 5.00000000 | True |
p_PU_SG_PU_1_n1_1_1 | -0.86104140 | -0.8610414024232179 | -3.14159265 | 3.14159265 | False |
p_PU_SG_PU_1_1_n1_1 | -0.86104140 | -0.8610414024232179 | -3.14159265 | 3.14159265 | True |
p_PU_SG_PU_3_n1_1_1 | -3.12044446 | -3.1204444620772467 | -3.14159265 | 3.14159265 | True |
p_PU_SG_PU_3_1_n1_1 | -3.12044446 | -3.1204444620772467 | -3.14159265 | 3.14159265 | True |
p_SU_SG_SU_1_0_0_1 | 2.61122920 | 2.611229196458127 | -3.14159265 | 3.14159265 | True |
p_SU_SG_SU_3_0_0_1 | -0.07867828 | -0.07867827542158025 | -3.14159265 | 3.14159265 | True |
*** Setup demo fitting workspace OK.
Run fits
For this notebook, we’ll either (a) run a batch of fits or (b) load sample data.
With the current codebase, running multiple fits will default to using the same basis set, and output results sequentially to the main self.data
dictionary.
Update 20/08/22: fitting now supports additional backends, these are set in self.fitOpts
. For a list of available backends run self.backends()
. Currently this implements support for AF or MF fitting routines.
(a) Run a batch
(1) serial execution
Either:
Manually with a loop.
With
self.multiFit()
method, although this is optimised for parallel execution (see below).
[4]:
import time
start = time.time()
# Maual execution
for n in range(0,100):
data.randomizeParams()
data.fit()
end = time.time()
print((end - start)/60)
# Or run with self.multiFit(parallel = False)
# data.multiFit(nRange = [0,100], parallel = False)
162.9227277914683
[10]:
# We now have 100 fit results
data.data.keys()
[10]:
dict_keys(['orb6', 'orb5', 'ADM', 'pol', 'subset', 'sim', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
[3]:
# Quick data dump
# TODO: better save routine (json/h5).
# Now wrapped in self.writeFitData(), see https://github.com/phockett/PEMtk/issues/6 and docs at https://epsproc.readthedocs.io/en/dev/dataStructures/ePSproc_dataStructures_IO_demo_280622.html
# import pickle
# with open('dataDump_100fitTests_130621.pickle', 'wb') as handle:
# pickle.dump(data.data, handle, protocol=pickle.HIGHEST_PROTOCOL)
# Data IO with self.writeFitData()
# This will default to the working dir and set a data-stamped file name if nothing is passed.
data.writeFitData()
[3]:
WindowsPath('D:/code/python/jupyterNotebooks/dev/PEMtk/fitting/tidy_for_docs/dataDump_220822_16-32-02.pickle')
(2) parallel execution
Updated version including parallel fitting routine with self.multiFit()
method.
This currently uses the XYZpy library for quick parallelization, although there is some additional setup overhead in the currently implementation due to class init per fit batch. The default aims to set ~90% CPU usage, based on core-count.
[5]:
data.multiFit(nRange = [0,100])
0%| | 0/100 [00:00<?, ?it/s]C:\Users\femtolab\.conda\envs\ePSdev\lib\site-packages\joblib\externals\loky\process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.
"timeout or by a memory leak.", UserWarning
100%|################################################################################| 100/100 [30:04<00:00, 18.04s/it]
(b) Load a batch of fit runs
Load sample data for analysis instead of running fits. Note this can be run minimally without the full setup routines above, using the commented-out cell below to init a blank object.
(The demo file(s) are available in demos/fitting.)
[1]:
# If running from scratch, create a blank object first
# # Init blank object
from pemtk.fit.fitClass import pemtkFit
data = pemtkFit()
*** ePSproc installation not found, setting for local copy.
[15]:
# Load sample dataset
# Full path to the file may be required here, in demos/fitting
# import pickle
# with open('dataDump_100fitTests_10t_randPhase_130621.pickle', 'rb') as handle:
# data.data = pickle.load(handle)
# Data IO with self.writeFitData()
# This will default to the working dir
data.loadFitData('dataDump_100fitTests_10t_randPhase_130621.pickle')
[3]:
data.data.keys()
[3]:
dict_keys(['orb6', 'orb5', 'ADM', 'pol', 'subset', 'sim', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
Exploring a fit result
Each result contains a set of fit results:
[10]:
nFit = 11
data.data[nFit].keys()
[10]:
dict_keys(['AFBLM', 'residual', 'results'])
Here ‘results’ is an lmFit object, containing various outputs, including the final paramter set and fit statistics, which can be inspected directly. (See the basic demo notebook for more.)
[11]:
data.data[nFit]['results']
[11]:
Fit Statistics
fitting method | leastsq | |
# function evals | 493 | |
# data points | 195 | |
# variables | 8 | |
chi-square | 1.3656e-04 | |
reduced chi-square | 7.3029e-07 | |
Akaike info crit. | -2747.48342 | |
Bayesian info crit. | -2721.29942 |
Variables
name | value | standard error | relative error | initial value | min | max | vary | expression |
---|---|---|---|---|---|---|---|---|
m_PU_SG_PU_1_n1_1 | 1.58289364 | 0.00420180 | (0.27%) | 0.9969358394309723 | 1.0000e-04 | 5.00000000 | False | m_PU_SG_PU_1_1_n1 |
m_PU_SG_PU_1_1_n1 | 1.58289364 | 0.00420180 | (0.27%) | 0.9969358394309723 | 1.0000e-04 | 5.00000000 | True | |
m_PU_SG_PU_3_n1_1 | 1.15075298 | 0.00591749 | (0.51%) | 0.6501789011457593 | 1.0000e-04 | 5.00000000 | False | m_PU_SG_PU_3_1_n1 |
m_PU_SG_PU_3_1_n1 | 1.15075298 | 0.00591749 | (0.51%) | 0.6501789011457593 | 1.0000e-04 | 5.00000000 | True | |
m_SU_SG_SU_1_0_0 | 2.71014401 | 0.00245323 | (0.09%) | 0.5256290247418078 | 1.0000e-04 | 5.00000000 | True | |
m_SU_SG_SU_3_0_0 | 1.04870406 | 0.00589304 | (0.56%) | 0.3431948628999326 | 1.0000e-04 | 5.00000000 | True | |
p_PU_SG_PU_1_n1_1 | 1.22200072 | 28873.8615 | (2362835.06%) | 0.22504503901184436 | -3.14159265 | 3.14159265 | False | p_PU_SG_PU_1_1_n1 |
p_PU_SG_PU_1_1_n1 | 1.22200072 | 28873.8615 | (2362835.07%) | 0.22504503901184436 | -3.14159265 | 3.14159265 | True | |
p_PU_SG_PU_3_n1_1 | -1.09376359 | 28873.8574 | (2639862.74%) | 0.2384618778656229 | -3.14159265 | 3.14159265 | False | p_PU_SG_PU_3_1_n1 |
p_PU_SG_PU_3_1_n1 | -1.09376359 | 28873.8574 | (2639862.73%) | 0.2384618778656229 | -3.14159265 | 3.14159265 | True | |
p_SU_SG_SU_1_0_0 | -2.28911439 | 28873.8581 | (1261354.97%) | 0.2118753318675165 | -3.14159265 | 3.14159265 | True | |
p_SU_SG_SU_3_0_0 | 0.90233526 | 28873.8543 | (3199903.15%) | 0.5407367643463352 | -3.14159265 | 3.14159265 | True |
Correlations (unreported correlations are < 0.100)
p_PU_SG_PU_3_1_n1 | p_SU_SG_SU_1_0_0 | 1.0000 |
p_PU_SG_PU_1_1_n1 | p_PU_SG_PU_3_1_n1 | 1.0000 |
p_PU_SG_PU_1_1_n1 | p_SU_SG_SU_1_0_0 | 1.0000 |
p_PU_SG_PU_1_1_n1 | p_SU_SG_SU_3_0_0 | 1.0000 |
p_PU_SG_PU_3_1_n1 | p_SU_SG_SU_3_0_0 | 1.0000 |
p_SU_SG_SU_1_0_0 | p_SU_SG_SU_3_0_0 | 1.0000 |
m_PU_SG_PU_1_1_n1 | m_PU_SG_PU_3_1_n1 | -0.9519 |
m_SU_SG_SU_1_0_0 | m_SU_SG_SU_3_0_0 | -0.8360 |
m_PU_SG_PU_1_1_n1 | p_SU_SG_SU_3_0_0 | -0.5513 |
m_PU_SG_PU_1_1_n1 | p_PU_SG_PU_1_1_n1 | -0.5513 |
m_PU_SG_PU_1_1_n1 | p_PU_SG_PU_3_1_n1 | -0.5513 |
m_PU_SG_PU_1_1_n1 | p_SU_SG_SU_1_0_0 | -0.5513 |
m_PU_SG_PU_3_1_n1 | p_SU_SG_SU_3_0_0 | 0.5195 |
m_PU_SG_PU_3_1_n1 | p_PU_SG_PU_1_1_n1 | 0.5195 |
m_PU_SG_PU_3_1_n1 | p_PU_SG_PU_3_1_n1 | 0.5195 |
m_PU_SG_PU_3_1_n1 | p_SU_SG_SU_1_0_0 | 0.5195 |
m_SU_SG_SU_3_0_0 | p_SU_SG_SU_1_0_0 | -0.3544 |
m_SU_SG_SU_3_0_0 | p_PU_SG_PU_1_1_n1 | -0.3544 |
m_SU_SG_SU_3_0_0 | p_PU_SG_PU_3_1_n1 | -0.3544 |
m_SU_SG_SU_3_0_0 | p_SU_SG_SU_3_0_0 | -0.3544 |
m_SU_SG_SU_1_0_0 | p_PU_SG_PU_1_1_n1 | 0.3413 |
m_SU_SG_SU_1_0_0 | p_SU_SG_SU_1_0_0 | 0.3413 |
m_SU_SG_SU_1_0_0 | p_PU_SG_PU_3_1_n1 | 0.3413 |
m_SU_SG_SU_1_0_0 | p_SU_SG_SU_3_0_0 | 0.3413 |
m_PU_SG_PU_3_1_n1 | m_SU_SG_SU_1_0_0 | -0.1329 |
The best fit results are set in an Xarray, keyed by AFBLM
.
[12]:
data.data[nFit]['AFBLM']
[12]:
- Labels: 1
- t: 13
- BLM: 15
- 0j (1.6688031987744187+5.7873229526725076e-18j) ... 0j
array([[[ 0.00000000e+00+0.00000000e+00j, 1.66880320e+00+5.78732295e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.25672722e-01-5.38415192e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -1.44274687e-01+1.20857602e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 8.76295144e-03-6.48615019e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.65937210e+00-7.23009276e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.28985589e-01+8.67046349e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -1.34466346e-01+7.20380784e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 7.85981063e-03-3.36660330e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.60818607e+00+5.37857796e-19j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.47089063e-01+2.83195635e-19j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -8.18736418e-02+7.57593374e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.46102083e-03+6.75578530e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.52326743e+00-1.50501572e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.76089784e-01+2.84374460e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -3.91218091e-04+5.74838620e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -5.84886248e-03+5.07374737e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.43636310e+00+9.52615588e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.00205362e+00+2.01628383e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 6.51578361e-02-9.80651589e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.65536741e-04-1.14147995e-17j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.38622713e+00+9.20090768e-19j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.01512621e+00-4.72538875e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.73068887e-02-1.74468117e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.51231272e-02-9.38269746e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.39474794e+00-4.45299968e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.01331537e+00+1.63401625e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.33980946e-02+1.10207631e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.07891930e-02+2.50190478e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.45370909e+00+7.91614025e-19j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.96435544e-01-1.43016883e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 5.20481458e-02+1.07644377e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 2.99548945e-03-9.91707915e-19j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.53164395e+00+1.13410286e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.70481721e-01-1.75914296e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -2.06040860e-02-1.43891851e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 6.28742202e-03+2.79452601e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.59427468e+00-1.99609837e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.48140851e-01+5.16493414e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -8.85733641e-02+1.65347123e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.26018516e-02+1.49421811e-17j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.62291718e+00-6.45941678e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.38112364e-01-2.42509436e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -1.18853978e-01+2.59622005e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.46796819e-02+1.46303408e-17j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.61963770e+00-9.64903245e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.39847210e-01-1.14266438e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -1.12373317e-01+2.00140733e-19j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 1.23477417e-02-8.86888414e-18j, 0.00000000e+00+0.00000000e+00j], [ 0.00000000e+00+0.00000000e+00j, 1.59960947e+00+3.78181210e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.47416379e-01-1.37427402e-18j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, -8.82040938e-02-1.38234511e-17j, 0.00000000e+00+0.00000000e+00j, 0.00000000e+00+0.00000000e+00j, 9.01954240e-03-9.84543070e-18j, 0.00000000e+00+0.00000000e+00j]]])
- Euler(Labels)object(0.0, 0.0, 0.0)
array([(0.0, 0.0, 0.0)], dtype=object)
- Labels(Labels)<U1'z'
array(['z'], dtype='<U1')
- t(t)float644.018 4.096 4.175 ... 4.884 4.962
- units :
- ps
array([4.017657, 4.096371, 4.175086, 4.253801, 4.332516, 4.41123 , 4.489945, 4.56866 , 4.647375, 4.726089, 4.804804, 4.883519, 4.962233])
- XSraw(Labels, t)complex128(1.6688031987744187+5.7873229526725076e-18j) ... (1.5996094670027712+3.781812100979762e-18j)
array([[1.6688032 +5.78732295e-18j, 1.6593721 -7.23009276e-18j, 1.60818607+5.37857796e-19j, 1.52326743-1.50501572e-18j, 1.4363631 +9.52615588e-18j, 1.38622713+9.20090768e-19j, 1.39474794-4.45299968e-18j, 1.45370909+7.91614025e-19j, 1.53164395+1.13410286e-17j, 1.59427468-1.99609837e-18j, 1.62291718-6.45941678e-18j, 1.6196377 -9.64903245e-18j, 1.59960947+3.78181210e-18j]])
- XSrescaled(Labels, t)complex128(5.915753312142323+2.0515525707796533e-17j) ... (5.6704679194679635+1.3406174843565319e-17j)
array([[5.91575331+2.05155257e-17j, 5.88232093-2.56300115e-17j, 5.70087119+1.90665625e-18j, 5.39984244-5.33514182e-18j, 5.09177461+3.37693433e-17j, 4.91404722+3.26163685e-18j, 4.94425272-1.57854729e-17j, 5.15326456+2.80619866e-18j, 5.42953643+4.02028996e-17j, 5.65155658-7.07598449e-18j, 5.75309161-2.28980363e-17j, 5.74146616-3.42049294e-17j, 5.67046792+1.34061748e-17j]])
- XSiso()complex128(5.368076720085303+0j)
array(5.36807672+0.j)
- BLM(BLM)MultiIndex(l, m)
array([(0, -1), (0, 0), (0, 1), (2, -1), (2, 0), (2, 1), (3, -1), (3, 0), (3, 1), (4, -1), (4, 0), (4, 1), (6, -1), (6, 0), (6, 1)], dtype=object)
- l(BLM)int640 0 0 2 2 2 3 3 3 4 4 4 6 6 6
array([0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 4, 4, 6, 6, 6], dtype=int64)
- m(BLM)int64-1 0 1 -1 0 1 -1 0 1 -1 0 1 -1 0 1
array([-1, 0, 1, -1, 0, 1, -1, 0, 1, -1, 0, 1, -1, 0, 1], dtype=int64)
- thres :
- None
- dataType :
- BLM
- jobLabel :
- Fit #11, (13 t, 1 pol) points, $\chi^2$=0.0001365649424927628 2021-06-13_10-16-52
For further analysis & batch results, see the “analysis” notebook.
Versions
[6]:
import scooby
scooby.Report(additional=['epsproc', 'pemtk', 'xarray', 'jupyter'])
[6]:
Tue Aug 23 09:40:18 2022 Eastern Daylight Time | |||||
OS | Windows | CPU(s) | 32 | Machine | AMD64 |
Architecture | 64bit | RAM | 63.9 GB | Environment | Jupyter |
Python 3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)] | |||||
epsproc | 1.3.2-dev | pemtk | 0.0.1 | xarray | 0.15.0 |
jupyter | Version unknown | numpy | 1.18.1 | scipy | 1.3.0 |
IPython | 7.12.0 | matplotlib | 3.3.1 | scooby | 0.5.6 |
Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191125 for Intel(R) 64 architecture applications |
[7]:
# Check current Git commit for local ePSproc version
from pathlib import Path
!git -C {Path(ep.__file__).parent} branch
!git -C {Path(ep.__file__).parent} log --format="%H" -n 1
* dev
master
numba-tests
340a4f1c405657636b25eb109b462faccf663ebf
[12]:
# Check current remote commits
!git ls-remote --heads https://github.com/phockett/ePSproc
# !git ls-remote --heads git://github.com/phockett/epsman
92c661789a7d2927f2b53d7266f57de70b3834fa refs/heads/dependabot/pip/notes/envs/envs-versioned/mistune-2.0.3
f442391d10a165d0aedcd71269212b7088afc80c refs/heads/dependabot/pip/notes/envs/envs-versioned/nbconvert-6.3.0
340a4f1c405657636b25eb109b462faccf663ebf refs/heads/dev
1c0b8fd409648f07c85f4f20628b5ea7627e0c4e refs/heads/master
69cd89ce5bc0ad6d465a4bd8df6fba15d3fd1aee refs/heads/numba-tests
ea30878c842f09d525fbf39fa269fa2302a13b57 refs/heads/revert-9-master
[9]:
# Check current Git commit for local PEMtk version
import pemtk
from pathlib import Path
!git -C {Path(pemtk.__file__).parent} branch
!git -C {Path(pemtk.__file__).parent} log --format="%H" -n 1
master
* mfFittingDev
1dd8edf78ff2899c118498e675042e538d0461a2
[14]:
# Check current remote commits
!git ls-remote --heads https://github.com/phockett/PEMtk
# !git ls-remote --heads git://github.com/phockett/epsman
89e895f1e8d423052dab59e1e3fc1c842171a443 refs/heads/master
[ ]: