Tutorial 8: Operations with saved data
Data stored in a NeXus file can be accessed using mlgidBASE.nexus functions. Internally, this relies on the pygid.NexusFile class, which is built on top of the h5py package. The details are described in pygid documentation.
First, create an mlgidBASE instance and run the analysis:
from mlgidbase import mlgidBASE
filename = '../../example/BA2PbI4.h5'
analysis = mlgidBASE(filename=filename)
analysis.run_detection()
analysis.run_fitting()
analysis.run_matching(
cif_prepr = r'../../example/prepr_cifs.pickle',
peaks_type='segments')
analysis.run_matching(
cif_prepr = r'../../example/prepr_cifs.pickle',
peaks_type='rings')
2026-05-26 13:58:33.878236873 [W:onnxruntime:Default, device_discovery.cc:283 GetGpuDevices] Failed to detect devices under "/sys/class/drm/card0": device_discovery.cc:93 ReadFileContents Failed to open file: "/sys/class/drm/card0/device/vendor"
INFO - Loading model
INFO - Saved detected peaks to file: ../../example/BA2PbI4.h5, entry: entry_0000, frame: 0
INFO - Saved fitted peaks to file: ../../example/BA2PbI4.h5, entry: entry_0000, frame: 0
INFO - Saved matched peaks to file: ../../example/BA2PbI4.h5, entry: entry_0000, frame: 0
INFO - cif_prepr is already set. The previous cif_prepr is to be used
INFO - No solutions for (../../example/BA2PbI4.h5, entry: entry_0000, frame: 0) was found. Try to decrease threshold
Print the file structure:
analysis.nexus.print_file_structure()
File structure: ../../example/BA2PbI4.h5
{'entry_0000': {'axes': ['frame_ind', 'q_z', 'q_xy'],
'description': 'cylindrical coordinate conversion for GID '
'geometry',
'img_type': 'img_gid_q',
'shape': (1, 1750, 1750)}}
Read the detected peaks
detected_peaks = analysis.get_detected_peaks()
detected_peaks['entry_0000']['0']
array([(0., 34.168945, 2.6808777, 1.2251151 , 0.01545846, 0.68806744, 1.013642 , 0., 0.9910851 , 0., 0., 0., False, False, False, 0, 0),
(0., 81.62891 , 4.1555176, 1.0564342 , 0.01269639, 1.0451788 , 0.15379977, 0., 0.9896522 , 0., 0., 0., False, False, False, 0, 1),
(0., 12.779144, 4.855835 , 1.0371773 , 0.01504409, 0.2294169 , 1.0114864 , 0., 0.98864657, 0., 0., 0., False, False, False, 0, 2),
(0., 82.03668 , 5.852661 , 0.53001106, 0.01346695, 0.52490014, 0.07342728, 0., 0.9857259 , 0., 0., 0., False, False, False, 0, 3),
(0., 12.908813, 1.4314575, 3.032843 , 0.01812482, 0.6775373 , 2.9561937 , 0., 0.98486614, 0., 0., 0., False, False, False, 0, 4),
(0., 57.635437, 2.8789368, 1.881979 , 0.02119327, 1.5896308 , 1.0074316 , 0., 0.9830593 , 0., 0., 0., False, False, False, 0, 5),
(0., 57.44226 , 2.537323 , 2.9940376 , 0.01767445, 2.5235233 , 1.6112391 , 0., 0.9810994 , 0., 0., 0., False, False, False, 0, 6),
(0., 21.376648, 3.2745667, 0.97229075, 0.01140261, 0.35439733, 0.90540147, 0., 0.979153 , 0., 0., 0., False, False, False, 0, 7),
(0., 50.115967, 5.1633606, 0.40322828, 0.01057014, 0.30941474, 0.2585644 , 0., 0.9774565 , 0., 0., 0., False, False, False, 0, 8),
(0., 42.151978, 2.249054 , 1.3594501 , 0.01611686, 0.91232616, 1.007852 , 0., 0.97214293, 0., 0., 0., False, False, False, 0, 9),
(0., 40.869995, 2.3322449, 2.0785837 , 0.01493049, 1.3601106 , 1.5718173 , 0., 0.96525604, 0., 0., 0., False, False, False, 0, 10),
(0., 68.73871 , 2.0014648, 1.9533918 , 0.02117169, 1.820437 , 0.70834225, 0., 0.96090573, 0., 0., 0., False, False, False, 0, 11),
(0., 47.929474, 2.0304565, 3.0702438 , 0.01836801, 2.2791052 , 2.0572011 , 0., 0.9602187 , 0., 0., 0., False, False, False, 0, 12),
(0., 8.292084, 2.5220947, 1.615376 , 0.02573907, 0.23296867, 1.5984883 , 0., 0.96000004, 0., 0., 0., False, False, False, 0, 13),
(0., 72.15555 , 2.5722656, 1.871721 , 0.01596582, 1.781676 , 0.57355887, 0., 0.95503235, 0., 0., 0., False, False, False, 0, 14),
(0., 29.909058, 2.6789246, 1.8334293 , 0.02351618, 0.9141933 , 1.5892495 , 0., 0.9534627 , 0., 0., 0., False, False, False, 0, 15),
(0., 37.927063, 1.869751 , 3.7275045 , 0.01619291, 2.29114 , 2.9402328 , 0., 0.95211434, 0., 0., 0., False, False, False, 0, 16),
(0., 36.126587, 2.7500916, 1.775857 , 0.01674747, 1.0469942 , 1.4343888 , 0., 0.94967806, 0., 0., 0., False, False, False, 0, 17),
(0., 33.04193 , 2.305542 , 0.84347904, 0.01393169, 0.4599092 , 0.7070646 , 0., 0.94873995, 0., 0., 0., False, False, False, 0, 18),
(0., 67.785065, 1.8713989, 2.7165692 , 0.0194459 , 2.5149238 , 1.0270863 , 0., 0.9469819 , 0., 0., 0., False, False, False, 0, 19),
(0., 16.121704, 2.4413452, 1.6552024 , 0.01911664, 0.45961425, 1.59011 , 0., 0.9445681 , 0., 0., 0., False, False, False, 0, 20),
(0., 21.171356, 2.7669067, 3.1596057 , 0.02738237, 1.1411183 , 2.9463465 , 0., 0.93742675, 0., 0., 0., False, False, False, 0, 21),
(0., 12.860809, 3.203247 , 2.0929132 , 0.01541519, 0.46584755, 2.0404096 , 0., 0.9345699 , 0., 0., 0., False, False, False, 0, 22),
(0., 43.79425 , 4.179474 , 3.9801779 , 0.03058529, 2.7545645 , 2.8730104 , 0., 0.93158305, 0., 0., 0., False, False, False, 0, 23),
(0., 35.447052, 2.111084 , 1.9615463 , 0.01740813, 1.1375996 , 1.5979772 , 0., 0.9311389 , 0., 0., 0., False, False, False, 0, 24),
(0., 57.572052, 2.3269043, 2.9377127 , 0.0199368 , 2.4796247 , 1.5753148 , 0., 0.91724896, 0., 0., 0., False, False, False, 0, 25),
(0., 44.906647, 2.2460938, 2.2623258 , 0.02464223, 1.5970973 , 1.6023103 , 0., 0.9167321 , 0., 0., 0., False, False, False, 0, 26),
(0., 33.8743 , 2.4241333, 2.4661813 , 0.0283792 , 1.3745823 , 2.0475774 , 0., 0.9150676 , 0., 0., 0., False, False, False, 0, 27),
(0., 5.762146, 2.473297 , 1.8663079 , 0.01655579, 0.18737541, 1.8568779 , 0., 0.914425 , 0., 0., 0., False, False, False, 0, 28),
(0., 57.94342 , 2.5426025, 2.6660352 , 0.02261209, 2.2595298 , 1.4150155 , 0., 0.9101462 , 0., 0., 0., False, False, False, 0, 29),
(0., 33.49347 , 5.097687 , 0.40330526, 0.00988168, 0.22256075, 0.3363359 , 0., 0.9022412 , 0., 0., 0., False, False, False, 0, 30),
(0., 40.363647, 1.9317932, 3.8642418 , 0.02512741, 2.5026245 , 2.9443567 , 0., 0.90156347, 0., 0., 0., False, False, False, 0, 31),
(0., 87.19116 , 3.301239 , 0.63610226, 0.02446866, 0.63533807, 0.03117145, 0., 0.8981808 , 0., 0., 0., False, False, False, 0, 32),
(0., 38.404602, 1.8171082, 3.6538894 , 0.02539301, 2.2698355 , 2.8633468 , 0., 0.89259654, 0., 0., 0., False, False, False, 0, 33),
(0., 54.940613, 2.1567078, 2.7603745 , 0.02296114, 2.259524 , 1.5856287 , 0., 0.8884081 , 0., 0., 0., False, False, False, 0, 34),
(0., 44.9899 , 24.725952 , 4.148019 , 0.0319171 , 2.9325752 , 2.9336092 , 0., 0.88257426, 0., 0., 0., False, False, False, 0, 35),
(0., 86.96112 , 3.525055 , 0.9080161 , 0.02652091, 0.90673923, 0.04813717, 0., 0.8791161 , 0., 0., 0., False, False, False, 0, 36),
(0., 54.797882, 2.2313232, 2.7960024 , 0.02138972, 2.2846794 , 1.6117905 , 0., 0.8771353 , 0., 0., 0., False, False, False, 0, 37),
(0., 86.57001 , 6.69928 , 0.45501232, 0.03711236, 0.45419723, 0.02722291, 0., 0.8751519 , 0., 0., 0., False, False, False, 0, 38),
(0., 63.72003 , 3.3215332, 2.2982647 , 0.02353287, 2.060719 , 1.0175745 , 0., 0.87098306, 0., 0., 0., False, False, False, 0, 39),
(0., 45.613586, 73.78238 , 2.911522 , 0.03209233, 2.0806859 , 2.0365918 , 0., 0.8436587 , 0., 0., 0., False, False, False, 0, 40),
(0., 26.783142, 4.1973877, 2.4887202 , 0.05200863, 1.1214544 , 2.2217264 , 0., 0.8411441 , 0., 0., 0., False, False, False, 0, 41),
(0., 42.392212, 2.9530334, 3.0238774 , 0.03449392, 2.0387042 , 2.2332754 , 0., 0.8349038 , 0., 0., 0., False, False, False, 0, 42),
(0., 85.6875 , 2.2069092, 1.3537086 , 0.01923108, 1.3498759 , 0.10179394, 0., 0.8193109 , 0., 0., 0., False, False, False, 0, 43),
(0., 32.760498, 3.2963867, 1.68854 , 0.02438819, 0.9137172 , 1.4199606 , 0., 0.8107474 , 0., 0., 0., False, False, False, 0, 44),
(0., 29.114075, 1.5304871, 3.6559067 , 0.0203588 , 1.7787814 , 3.1939929 , 0., 0.8060287 , 0., 0., 0., False, False, False, 0, 45),
(0., 43.724487, 81.2728 , 2.1497517 , 0.03453612, 1.4858897 , 1.5535649 , 0., 0.8060051 , 0., 0., 0., False, False, False, 0, 46),
(0., 5.296936, 2.1550293, 0.77685285, 0.01080644, 0.07171699, 0.7735354 , 0., 0.799793 , 0., 0., 0., False, False, False, 0, 47),
(0., 35.360107, 2.4703674, 2.7595515 , 0.02771139, 1.5969896 , 2.2504995 , 0., 0.7995213 , 0., 0., 0., False, False, False, 0, 48),
(0., 35.499878, 1.6446838, 3.8917212 , 0.02131629, 2.2599273 , 3.1683156 , 0., 0.7951272 , 0., 0., 0., False, False, False, 0, 49),
(0., 37.23819 , 3.1438599, 0.942528 , 0.01211011, 0.5703519 , 0.7503718 , 0., 0.79331464, 0., 0., 0., False, False, False, 0, 50),
(0., 9.243622, 1.7415161, 2.8918064 , 0.03327751, 0.46451867, 2.854254 , 0., 0.79220194, 0., 0., 0., False, False, False, 0, 51),
(0., 48.027466, 2.2845154, 3.3465502 , 0.02917099, 2.4880445 , 2.2380867 , 0., 0.79187214, 0., 0., 0., False, False, False, 0, 52),
(0., 4.722107, 1.3092041, 3.0115457 , 0.01493955, 0.2479196 , 3.0013235 , 0., 0.77812165, 0., 0., 0., False, False, False, 0, 53),
(0., 52.052795, 2.3485413, 2.300078 , 0.02447438, 1.8137902 , 1.4143986 , 0., 0.7733877 , 0., 0., 0., False, False, False, 0, 54),
(0., 35.282776, 1.5658264, 3.9655647 , 0.03154254, 2.2905588 , 3.2371352 , 0., 0.77033615, 0., 0., 0., False, False, False, 0, 55),
(0., 45.020996, 20.938873 , 4.2470083 , 0.03299713, 3.0041888 , 3.0019877 , 0., 0.7678021 , 0., 0., 0., False, False, False, 0, 56),
(0., 9.109985, 1.4820862, 2.9393203 , 0.03094673, 0.465383 , 2.9022443 , 0., 0.74068564, 0., 0., 0., False, False, False, 0, 57),
(0., 24.461914, 2.0952454, 1.1121991 , 0.01306951, 0.4605486 , 1.0123644 , 0., 0.7400947 , 0., 0., 0., False, False, False, 0, 58),
(0., 62.198303, 3.0096436, 0.4793505 , 0.01849547, 0.4240177 , 0.22357522, 0., 0.73216164, 0., 0., 0., False, False, False, 0, 59),
(0., 16.693054, 1.497467 , 2.4033499 , 0.01633191, 0.6903488 , 2.3020663 , 0., 0.71595687, 0., 0., 0., False, False, False, 0, 60),
(0., 34.981262, 2.3253174, 2.803533 , 0.02110267, 1.6072894 , 2.2970457 , 0., 0.7084111 , 0., 0., 0., False, False, False, 0, 61),
(0., 48.82196 , 2.902649 , 3.0069857 , 0.01644754, 2.26326 , 1.9798024 , 0., 0.7051994 , 0., 0., 0., False, False, False, 0, 62),
(0., 47.946655, 2.2383728, 3.3904567 , 0.03596973, 2.517487 , 2.2710032 , 0., 0.6833611 , 0., 0., 0., False, False, False, 0, 63),
(0., 87.01434 , 3.0334167, 0.9511148 , 0.03035456, 0.94982374, 0.04953974, 0., 0.6800304 , 0., 0., 0., False, False, False, 0, 64),
(0., 25.43866 , 2.3842773, 3.1841023 , 0.0515914 , 1.3677138 , 2.8753898 , 0., 0.66880906, 0., 0., 0., False, False, False, 0, 65),
(0., 28.117249, 2.9586792, 2.9182115 , 0.0441184 , 1.3752872 , 2.5738187 , 0., 0.6680298 , 0., 0., 0., False, False, False, 0, 66),
(0., 28.396942, 1.8668823, 3.3564553 , 0.02468681, 1.5962539 , 2.9525864 , 0., 0.6582684 , 0., 0., 0., False, False, False, 0, 67),
(0., 31.826904, 1.3402405, 3.3969502 , 0.02036333, 1.7913982 , 2.8862023 , 0., 0.650631 , 0., 0., 0., False, False, False, 0, 68),
(0., 51.901794, 2.782257 , 2.615519 , 0.03196716, 2.058294 , 1.6138045 , 0., 0.64993757, 0., 0., 0., False, False, False, 0, 69),
(0., 57.628357, 1.9808655, 2.7120204 , 0.01713204, 2.2905533 , 1.4520397 , 0., 0.64411473, 0., 0., 0., False, False, False, 0, 70),
(0., 81.46887 , 4.5276794, 1.5866157 , 0.0165143 , 1.5690604 , 0.23536924, 0., 0.635879 , 0., 0., 0., False, False, False, 0, 71),
(0., 35.04016 , 69.31262 , 0.11218733, 0.03871784, 0.06441241, 0.09185335, 0., 0.6282338 , 0., 0., 0., False, False, False, 0, 72),
(0., 8.296936, 1.2988586, 3.2347252 , 0.02517653, 0.46678147, 3.2008688 , 0., 0.62675077, 0., 0., 0., False, False, False, 0, 73),
(0., 45.081085, 32.38916 , 3.9857514 , 0.03469038, 2.8223376 , 2.8143604 , 0., 0.62348694, 0., 0., 0., False, False, False, 0, 74),
(0., 42.059204, 2.6770325, 3.0822654 , 0.0273838 , 2.0648038 , 2.2884371 , 0., 0.6083181 , 0., 0., 0., False, False, False, 0, 75),
(0., 51.88611 , 2.6732483, 2.58647 , 0.02100229, 2.0349967 , 1.5964382 , 0., 0.6055013 , 0., 0., 0., False, False, False, 0, 76),
(0., 30.810577, 2.5493164, 0.939034 , 0.01287526, 0.48097456, 0.8065038 , 0., 0.5602806 , 0., 0., 0., False, False, False, 0, 77),
(0., 62.53488 , 3.1177368, 1.5275471 , 0.04358423, 1.35538 , 0.7045177 , 0., 0.55762416, 0., 0., 0., False, False, False, 0, 78),
(0., 17.440125, 1.668457 , 3.0393944 , 0.02663684, 0.91093385, 2.8996756 , 0., 0.55539143, 0., 0., 0., False, False, False, 0, 79),
(0., 45.012817, 27.919525 , 4.077611 , 0.03436995, 2.8839514 , 2.8826613 , 0., 0.535478 , 0., 0., 0., False, False, False, 0, 80),
(0., 77.31018 , 1.8371582, 3.264361 , 0.02933431, 3.1846244 , 0.7170915 , 0., 0.53505725, 0., 0., 0., False, False, False, 0, 81),
(0., 45.441315, 80.70361 , 1.5220699 , 0.03139949, 1.0845238 , 1.0679443 , 0., 0.53260106, 0., 0., 0., False, False, False, 0, 82),
(0., 23.151093, 2.5249634, 1.748153 , 0.02234471, 0.6872989 , 1.6073765 , 0., 0.52543014, 0., 0., 0., False, False, False, 0, 83),
(0., 35.337738, 2.076416 , 1.9799848 , 0.01886022, 1.1452134 , 1.615186 , 0., 0.5199966 , 0., 0., 0., False, False, False, 0, 84),
(0., 49.88571 , 3.7507935, 0.8054217 , 0.01135767, 0.6159549 , 0.51894474, 0., 0.5076295 , 0., 0., 0., False, False, False, 0, 85),
(0., 31.003296, 4.8589783, 2.638062 , 0.04311919, 1.3588324 , 2.2611823 , 0., 0.47813025, 0., 0., 0., False, False, False, 0, 86),
(0., 47.430206, 4.158142 , 2.7754068 , 0.02970695, 2.043959 , 1.8775289 , 0., 0.46518853, 0., 0., 0., False, False, False, 0, 87),
(0., 41.46753 , 1.5169678, 2.7390344 , 0.01879692, 1.8137763 , 2.0524437 , 0., 0.45839855, 0., 0., 0., False, False, False, 0, 88),
(0., 20.934387, 1.6766663, 3.2099543 , 0.01629734, 1.1469122 , 2.9980657 , 0., 0.45332888, 0., 0., 0., False, False, False, 0, 89),
(0., 44.747925, 89.494934 , 0.50067335, 0.0383234 , 0.35246852, 0.3555837 , 0., 0.44421262, 0., 0., 0., False, False, False, 0, 90),
(0., 13.347656, 1.5290527, 2.9740415 , 0.01398301, 0.6865846 , 2.8937042 , 0., 0.43910968, 0., 0., 0., False, False, False, 0, 91),
(0., 59.45468 , 3.9765625, 3.1510699 , 0.06239653, 2.7137878 , 1.6014359 , 0., 0.42532593, 0., 0., 0., False, False, False, 0, 92),
(0., 25.869965, 2.1166992, 3.1311355 , 0.02570105, 1.3662089 , 2.817354 , 0., 0.41441596, 0., 0., 0., False, False, False, 0, 93),
(0., 18.549133, 2.3839111, 1.5996416 , 0.01430762, 0.50887436, 1.5165421 , 0., 0.40576693, 0., 0., 0., False, False, False, 0, 94),
(0., 63.58255 , 3.5516357, 2.2668066 , 0.02054524, 2.0300982 , 1.0085202 , 0., 0.40137202, 0., 0., 0., False, False, False, 0, 95)],
dtype=[('amplitude', '<f4'), ('angle', '<f4'), ('angle_width', '<f4'), ('radius', '<f4'), ('radius_width', '<f4'), ('q_z', '<f4'), ('q_xy', '<f4'), ('theta', '<f4'), ('score', '<f4'), ('A', '<f4'), ('B', '<f4'), ('C', '<f4'), ('is_ring', '?'), ('is_cut_qz', '?'), ('is_cut_qxy', '?'), ('visibility', '<i4'), ('id', '<i4')])
It returns a multilayered dictionary structure:
entry — top-level key corresponding to each entry in the file
frame number — sub-key corresponding to each frame in the entry
You can access detected boxes information such as box centers as follows:
q_xy, q_z = detected_peaks['entry_0000']['0']['q_xy'], detected_peaks['entry_0000']['0']['q_z']
q_xy.shape, q_z.shape
((96,), (96,))
Read the fitted peaks
fitted_peaks = analysis.get_fitted_peaks()
fitted_peaks['entry_0000']['0']
array([(5.65623718e+02, 34.03065 , 1.0930473 , 1.2225424 , 0.02840793, 0.6841791 , 1.0131677 , 0., 0.9910851 , 20.687922 , 1.433798 , 46.059162 , False, False, False, 0, 0),
(6.69102249e+01, 81.26751 , 1.644584 , 1.0568025 , 0.01787735, 1.0445521 , 0.16044523, 0., 0.9896522 , 20.687923 , 1.2103679 , 3.1787105, False, False, False, 0, 1),
(5.53318066e+03, 12.827639 , 1.3183594 , 1.0381268 , 0.02294293, 0.23048376, 1.0122176 , 0., 0.98864657, -20.687923 , -5.688889 , 93.76671 , False, False, False, 0, 2),
(1.04704761e+03, 83.922104 , 12.3046875 , 0.53712475, 0.02901235, 0.5341055 , 0.05687102, 0., 0.9857259 , -20.687923 , -5.688889 , -43.096386 , False, False, False, 0, 3),
(9.41876755e+01, 12.861196 , 0.9265736 , 3.0285556 , 0.03688481, 0.67412585, 2.9525757 , 0., 0.98486614, -10.639028 , 4.134756 , 71.56419 , False, False, False, 0, 4),
(9.19439087e+02, 57.515854 , 1.1273897 , 1.8967284 , 0.06171931, 1.5999664 , 1.0186687 , 0., 0.9830593 , 20.687923 , 0.33654934, 161.46599 , False, False, False, 0, 5),
(4.05133362e+01, 57.26095 , 1.1696374 , 2.9924955 , 0.03937923, 2.5171149 , 1.6183827 , 0., 0.9810994 , 20.687923 , 0.7646599 , 4.868137 , False, False, False, 0, 6),
(3.08755703e+01, 21.21772 , 1.7046444 , 0.9724283 , 0.01747235, 0.3519343 , 0.9065093 , 0., 0.979153 , 20.687923 , 0.6566125 , 59.548317 , False, False, False, 0, 7),
(3.01221039e+02, 49.946533 , 1.994314 , 0.4028835 , 0.00993297, 0.3083849 , 0.25925642, 0., 0.9774565 , -20.687923 , 0.57953745, 140.51096 , False, False, False, 0, 8),
(4.56359978e+01, 41.98303 , 1.342762 , 1.3640343 , 0.03479144, 0.9124168 , 1.0139453 , 0., 0.97214293, 20.687923 , 0.798014 , 94.42228 , False, False, False, 0, 9),
(1.72293976e+02, 40.64779 , 0.976993 , 2.0855842 , 0.03190865, 1.3585647 , 1.5823917 , 0., 0.96525604, 20.687923 , 2.112109 , 70.054115 , False, False, False, 0, 10),
(5.28409882e+01, 68.60839 , 0.9338019 , 1.952362 , 0.05561301, 1.8178623 , 0.7121052 , 0., 0.96090573, -20.687923 , -0.68372875, 308.15656 , False, False, False, 0, 11),
(2.97573273e+02, 48.2037 , 1.1623206 , 3.0583935 , 0.05072609, 2.2800908 , 2.0383713 , 0., 0.9602187 , 20.687923 , -2.6886399 , 184.61604 , False, False, False, 0, 12),
(3.02088745e+02, 8.166291 , 0.9470498 , 1.6238931 , 0.05359994, 0.23066849, 1.6074268 , 0., 0.96000004, 20.687923 , 5.688889 , 54.940098 , False, False, False, 0, 13),
(3.12048492e+01, 72.15323 , 2.179076 , 1.8679771 , 0.04728908, 1.7780892 , 0.5724834 , 0., 0.95503235, -20.687923 , -0.68372875, 308.15656 , False, False, False, 0, 14),
(2.03389481e+02, 29.677607 , 1.1802492 , 1.8324924 , 0.06156632, 0.907302 , 1.5921154 , 0., 0.9534627 , 20.687923 , 3.0781612 , 74.24112 , False, False, False, 0, 15),
(3.30578766e+01, 37.957607 , 0.851226 , 3.703022 , 0.07552507, 2.2776484 , 2.9197073 , 0., 0.95211434, -2.6769874, -1.7881464 , 175.07011 , False, False, False, 0, 16),
(4.24582825e+01, 34.667248 , 0.8247531 , 1.743771 , 0.06433096, 0.9918734 , 1.4341981 , 0., 0.94967806, -3.983245 , 1.7558376 , 162.325 , False, False, False, 0, 17),
(8.26507111e+01, 32.9362 , 0.85630107, 0.84326357, 0.0205373 , 0.45848647, 0.7077313 , 0., 0.94873995, 20.687923 , -0.15936728, 88.91875 , False, False, False, 0, 18),
(7.65721054e+01, 67.84075 , 1.2404639 , 2.7027533 , 0.06743833, 2.5031254 , 1.0194304 , 0., 0.9469819 , 20.687923 , -2.6245008 , 234.4986 , False, False, False, 0, 19),
(3.84133148e+02, 15.95733 , 1.0408452 , 1.6568682 , 0.04334545, 0.45550853, 1.5930237 , 0., 0.9445681 , 20.687923 , 4.048354 , 68.7033 , False, False, False, 0, 20),
(2.35708904e+01, 21.174183 , 2.8754485 , 3.153328 , 0.028784 , 1.1389961 , 2.9404364 , 0., 0.93742675, -11.944961 , 1.1307788 , 113.774994 , False, False, False, 0, 21),
(1.10011572e+03, 12.72268 , 0.96108156, 2.1019845 , 0.0285109 , 0.46292502, 2.0503755 , 0., 0.9345699 , -20.687923 , 5.688889 , 151.15262 , False, False, False, 0, 22),
(9.06073570e+00, 43.198853 , 1.4236016 , 3.989124 , 0.05769575, 2.730685 , 2.9080012 , 0., 0.93158305, 8.103062 , 0.02447537, 66.25529 , False, False, False, 0, 23),
(1.75723633e+02, 35.26043 , 1.1345738 , 1.9494264 , 0.01087591, 1.1253918 , 1.5917778 , 0., 0.9311389 , -20.687923 , 2.1045308 , 166.71399 , False, False, False, 0, 24),
(3.79042931e+01, 57.38028 , 1.24729 , 2.936897 , 0.03493327, 2.4736512 , 1.5831659 , 0., 0.91724896, 20.687923 , 0.7646599 , 4.868137 , False, False, False, 0, 25),
(1.45099960e+02, 44.667473 , 1.014764 , 2.261834 , 0.0658918 , 1.590049 , 1.6086133 , 0., 0.9167321 , -20.687923 , 2.6825583 , 107.73396 , False, False, False, 0, 26),
(2.65090820e+02, 33.938694 , 1.0673101 , 2.4593394 , 0.03277008, 1.3730628 , 2.040355 , 0., 0.9150676 , 20.687923 , 2.2206733 , 44.5064 , False, False, False, 0, 27),
(5.54018288e+01, 6.0019345, 2.2056243 , 1.8662937 , 0.04698255, 0.19514349, 1.8560634 , 0., 0.914425 , 20.687923 , 5.688889 , 22.71337 , False, False, False, 0, 28),
(2.74775581e+01, 58.647274 , 5.9765625 , 2.6520681 , 0.03264582, 2.2648141 , 1.3798848 , 0., 0.9101462 , -20.687923 , -0.16730924, 180.55678 , False, False, False, 0, 29),
(2.24039490e+02, 33.21029 , 2.1846676 , 0.40240923, 0.00957443, 0.22040495, 0.3366821 , 0., 0.9022412 , -20.687923 , 0.8671895 , 133.90573 , False, False, False, 0, 30),
(1.75130482e+01, 40.153286 , 1.1066331 , 3.861236 , 0.0674657 , 2.489859 , 2.9512277 , 0., 0.90156347, 8.103062 , 0.02447537, 66.25529 , False, False, False, 0, 31),
(4.83341357e+03, 88.39652 , 2.554954 , 0.6381317 , 0.02575507, 0.63788176, 0.01785642, 0., 0.8981808 , -20.687923 , 2.91966 , -42.30199 , False, True, False, 0, 32),
(4.37296295e+01, 38.491573 , 1.3960458 , 3.6449535 , 0.05131788, 2.2686172 , 2.852904 , 0., 0.89259654, -2.6769874, -1.7881464 , 175.07011 , False, False, False, 0, 33),
(3.17190475e+01, 54.914207 , 1.1782362 , 2.7499135 , 0.02471679, 2.250233 , 1.5806568 , 0., 0.8884081 , -20.687923 , -0.16730924, 180.55678 , False, False, False, 0, 34),
(1.77785416e+01, 45. , inf, 4.151204 , 0.03379817, 2.9353445 , 2.9353445 , nan, 0.88257426, -294.52676 , 0. , 1338.4526 , True, False, False, 0, 35),
(2.98592212e+03, 87.705734 , 2.0195532 , 0.9129166 , 0.03190963, 0.9121848 , 0.03654569, 0., 0.8791161 , 20.687923 , -1.5404108 , 241.3997 , False, True, False, 0, 36),
(3.80958481e+01, 54.658913 , 1.2770087 , 2.7944403 , 0.04470325, 2.2794893 , 1.6164238 , 0., 0.8771353 , -20.687923 , -0.16730924, 180.55678 , False, False, False, 0, 37),
(2.27538150e+06, 88.84896 , 1.7578125 , 0.45810273, 0.02175182, 0.4580103 , 0.00920237, 0., 0.8751519 , -20.687923 , -5.688889 , -43.096386 , False, True, False, 0, 38),
(9.15831055e+02, 63.69064 , 1.3034304 , 2.3095138 , 0.01663237, 2.0702806 , 1.0236173 , 0., 0.87098306, -20.687923 , -0.54071736, 271.9001 , False, False, False, 0, 39),
(6.19240417e+01, 45. , inf, 2.8579473 , 0.20489533, 2.020874 , 2.020874 , nan, 0.8436587 , 239.40697 , 0. , -634.11035 , True, False, False, 0, 40),
(8.65176392e+01, 27.516655 , 9.140625 , 2.4852486 , 0.07846267, 1.1482009 , 2.2041087 , 0., 0.8411441 , -20.687923 , 2.108245 , 105.17436 , False, False, False, 0, 41),
(4.01566467e+02, 42.374615 , 0.83496094, 3.0254836 , 0.05421751, 2.039101 , 2.235088 , 0., 0.8349038 , 15.412676 , -3.777498 , 246.4996 , False, False, False, 0, 42),
(1.97732239e+02, 86.13561 , 0.6591797 , 1.34448 , 0.01208434, 1.3414232 , 0.09061142, 0., 0.8193109 , 20.687923 , 2.6675544 , -46.56781 , False, True, False, 0, 43),
(6.74964966e+02, 32.421062 , 1.1290454 , 1.6983582 , 0.04141789, 0.91055286, 1.4336365 , 0., 0.8107474 , -3.983245 , 1.7558376 , 162.325 , False, False, False, 0, 44),
(6.11706161e+01, 29.447912 , 1.0081397 , 3.6832159 , 0.09818403, 1.8107872 , 3.2073555 , 0., 0.8060287 , 10.843906 , -4.5352135 , 182.40945 , False, False, False, 0, 45),
(3.71726532e+02, 45. , inf, 2.146616 , 0.07948093, 1.5178866 , 1.5178866 , nan, 0.8060051 , 132.222 , 0. , -250.59036 , True, False, False, 0, 46),
(4.42539368e+01, 5.2788534, 1.6259766 , 0.7757191 , 0.01633505, 0.07136855, 0.77242905, 0., 0.799793 , -20.687923 , 2.6443703 , 80.146706 , False, False, False, 0, 47),
(2.31816681e+02, 35.441994 , 0.89337987, 2.7490783 , 0.04853757, 1.5941314 , 2.2396822 , 0., 0.7995213 , -20.687923 , 2.108245 , 105.17436 , False, False, False, 0, 48),
(3.41559029e+01, 35.37001 , 0.9939755 , 3.8930228 , 0.04325572, 2.2534933 , 3.174491 , 0., 0.7951272 , 5.0350113, 0.28765792, 67.71264 , False, False, False, 0, 49),
(3.09167824e+01, 37.23678 , 1.116729 , 0.9411936 , 0.01385198, 0.5695259 , 0.7493234 , 0., 0.79331464, 20.687923 , -0.01940701, 84.5908 , False, False, False, 0, 50),
(7.63560410e+01, 9.079947 , 0.9143878 , 2.9397821 , 0.15467961, 0.4639343 , 2.902944 , 0., 0.79220194, 18.242584 , 1.524734 , 10.78268 , False, False, False, 0, 51),
(5.07324677e+01, 48.001537 , 0.91044784, 3.3314593 , 0.03502346, 2.4758165 , 2.229115 , 0., 0.79187214, 15.612324 , 1.2471061 , -6.0625935, False, False, False, 0, 52),
(1.25220535e+02, 4.669911 , 1.40625 , 3.0099032 , 0.03683502, 0.2450516 , 2.999911 , 0., 0.77812165, -20.687923 , 1.0216495 , 96.094376 , False, False, False, 0, 53),
(2.39940826e+02, 51.758755 , 1.2159735 , 2.313822 , 0.06936914, 1.8173025 , 1.4321955 , 0., 0.7733877 , 10.423622 , 3.8146904 , -46.602917 , False, False, False, 0, 54),
(3.13018513e+01, 35.225384 , 0.9541613 , 3.9549534 , 0.06422602, 2.2811944 , 3.2307599 , 0., 0.77033615, 5.0350113, 0.28765792, 67.71264 , False, False, False, 0, 55),
(5.67293358e+00, 45. , inf, 4.248177 , 0.02720634, 3.003915 , 3.003915 , nan, 0.7678021 , -11.855811 , 0. , 153.13683 , True, False, False, 0, 56),
(5.81930351e+01, 8.84107 , 0.90707517, 2.9377894 , 0.01889768, 0.4515211 , 2.902884 , 0., 0.74068564, 18.242584 , 1.524734 , 10.78268 , False, False, False, 0, 57),
(3.36918449e+01, 24.28629 , 0.99512047, 1.1129323 , 0.02786886, 0.45774493, 1.0144398 , 0., 0.7400947 , 20.687923 , 1.2421334 , 50.523262 , False, False, False, 0, 58),
(1.00863945e+02, 61.852005 , 1.401139 , 0.46347833, 0.01208434, 0.40866366, 0.21864621, 0., 0.73216164, 20.687923 , 1.7576938 , 26.956646 , False, False, False, 0, 59),
(1.96536179e+02, 16.752668 , 0.8541882 , 2.3733652 , 0.06887503, 0.68410087, 2.2726347 , 0., 0.71595687, -16.09271 , -5.688889 , 259.15616 , False, False, False, 0, 60),
(2.57561157e+02, 34.927788 , 0.9970451 , 2.7830913 , 0.06043298, 1.5934409 , 2.281785 , 0., 0.7084111 , -20.687923 , 2.108245 , 105.17436 , False, False, False, 0, 61),
(2.57502716e+02, 48.344444 , 1.3547581 , 3.0062714 , 0.02324498, 2.2461476 , 1.9981213 , 0., 0.7051994 , 20.687923 , -2.6886399 , 184.61604 , False, False, False, 0, 62),
(7.86736069e+01, 47.70824 , 1.1248382 , 3.3810766 , 0.06533799, 2.5010767 , 2.2751472 , 0., 0.6833611 , 15.612324 , 1.2471061 , -6.0625935, False, False, False, 0, 63),
(1.41177991e+03, 87.58885 , 2.5932858 , 0.9593978 , 0.02298496, 0.9585484 , 0.04036188, 0., 0.6800304 , 20.687923 , -1.5404108 , 241.3997 , False, True, False, 0, 64),
(5.03089066e+01, 25.108826 , 0.9175468 , 3.1989005 , 0.0730935 , 1.357418 , 2.8966155 , 0., 0.66880906, -11.944961 , 1.1307788 , 113.774994 , False, False, False, 0, 65),
(3.21997375e+01, 27.908304 , 1.2886227 , 2.919258 , 0.06217556, 1.3663819 , 2.579742 , 0., 0.6680298 , 20.687923 , 1.9986203 , -19.343725 , False, False, False, 0, 66),
(4.68771782e+01, 28.0541 , 1.3521205 , 3.3695445 , 0.09540681, 1.5847138 , 2.9736362 , 0., 0.6582684 , -13.777205 , 5.688889 , -24.721287 , False, False, False, 0, 67),
(1.77572617e+02, 32.711567 , 1.4573848 , 3.407152 , 0.05172762, 1.8412598 , 2.8667834 , 0., 0.650631 , -13.777205 , 5.688889 , -24.721287 , False, False, False, 0, 68),
(4.65652885e+01, 51.69919 , 1.1980116 , 2.6289122 , 0.02349296, 2.063085 , 1.629374 , 0., 0.64993757, -20.687923 , 0.63935024, 151.01581 , False, False, False, 0, 69),
(9.65151062e+01, 57.657387 , 1.1075553 , 2.6896057 , 0.06238165, 2.2723515 , 1.4388876 , 0., 0.64411473, -20.687923 , -0.16730924, 180.55678 , False, False, False, 0, 70),
(3.05239887e+01, 81.27631 , 2.1258397 , 1.5883505 , 0.03001043, 1.5699754 , 0.2409043 , 0., 0.635879 , 20.687923 , 2.1730914 , 22.166162 , False, False, False, 0, 71),
(1.09483337e+02, 45. , inf, 0.09394952, 0.07417142, 0.06643234, 0.06643234, nan, 0.6282338 , 787.86005 , 0. , 114.157234 , True, False, True, 0, 72),
(4.65147705e+01, 8.171273 , 0.8392908 , 3.2317288 , 0.05365623, 0.45933422, 3.1989188 , 0., 0.62675077, -20.687923 , 1.9843987 , 127.41413 , False, False, False, 0, 73),
(2.09808969e+00, 45. , inf, 3.9674282 , 0.01696127, 2.8053954 , 2.8053954 , nan, 0.62348694, 70.503105 , 0. , -179.69002 , True, False, False, 0, 74),
(3.75055267e+02, 41.816093 , 0.9158193 , 3.064969 , 0.06321065, 2.043543 , 2.284287 , 0., 0.6083181 , 15.412676 , -3.777498 , 246.4996 , False, False, False, 0, 75),
(5.47984009e+01, 51.728687 , 1.1252599 , 2.5857766 , 0.03806834, 2.0300586 , 1.6015939 , 0., 0.6055013 , -20.687923 , 0.63935024, 151.01581 , False, False, False, 0, 76),
(2.65760975e+01, 30.627184 , 1.3759292 , 0.9389515 , 0.01604194, 0.47834858, 0.80796814, 0., 0.5602806 , 20.687923 , 1.2656844 , 40.08407 , False, False, False, 0, 77),
(2.61946838e+02, 62.499393 , 1.0194073 , 1.5395813 , 0.03784046, 1.3656178 , 0.710914 , 0., 0.55762416, 20.687923 , 0.5082448 , 138.17854 , False, False, False, 0, 78),
(7.01871948e+01, 17.27929 , 0.5470328 , 3.0368493 , 0.03774673, 0.9020345 , 2.8997908 , 0., 0.55539143, 20.687923 , 1.8209757 , 7.104003 , False, False, False, 0, 79),
(1.97640438e+01, 45. , inf, 4.071624 , 0.0356526 , 2.8790727 , 2.8790727 , nan, 0.535478 , 279.6658 , 0. , -1023.12683 , True, False, False, 0, 80),
(1.17629004e+01, 77.17999 , 0.7897248 , 3.263051 , 0.13534465, 3.1817095 , 0.72403497, 0., 0.53505725, -20.687923 , 0.64455724, 120.93596 , False, False, False, 0, 81),
(3.39694214e+01, 45. , inf, 1.522018 , 0.04078921, 1.0762292 , 1.0762292 , nan, 0.53260106, 155.36478 , 0. , -52.420345 , True, False, False, 0, 82),
(3.08428955e+02, 22.999908 , 0.96839356, 1.7504874 , 0.03734022, 0.68396735, 1.6113333 , 0., 0.52543014, 20.687923 , 3.0367181 , 94.92388 , False, False, False, 0, 83),
(1.48487076e+02, 35.21248 , 0.9539233 , 1.9769659 , 0.03590039, 1.1399388 , 1.6152195 , 0., 0.5199966 , -20.687923 , 2.1045308 , 166.71399 , False, False, False, 0, 84),
(1.72288609e+01, 49.925182 , 1.8313724 , 0.801288 , 0.01409204, 0.6131491 , 0.51585907, 0., 0.5076295 , 20.687923 , -0.36020002, 107.87057 , False, False, False, 0, 85),
(1.34036674e+01, 27.202148 , 6.2888584 , 2.6199563 , 0.06750105, 1.1976639 , 2.330187 , 0., 0.47813025, -20.687923 , 2.108245 , 105.17436 , False, False, False, 0, 86),
(1.12334976e+01, 47.729084 , 1.1425781 , 2.7729063 , 0.04322652, 2.0518746 , 1.8651593 , 0., 0.46518853, -13.124732 , -1.4659117 , 225.4434 , False, False, False, 0, 87),
(4.95116669e+02, 41.86494 , 0.9645675 , 2.737269 , 0.09667476, 1.8267903 , 2.038499 , 0., 0.45839855, -20.687923 , 5.3692465 , -32.741993 , False, False, False, 0, 88),
(5.84712563e+01, 20.89916 , 0.87451416, 3.197877 , 0.06353136, 1.1407604 , 2.9874878 , 0., 0.45332888, -11.944961 , 1.1307788 , 113.774994 , False, False, False, 0, 89),
(1.90037708e+01, 45. , inf, 0.5073706 , 0.0191646 , 0.3587652 , 0.3587652 , nan, 0.44421262, -189.53275 , 0. , 237.75536 , True, True, True, 0, 90),
(5.96197968e+01, 13.257076 , 0.5269021 , 2.969803 , 0.01051966, 0.68103707, 2.8906608 , 0., 0.43910968, -10.639028 , 4.134756 , 71.56419 , False, False, False, 0, 91),
(3.64748039e+01, 59.381588 , 3.0270975 , 3.1551297 , 0.07942361, 2.7152364 , 1.6069643 , 0., 0.42532593, -20.687923 , 0.15297577, 166.49844 , False, False, False, 0, 92),
(3.35869827e+01, 25.860228 , 0.8791693 , 3.1427698 , 0.06935941, 1.3708047 , 2.8280551 , 0., 0.41441596, -11.944961 , 1.1307788 , 113.774994 , False, False, False, 0, 93),
(3.30462524e+02, 18.272264 , 0.6591797 , 1.6036706 , 0.00966748, 0.5028033 , 1.5228093 , 0., 0.40576693, 20.687923 , 4.048354 , 68.7033 , False, False, False, 0, 94),
(1.28683313e+03, 63.580944 , 1.1650417 , 2.2723005 , 0.04082492, 2.03499 , 1.0110215 , 0., 0.40137202, -20.687923 , -0.54071736, 271.9001 , False, False, False, 0, 95)],
dtype=[('amplitude', '<f4'), ('angle', '<f4'), ('angle_width', '<f4'), ('radius', '<f4'), ('radius_width', '<f4'), ('q_z', '<f4'), ('q_xy', '<f4'), ('theta', '<f4'), ('score', '<f4'), ('A', '<f4'), ('B', '<f4'), ('C', '<f4'), ('is_ring', '?'), ('is_cut_qz', '?'), ('is_cut_qxy', '?'), ('visibility', '<i4'), ('id', '<i4')])
It returns a multilayered dictionary structure:
entry — top-level key corresponding to each entry in the file
frame number — sub-key corresponding to each frame in the entry
You can access fitted peak information such as peak centers, types, and amplitudes as follows:
q_xy = fitted_peaks['entry_0000']['0']['q_xy']
q_z = fitted_peaks['entry_0000']['0']['q_z']
amp = fitted_peaks['entry_0000']['0']['amplitude']
is_ring = fitted_peaks['entry_0000']['0']['is_ring']
q_xy.shape, q_z.shape, amp.shape, is_ring.shape
((96,), (96,), (96,), (96,))
Get only segments
q_xy_peaks = q_xy[~is_ring]
q_z_peaks = q_z[~is_ring]
amp_peaks = amp[~is_ring]
q_xy_peaks.shape, q_z_peaks.shape, amp_peaks.shape,
((87,), (87,), (87,))
Get only rings
q_xy_rings = q_xy[is_ring]
q_z_rings = q_z[is_ring]
amp_rings = amp[is_ring]
q_xy_rings.shape, q_z_rings.shape, amp_rings.shape,
((9,), (9,), (9,))
Read the matched solutions
matched_peaks = analysis.get_matched_peaks()
matched_peaks['entry_0000']['0']['matched_rings_0000']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In[9], line 2
1 matched_peaks = analysis.get_matched_peaks()
----> 2 matched_peaks['entry_0000']['0']['matched_rings_0000']
KeyError: 'matched_rings_0000'
The analysis returns a multilayered dictionary structure:
entry — top-level key corresponding to each entry in the file
frame number — sub-key corresponding to each frame in the entry
solution — sub-key corresponding to each solution for this frame
Each solution contains detected or matched peak information, such as peak centers, types, amplitudes, and matched CIF identifiers. For example, to access a specific matched peak set:
CIF_list = matched_peaks['entry_0000']['0']['matched_rings_0000']['CIF']
probability_list = matched_peaks['entry_0000']['0']['matched_rings_0000']['probability']
peak_list = matched_peaks['entry_0000']['0']['matched_rings_0000']['peak_list']
num = 0 # structure number in the given solution
CIF_list[num].decode('utf-8'), peak_list[num]
('In2O3_14387.cif',
array([13, 17, 26, 27, 35, 37, 43, 49, 51, 60, 64, 75, 88], dtype=int32))
You can recursively print a multilayered dictionary:
import numpy as np
for entry, frames in matched_peaks.items():
print(f"\nEntry: {entry}")
print("="*60)
for frame_num, solutions in frames.items():
print(f" Frame: {frame_num}")
print(" " + "-"*56)
for solution, data in solutions.items():
# Iterate over lists of CIFs and probabilities
for cif, prob in zip(data['CIF'], data['probability']):
# Decode bytes to string
cif_name = cif.decode('utf-8')
print(f" Solution: {solution:<15} CIF: {cif_name:<25} Probability: {prob}")
print(" " + "-"*56)
Entry: entry_0000
============================================================
Frame: 0
--------------------------------------------------------
Solution: matched_rings_0000 CIF: In2O3_14387.cif Probability: 0.9988044500350952
Solution: matched_segments_0000 CIF: 1_BA2PbI4_n1.cif Probability: 0.9957428574562073
--------------------------------------------------------
Get a pygid.Conversion instance
Additionally, the pygid.Conversion can be loaded for simulations:
conversion = analysis.nexus.load_entry(
entry = 'entry_0000', # entry name to load
frame_num = 0, # frame number to load (int, list or None (all))
)
crystal = {
'path_to_cif': '../../example/cifs/1_BA2PbI4_n1.cif', # path to CIF
'orientation': [0,0,1], # contact plane
'min_int': 1e-5, # minimal peak intensity to simulate
}
conversion.make_simulation(
frame_num=0, # Frame of experimental data
crystal=crystal,
plot_result=True, # Display simulation overlay
clims=(50, 1e4), # Intensity limits
)
INFO - Simulating GIWAXS data from CIF: ../../example/cifs/1_BA2PbI4_n1.cif, orientation: [0, 0, 1]
INFO - Use already converted image with frame num 0