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-07-17 12:05:23.566445231 [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
WARNING - Detection failed. Couldn't detect any peaks
Print the file structure:
analysis.nexus.print_file_structure()
File structure: ../../example/BA2PbI4.h5
{'entry_0000': {'axes': ['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., 32.427277 , 3.4301147, 1.6976575 , 0.04610777, 0.91033256, 1.4329464 , 0., 0.9999976 , 0., 0., 0., False, False, False, 0, 0),
(0., 51.998474 , 3.123932 , 2.320836 , 0.05733991, 1.8288057 , 1.4288981 , 0., 0.9999883 , 0., 0., 0., False, False, False, 0, 1),
(0., 63.724487 , 4.3052063, 2.283905 , 0.05747008, 2.0479221 , 1.0110574 , 0., 0.99998546, 0., 0., 0., False, False, False, 0, 2),
(0., 23.122437 , 2.6454163, 1.7503606 , 0.03783154, 0.68736184, 1.6097503 , 0., 0.99997425, 0., 0., 0., False, False, False, 0, 3),
(0., 42.255432 , 3.710205 , 3.041603 , 0.06829095, 2.0452864 , 2.2512558 , 0., 0.99996734, 0., 0., 0., False, False, False, 0, 4),
(0., 15.88324 , 2.5837097, 1.658978 , 0.03913963, 0.4540256 , 1.5956405 , 0., 0.9999442 , 0., 0., 0., False, False, False, 0, 5),
(0., 34.0896 , 2.8281555, 1.2281849 , 0.02517474, 0.68838376, 1.0171362 , 0., 0.9999411 , 0., 0., 0., False, False, False, 0, 6),
(0., 35.199554 , 2.1038208, 2.7632413 , 0.04664874, 1.5928041 , 2.257981 , 0., 0.9999213 , 0., 0., 0., False, False, False, 0, 7),
(0., 29.675415 , 2.483673 , 1.8375642 , 0.03283489, 0.9097521 , 1.5965567 , 0., 0.999892 , 0., 0., 0., False, False, False, 0, 8),
(0., 8.226105 , 2.5830078, 1.6240106 , 0.04910302, 0.23236322, 1.6073014 , 0., 0.9998853 , 0., 0., 0., False, False, False, 0, 9),
(0., 86.92963 , 3.433838 , 0.9269422 , 0.05848312, 0.9256116 , 0.04964931, 0., 0.9998424 , 0., 0., 0., False, False, False, 0, 10),
(0., 56.467896 , 4.1681824, 4.0975156 , 0.07835484, 3.4155924 , 2.2634845 , 0., 0.9998336 , 0., 0., 0., False, False, False, 0, 11),
(0., 41.21454 , 71.08499 , 3.5397027 , 0.02325726, 2.3322406 , 2.662733 , 0., 0.99982643, 0., 0., 0., False, False, False, 0, 12),
(0., 44.02539 , 79.04529 , 2.9080942 , 0.06284714, 2.0210588 , 2.0910125 , 0., 0.9997728 , 0., 0., 0., False, False, False, 0, 13),
(0., 57.555786 , 3.4761963, 1.8904796 , 0.04409516, 1.5954025 , 1.0142012 , 0., 0.999753 , 0., 0., 0., False, False, False, 0, 14),
(0., 81.66455 , 3.5173035, 2.6286266 , 0.03815269, 2.6008584 , 0.38106787, 0., 0.9996896 , 0., 0., 0., False, False, False, 0, 15),
(0., 41.444916 , 2.4743042, 2.7441316 , 0.0387001 , 1.8163399 , 2.0569801 , 0., 0.99968314, 0., 0., 0., False, False, False, 0, 16),
(0., 41.706482 , 78.211334 , 3.4888473 , 0.03307223, 2.3211818 , 2.6046438 , 0., 0.99968266, 0., 0., 0., False, False, False, 0, 17),
(0., 12.854614 , 3.8706055, 1.0404475 , 0.02305269, 0.23147656, 1.0143715 , 0., 0.99963844, 0., 0., 0., False, False, False, 0, 18),
(0., 48.197662 , 3.201538 , 3.0555894 , 0.05716467, 2.2777855 , 2.0367424 , 0., 0.99962246, 0., 0., 0., False, False, False, 0, 19),
(0., 85.57898 , 3.374298 , 1.3573555 , 0.03754497, 1.3533167 , 0.10463153, 0., 0.99961245, 0., 0., 0., False, False, False, 0, 20),
(0., 87.39819 , 3.8207703, 0.6364759 , 0.03401327, 0.6358198 , 0.02889251, 0., 0.99958 , 0., 0., 0., False, False, False, 0, 21),
(0., 44.766693 , 2.277771 , 2.263278 , 0.03656387, 1.5938493 , 1.6068827 , 0., 0.9995557 , 0., 0., 0., False, False, False, 0, 22),
(0., 57.652954 , 2.3234558, 2.6796608 , 0.03952718, 2.2638385 , 1.4337425 , 0., 0.9994751 , 0., 0., 0., False, False, False, 0, 23),
(0., 54.90204 , 2.526764 , 2.788608 , 0.04943538, 2.281556 , 1.6033831 , 0., 0.9994749 , 0., 0., 0., False, False, False, 0, 24),
(0., 62.628296 , 2.071289 , 1.5512414 , 0.02481186, 1.3775682 , 0.71320087, 0., 0.9993789 , 0., 0., 0., False, False, False, 0, 25),
(0., 46.677765 , 71.9942 , 3.1489737 , 0.05052185, 2.290899 , 2.1605132 , 0., 0.99924517, 0., 0., 0., False, False, False, 0, 26),
(0., 42.412476 , 80.535126 , 2.1436663 , 0.02989292, 1.4458239 , 1.582687 , 0., 0.99924374, 0., 0., 0., False, False, False, 0, 27),
(0., 42.77542 , 85.55084 , 0.50617015, 0.03137279, 0.34375358, 0.37153965, 0., 0.9992143 , 0., 0., 0., False, False, False, 0, 28),
(0., 33.181885 , 2.0055542, 0.8467169 , 0.02177542, 0.463407 , 0.708649 , 0., 0.9992019 , 0., 0., 0., False, False, False, 0, 29),
(0., 34.218353 , 2.466919 , 2.4518116 , 0.0295186 , 1.378772 , 2.027404 , 0., 0.9986857 , 0., 0., 0., False, False, False, 0, 30),
(0., 86.50238 , 6.9952087, 0.45271474, 0.05482513, 0.45187148, 0.02761881, 0., 0.9985429 , 0., 0., 0., False, False, False, 0, 31),
(0., 9.146759 , 5.0625 , 1.0089695 , 0.03069115, 0.16038968, 0.99613994, 0., 0.99826586, 0., 0., 0., False, False, False, 0, 32),
(0., 51.78076 , 3.2413025, 2.5944507 , 0.04140186, 2.0383282 , 1.6051147 , 0., 0.99793935, 0., 0., 0., False, False, False, 0, 33),
(0., 5.771942 , 3.1299438, 2.273839 , 0.04797196, 0.22867793, 2.2623107 , 0., 0.9976517 , 0., 0., 0., False, False, False, 0, 34),
(0., 44.145935 , 25.75241 , 4.156163 , 0.02237749, 2.8947191 , 2.9823303 , 0., 0.9975394 , 0., 0., 0., False, False, False, 0, 35),
(0., 35.196747 , 1.7332153, 1.9728407 , 0.02687263, 1.1371176 , 1.6121612 , 0., 0.99715424, 0., 0., 0., False, False, False, 0, 36),
(0., 46.477844 , 46.62259 , 3.7938478 , 0.03432178, 2.7509496 , 2.6125765 , 0., 0.9967687 , 0., 0., 0., False, False, False, 0, 37),
(0., 24.283936 , 2.3442078, 1.1159072 , 0.01692951, 0.45892665, 1.0171702 , 0., 0.99643505, 0., 0., 0., False, False, False, 0, 38),
(0., 12.822601 , 3.5600586, 2.0820322 , 0.03475165, 0.46207196, 2.0301104 , 0., 0.9957502 , 0., 0., 0., False, False, False, 0, 39),
(0., 67.9671 , 1.9715271, 2.7046251 , 0.03557992, 2.5071027 , 1.0146102 , 0., 0.9941821 , 0., 0., 0., False, False, False, 0, 40),
(0., 68.80603 , 2.6531067, 1.9547937 , 0.04362452, 1.8225751 , 0.7067097 , 0., 0.99109197, 0., 0., 0., False, False, False, 0, 41),
(0., 38.01648 , 2.9406128, 3.6551862 , 0.04932952, 2.2511854 , 2.8796787 , 0., 0.9910488 , 0., 0., 0., False, False, False, 0, 42),
(0., 33.58423 , 72.899506 , 2.474072 , 0.0215621 , 1.3685633 , 2.061084 , 0., 0.9907459 , 0., 0., 0., False, False, False, 0, 43),
(0., 26.76416 , 2.3535461, 2.5215392 , 0.04424882, 1.1354973 , 2.251401 , 0., 0.9892787 , 0., 0., 0., False, False, False, 0, 44),
(0., 46.676025 , 85.302826 , 0.30433828, 0.02221304, 0.22140175, 0.20881344, 0., 0.98899984, 0., 0., 0., False, False, False, 0, 45),
(0., 5.669922 , 3.0922852, 1.8671283 , 0.02500701, 0.18446736, 1.8579935 , 0., 0.98875797, 0., 0., 0., False, False, False, 0, 46),
(0., 50.085144 , 4.874298 , 0.40281972, 0.00870758, 0.30896223, 0.2584687 , 0., 0.98837256, 0., 0., 0., False, False, False, 0, 47),
(0., 40.664734 , 1.5088196, 2.0854068 , 0.0180881 , 1.3589171 , 1.5818552 , 0., 0.9881674 , 0., 0., 0., False, False, False, 0, 48),
(0., 42.740295 , 42.30664 , 3.860931 , 0.03862619, 2.6203225 , 2.8356123 , 0., 0.98713577, 0., 0., 0., False, False, False, 0, 49),
(0., 57.534363 , 2.683197 , 2.9812648 , 0.04814911, 2.5153337 , 1.600324 , 0., 0.98629093, 0., 0., 0., False, False, False, 0, 50),
(0., 47.274963 , 79.016754 , 1.5193834 , 0.01596212, 1.1161667 , 1.0308723 , 0., 0.9857589 , 0., 0., 0., False, False, False, 0, 51),
(0., 17.695526 , 2.8101196, 2.3535917 , 0.0373044 , 0.7153946 , 2.242232 , 0., 0.98565876, 0., 0., 0., False, False, False, 0, 52),
(0., 50.20813 , 4.8968506, 2.413786 , 0.04967237, 1.8546913 , 1.5448246 , 0., 0.98387563, 0., 0., 0., False, False, False, 0, 53),
(0., 42.13977 , 1.8297424, 1.3630769 , 0.02294314, 0.9145448 , 1.0107355 , 0., 0.98351145, 0., 0., 0., False, False, False, 0, 54),
(0., 37.30896 , 2.466919 , 0.94308615, 0.0115422 , 0.5716166 , 0.7501107 , 0., 0.98251665, 0., 0., 0., False, False, False, 0, 55),
(0., 33.391052 , 4.5487366, 0.40375316, 0.00853068, 0.2222057 , 0.33710718, 0., 0.98084116, 0., 0., 0., False, False, False, 0, 56),
(0., 72.35062 , 4.850769 , 1.876533 , 0.04202998, 1.788204 , 0.5689486 , 0., 0.97593415, 0., 0., 0., False, False, False, 0, 57),
(0., 81.89841 , 4.340454 , 2.1202724 , 0.03342056, 2.0991116 , 0.29880732, 0., 0.9751378 , 0., 0., 0., False, False, False, 0, 58),
(0., 32.125153 , 2.8754272, 3.3914065 , 0.04010105, 1.8034496 , 2.8721433 , 0., 0.96959305, 0., 0., 0., False, False, False, 0, 59),
(0., 44.97339 , 82.110016 , 1.5375929 , 0.01020265, 1.0867373 , 1.0877472 , 0., 0.9686203 , 0., 0., 0., False, False, False, 0, 60),
(0., 25.22641 , 1.9782104, 3.1843653 , 0.03733206, 1.3571647 , 2.8806746 , 0., 0.9655597 , 0., 0., 0., False, False, False, 0, 61),
(0., 42.38623 , 2.530365 , 2.6996496 , 0.0237956 , 1.819901 , 1.9940081 , 0., 0.9624704 , 0., 0., 0., False, False, False, 0, 62),
(0., 21.238678 , 2.7505493, 0.9734652 , 0.01013833, 0.35264155, 0.90734696, 0., 0.9622601 , 0., 0., 0., False, False, False, 0, 63),
(0., 45.133972 , 81.45834 , 3.5156174 , 0.01805925, 2.491723 , 2.4800973 , 0., 0.9423877 , 0., 0., 0., False, False, False, 0, 64),
(0., 36.190674 , 2.4509583, 1.776731 , 0.02283132, 1.049114 , 1.4339222 , 0., 0.9395672 , 0., 0., 0., False, False, False, 0, 65),
(0., 17.14978 , 2.4335022, 3.03901 , 0.03810143, 0.8961148 , 2.903887 , 0., 0.9386257 , 0., 0., 0., False, False, False, 0, 66),
(0., 43.572113 , 2.1831055, 1.981868 , 0.03538013, 1.3660362 , 1.435878 , 0., 0.9291179 , 0., 0., 0., False, False, False, 0, 67),
(0., 49.71997 , 3.4615479, 0.8052717 , 0.01236904, 0.6143367 , 0.5206274 , 0., 0.91257405, 0., 0., 0., False, False, False, 0, 68),
(0., 86.78635 , 6.9136963, 0.33378673, 0.02618492, 0.33326182, 0.01871191, 0., 0.89191556, 0., 0., 0., False, False, False, 0, 69),
(0., 10.111969 , 3.4382935, 2.6290145 , 0.0435555 , 0.46158233, 2.5881767 , 0., 0.8763772 , 0., 0., 0., False, False, False, 0, 70),
(0., 81.63245 , 5.401825 , 0.53016067, 0.01379055, 0.52451706, 0.07715045, 0., 0.8734865 , 0., 0., 0., False, False, False, 0, 71),
(0., 8.231812 , 1.7259827, 3.239707 , 0.03006864, 0.46385622, 3.206328 , 0., 0.8671231 , 0., 0., 0., False, False, False, 0, 72),
(0., 81.48599 , 3.2441406, 1.0580978 , 0.01146114, 1.0464373 , 0.15665263, 0., 0.8593646 , 0., 0., 0., False, False, False, 0, 73),
(0., 30.640137 , 2.557251 , 0.94158465, 0.00555515, 0.4798732 , 0.8101255 , 0., 0.85846305, 0., 0., 0., False, False, False, 0, 74),
(0., 45.01831 , 21.965057 , 4.249851 , 0.02125931, 3.006059 , 3.004138 , 0., 0.8357626 , 0., 0., 0., False, False, False, 0, 75),
(0., 77.61481 , 3.9010925, 0.84829634, 0.01748025, 0.8285546 , 0.18194507, 0., 0.7874025 , 0., 0., 0., False, False, False, 0, 76),
(0., 5.1729736, 1.7171631, 0.7763597 , 0.00787681, 0.06999877, 0.7731976 , 0., 0.7630211 , 0., 0., 0., False, False, False, 0, 77),
(0., 81.64343 , 4.1427307, 1.5857755 , 0.02315784, 1.568939 , 0.23046571, 0., 0.7402148 , 0., 0., 0., False, False, False, 0, 78),
(0., 28.133118 , 2.4232178, 2.9349284 , 0.02608848, 1.3838824 , 2.5881798 , 0., 0.7175801 , 0., 0., 0., False, False, False, 0, 79),
(0., 21.04956 , 2.9943542, 3.2063646 , 0.04800177, 1.1516472 , 2.9924042 , 0., 0.7099935 , 0., 0., 0., False, False, False, 0, 80),
(0., 7.2092896, 2.6794128, 1.1512735 , 0.01129115, 0.14447801, 1.142172 , 0., 0.6362717 , 0., 0., 0., False, False, False, 0, 81),
(0., 16.341248 , 1.7180481, 0.79909384, 0.00594836, 0.22483113, 0.76681286, 0., 0.5920701 , 0., 0., 0., False, False, False, 0, 82),
(0., 24.875732 , 3.891693 , 2.2239041 , 0.03784847, 0.9354888 , 2.0175753 , 0., 0.55762625, 0., 0., 0., False, False, False, 0, 83),
(0., 52.348755 , 2.1201782, 1.156663 , 0.01600933, 0.91578054, 0.7065516 , 0., 0.54824257, 0., 0., 0., False, False, False, 0, 84),
(0., 8.919189 , 2.942627 , 2.8620896 , 0.04275703, 0.44374198, 2.8274813 , 0., 0.51545155, 0., 0., 0., False, False, False, 0, 85),
(0., 59.524963 , 2.5531006, 3.1818893 , 0.02835989, 2.742312 , 1.6137363 , 0., 0.49212956, 0., 0., 0., False, False, False, 0, 86),
(0., 12.815979 , 1.5818787, 3.0261936 , 0.01186395, 0.6712716 , 2.9508038 , 0., 0.47389352, 0., 0., 0., False, False, False, 0, 87),
(0., 45.320007 , 18.592377 , 4.3269033 , 0.03725004, 3.0766232 , 3.0424469 , 0., 0.38814318, 0., 0., 0., False, False, False, 0, 88),
(0., 34.730164 , 1.6214905, 2.4190588 , 0.01452732, 1.3781675 , 1.9880894 , 0., 0.2919792 , 0., 0., 0., False, False, False, 0, 89),
(0., 4.6171875, 1.0184326, 3.0132227 , 0.00603843, 0.24255818, 3.0034442 , 0., 0.27773833, 0., 0., 0., False, False, False, 0, 90),
(0., 8.601044 , 2.1176758, 1.3988013 , 0.00780272, 0.20919544, 1.38307 , 0., 0.20308328, 0., 0., 0., False, False, False, 0, 91),
(0., 35.087646 , 2.1220398, 2.8178203 , 0.01845837, 1.6197643 , 2.3057482 , 0., 0.13765144, 0., 0., 0., False, False, False, 0, 92),
(0., 62.10956 , 2.5473022, 0.4620412 , 0.00502357, 0.40837222, 0.21613471, 0., 0.08867049, 0., 0., 0., False, False, False, 0, 93),
(0., 32.39099 , 1.61203 , 3.3285656 , 0.00990367, 1.7830926 , 2.8106813 , 0., 0.08096695, 0., 0., 0., False, False, False, 0, 94)],
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
((95,), (95,))
Read the fitted peaks
fitted_peaks = analysis.get_fitted_peaks()
fitted_peaks['entry_0000']['0']
array([(6.7566010e+02, 32.421303 , 1.1329187 , 1.6984148 , 0.04147886, 0.9105893 , 1.4336805 , 0., 0.9999976 , -20.687923 , 1.4725417 , 198.63441 , False, False, False, 0, 0),
(2.4723970e+02, 51.753757 , 1.243038 , 2.3124957 , 0.06077257, 1.8161359 , 1.4315331 , 0., 0.9999883 , -20.687923 , 0.00634714, 221.2811 , False, False, False, 0, 1),
(1.2808958e+03, 63.59366 , 1.1973839 , 2.281721 , 0.05442685, 2.043652 , 1.0147598 , 0., 0.99998546, -20.687923 , 1.406057 , 145.74939 , False, False, False, 0, 2),
(3.1531558e+02, 23.001713 , 0.98988295, 1.7499484 , 0.03589573, 0.6838075 , 1.6108155 , 0., 0.99997425, -20.687923 , 2.8553255 , 167.88124 , False, False, False, 0, 3),
(5.2162653e+02, 42.091644 , 1.1197909 , 3.0453718 , 0.07276262, 2.0413687 , 2.25989 , 0., 0.99996734, 20.687923 , -2.5318625 , 170.08418 , False, False, False, 0, 4),
(3.8954254e+02, 15.958809 , 1.0163413 , 1.655431 , 0.03999717, 0.45515448, 1.59163 , 0., 0.9999442 , 20.687923 , 2.9915144 , 89.56608 , False, False, False, 0, 5),
(5.6615356e+02, 34.032825 , 1.0860645 , 1.222551 , 0.02813488, 0.6842224 , 1.0131489 , 0., 0.9999411 , 20.687923 , 0.2779113 , 87.226265 , False, False, False, 0, 6),
(2.8878683e+02, 35.326836 , 1.0217057 , 2.7512267 , 0.05109524, 1.5908687 , 2.2446346 , 0., 0.9999213 , -20.687923 , 3.087781 , 67.05354 , False, False, False, 0, 7),
(2.1241402e+02, 29.693731 , 1.1710634 , 1.8321644 , 0.05060554, 0.9075876 , 1.591575 , 0., 0.999892 , -20.687923 , 1.4725417 , 198.63441 , False, False, False, 0, 8),
(3.2124890e+02, 8.16514 , 0.97878104, 1.6211296 , 0.04606103, 0.2302437 , 1.6046959 , 0., 0.9998853 , 20.687923 , 5.688889 , 47.844646 , False, False, False, 0, 9),
(1.4773092e+03, 87.70113 , 1.5558754 , 0.9147457 , 0.03505794, 0.91400945, 0.03669228, 0., 0.9998424 , 20.687923 , 1.7084345 , -30.649757 , False, True, False, 0, 10),
(6.9024979e+01, 56.406204 , 4.5703125 , 4.1001987 , 0.11389966, 3.4153883 , 2.2686455 , 0., 0.9998336 , 20.687923 , -0.02671782, 11.59517 , False, False, False, 0, 11),
(2.1864798e+01, 45. , inf, 3.5446892 , 0.02984258, 2.5064738 , 2.5064738 , nan, 0.99982643, 28.042109 , 0. , -1.5001986, True, False, False, 0, 12),
(1.1042014e+01, 45. , inf, 2.9091396 , 0.08738417, 2.0570724 , 2.0570724 , nan, 0.9997728 , -0.8458107, 0. , 107.23718 , True, True, False, 0, 13),
(9.5957227e+02, 57.51649 , 1.1441146 , 1.8884794 , 0.04504059, 1.5930194 , 1.0142207 , 0., 0.999753 , -20.687923 , -0.49800485, 278.58292 , False, False, False, 0, 14),
(3.1170321e+01, 80.90969 , 3.8671875 , 2.6152444 , 0.07390295, 2.5823982 , 0.41318506, 0., 0.9996896 , -20.687923 , 2.5159929 , -31.496796 , False, True, False, 0, 15),
(5.6730762e+02, 41.856983 , 0.9855962 , 2.7484107 , 0.03366617, 1.8339417 , 2.0470512 , 0., 0.99968314, -6.727388 , -2.4589894 , 239.92735 , False, False, False, 0, 16),
(3.1810829e+01, 45. , inf, 3.4689908 , 0.03293303, 2.452947 , 2.452947 , nan, 0.99968266, 28.042109 , 0. , -1.5001986, True, False, False, 0, 17),
(6.1198940e+03, 12.836185 , 1.0546877 , 1.0383103 , 0.02202946, 0.23067549, 1.0123621 , 0., 0.99963844, 19.98217 , -4.3574057 , 117.574715 , False, False, False, 0, 18),
(3.1321759e+02, 48.279316 , 1.1869978 , 3.0406296 , 0.07343388, 2.2695198 , 2.0235384 , 0., 0.99962246, 7.4596634, -2.963457 , 239.02364 , False, False, False, 0, 19),
(1.4198959e+02, 86.156975 , 0.92285156, 1.3483946 , 0.02246688, 1.3453627 , 0.09037374, 0., 0.99961245, 20.687923 , 2.5104442 , -44.54194 , False, True, False, 0, 20),
(1.2911343e+03, 85.68695 , 4.21875 , 0.6233724 , 0.07733981, 0.621607 , 0.04688123, 0., 0.99958 , -20.687923 , -5.688889 , -34.02573 , False, True, False, 0, 21),
(1.5519414e+02, 44.67391 , 1.0402986 , 2.2599356 , 0.0530858 , 1.5888951 , 1.6070848 , 0., 0.9995557 , -20.687923 , 2.5385797 , 111.880646 , False, False, False, 0, 22),
(9.6876381e+01, 57.70361 , 1.26962 , 2.6799636 , 0.06956498, 2.2653613 , 1.4319022 , 0., 0.9994751 , -20.687923 , -0.59959215, 207.26964 , False, False, False, 0, 23),
(3.7375301e+01, 54.74575 , 1.096715 , 2.7800887 , 0.05799282, 2.270217 , 1.6046832 , 0., 0.9994749 , -20.687923 , -0.59959215, 207.26964 , False, False, False, 0, 24),
(2.6392545e+02, 62.500683 , 0.9839814 , 1.5366106 , 0.03872627, 1.3629987 , 0.7095116 , 0., 0.9993789 , -20.687923 , 0.6451523 , 215.06915 , False, False, False, 0, 25),
(3.7250206e+01, 45. , inf, 3.1695154 , 0.14898233, 2.241186 , 2.241186 , nan, 0.99924517, -112.434105 , 0. , 436.93234 , True, True, False, 0, 26),
(3.9106787e+02, 45. , inf, 2.1509664 , 0.07911258, 1.520963 , 1.520963 , nan, 0.99924374, -569.1085 , 0. , 1236.4015 , True, False, False, 0, 27),
(7.2675538e+00, 45. , inf, 0.51195574, 0.02511805, 0.36200738, 0.36200738, nan, 0.9992143 , -284.0239 , 0. , 280.0289 , True, False, True, 0, 28),
(8.2623009e+01, 32.93384 , 0.87173903, 0.8434469 , 0.02073129, 0.458557 , 0.70790404, 0., 0.9992019 , -20.687923 , 0.14675803, 113.17324 , False, False, False, 0, 29),
(2.5376408e+02, 33.93459 , 1.0328139 , 2.4591887 , 0.03501642, 1.3728325 , 2.0403285 , 0., 0.9986857 , -11.55774 , 3.0097477 , 64.11128 , False, False, False, 0, 30),
(3.5828534e+05, 88.8474 , 1.8017578 , 0.4587278 , 0.03021086, 0.45863497, 0.0092275 , 0., 0.9985429 , -20.687923 , -5.688889 , -34.02573 , False, True, False, 0, 31),
(1.5837714e+02, 11.577013 , 2.2444055 , 1.0262804 , 0.01812661, 0.20595898, 1.0054016 , 0., 0.99826586, 19.98217 , -4.3574057 , 117.574715 , False, False, False, 0, 32),
(5.0125462e+01, 51.71948 , 1.0466869 , 2.6041114 , 0.06863698, 2.0441937 , 1.6132787 , 0., 0.99793935, 3.0255704, 0.2887911 , 110.05982 , False, False, False, 0, 33),
(9.8112915e+02, 5.881533 , 1.8896484 , 2.2681868 , 0.08353858, 0.23242548, 2.2562468 , 0., 0.9976517 , -20.684952 , -5.688889 , 11.961062 , False, False, False, 0, 34),
(1.7086876e+01, 45. , inf, 4.154259 , 0.03057178, 2.937505 , 2.937505 , nan, 0.9975394 , -292.40784 , 0. , 1328.8615 , True, False, False, 0, 35),
(1.6595308e+02, 35.23716 , 1.0467156 , 1.9653205 , 0.04919683, 1.1339155 , 1.6052165 , 0., 0.99715424, -3.2225463, 0.7087353 , 177.55232 , False, False, False, 0, 36),
(2.7899675e+00, 45. , inf, 3.790024 , 0.03828304, 2.6799517 , 2.6799517 , nan, 0.9967687 , 43.132816 , 0. , -65.17654 , True, False, False, 0, 37),
(3.2961445e+01, 24.303043 , 0.9232238 , 1.1129161 , 0.02654809, 0.45803487, 1.0142912 , 0., 0.99643505, 20.687923 , 0.41656935, 72.01186 , False, False, False, 0, 38),
(1.1131299e+03, 12.717163 , 0.9667969 , 2.0984175 , 0.01933495, 0.46194234, 2.0469406 , 0., 0.9957502 , 20.687923 , 5.688889 , 81.45901 , False, False, False, 0, 39),
(7.5373871e+01, 67.85735 , 1.0836444 , 2.683475 , 0.08217354, 2.4855642 , 1.0114386 , 0., 0.9941821 , -20.687923 , -0.87472975, 237.41081 , False, False, False, 0, 40),
(5.8273094e+01, 68.599464 , 1.0072232 , 1.9489814 , 0.04734049, 1.8146039 , 0.71115494, 0., 0.99109197, -20.687923 , -0.34835455, 281.71823 , False, False, False, 0, 41),
(4.8099304e+01, 38.265568 , 1.2644649 , 3.6544774 , 0.07120788, 2.2632444 , 2.869308 , 0., 0.9910488 , -20.687923 , -0.024213 , 175.63126 , False, False, False, 0, 42),
(4.4553188e+01, 45. , inf, 2.4618986 , 0.04875787, 1.7408252 , 1.7408252 , nan, 0.9907459 , 559.0415 , 0. , -1242.8204 , True, False, True, 0, 43),
(9.1936729e+01, 26.815224 , 1.8399646 , 2.5136476 , 0.05366853, 1.1339433 , 2.243345 , 0., 0.9892787 , -20.687923 , -1.8334005 , 220.57085 , False, False, False, 0, 44),
(1.4454724e+01, 45. , inf, 0.30214024, 0.03108919, 0.21364541, 0.21364541, nan, 0.98899984, -343.25494 , 0. , 283.23727 , True, True, False, 0, 45),
(6.0496803e+01, 6.007795 , 2.636591 , 1.8668509 , 0.05800485, 0.19539164, 1.8565975 , 0., 0.98875797, -13.907102 , 5.688889 , 79.08096 , False, False, False, 0, 46),
(3.0159082e+02, 49.948174 , 1.9647753 , 0.40288502, 0.00979284, 0.30839345, 0.25924855, 0., 0.98837256, -20.687923 , 0.43520445, 149.73955 , False, False, False, 0, 47),
(1.6403493e+02, 40.65802 , 1.035203 , 2.0956616 , 0.04350364, 1.3654133 , 1.5897939 , 0., 0.9881674 , 20.687923 , 0.4286768 , 142.39386 , False, False, False, 0, 48),
(2.2815106e+00, 45. , inf, 3.8643777 , 0.02635475, 2.7325277 , 2.7325277 , nan, 0.98713577, -16.040735 , 0. , 161.40445 , True, False, False, 0, 49),
(3.6773212e+01, 57.306713 , 1.1758231 , 2.95575 , 0.10215163, 2.4874825 , 1.596524 , 0., 0.98629093, -20.687923 , 0.9422274 , 123.39281 , False, False, False, 0, 50),
(2.7966425e+01, 45. , inf, 1.5095917 , 0.02173411, 1.0674425 , 1.0674425 , nan, 0.9857589 , 194.55748 , 0. , -110.07765 , True, True, False, 0, 51),
(1.8330092e+02, 16.855915 , 0.8617266 , 2.360273 , 0.06405377, 0.68439865, 2.2588685 , 0., 0.98565876, -20.687923 , 5.6888885 , 109.681786 , False, False, False, 0, 52),
(5.1468803e+01, 50.740078 , 5.2734375 , 2.4567974 , 0.02779399, 1.9022565 , 1.5547582 , 0., 0.98387563, -20.687923 , 0.00634714, 221.2811 , False, False, False, 0, 53),
(4.4667755e+01, 41.973095 , 1.4205455 , 1.3655727 , 0.03781632, 0.9132698 , 1.0152472 , 0., 0.98351145, 20.687923 , 1.281089 , 73.284706 , False, False, False, 0, 54),
(3.0864773e+01, 37.220203 , 1.1456705 , 0.941164 , 0.0141602 , 0.56929123, 0.74946463, 0., 0.98251665, 20.687923 , 0.331221 , 71.189896 , False, False, False, 0, 55),
(2.2470967e+02, 33.194576 , 2.1678767 , 0.40240934, 0.00954505, 0.2203127 , 0.33674264, 0., 0.98084116, -20.687923 , 1.6253442 , 108.97101 , False, False, False, 0, 56),
(2.4533934e+01, 72.36965 , 4.2327356 , 1.865047 , 0.06549901, 1.7774464 , 0.5648756 , 0., 0.97593415, -20.687923 , -0.34835455, 281.71823 , False, False, False, 0, 57),
(1.1982606e+02, 81.36909 , 3.8353593 , 2.1181028 , 0.02062993, 2.0941164 , 0.317861 , 0., 0.9751378 , -20.687923 , 4.0491047 , -64.59061 , False, False, False, 0, 58),
(1.4677499e+02, 32.381752 , 1.2565689 , 3.408311 , 0.06120641, 1.8253475 , 2.8783135 , 0., 0.96959305, 20.687923 , -1.3126519 , 70.30778 , False, False, False, 0, 59),
(2.4493120e+01, 45. , inf, 1.5338043 , 0.01868487, 1.0845634 , 1.0845634 , nan, 0.9686203 , 194.55748 , 0. , -110.07765 , True, False, False, 0, 60),
(4.6843704e+01, 25.218422 , 0.9396236 , 3.200336 , 0.08700728, 1.3635678 , 2.8953123 , 0., 0.9655597 , -20.687923 , 1.7082636 , 105.972755 , False, False, False, 0, 61),
(6.6685846e+02, 42.012695 , 1.093844 , 2.7016423 , 0.03081546, 1.8081963 , 2.0073109 , 0., 0.9624704 , -6.727388 , -2.4589894 , 239.92735 , False, False, False, 0, 62),
(3.0686869e+01, 21.267635 , 1.688042 , 0.9724322 , 0.01667734, 0.35272536, 0.90620595, 0., 0.9622601 , 20.687923 , -0.09937178, 76.1778 , False, False, False, 0, 63),
(4.4954552e+01, 45. , inf, 3.510889 , 0.05314285, 2.4825735 , 2.4825735 , nan, 0.9423877 , 28.042109 , 0. , -1.5001986, True, True, False, 0, 64),
(6.0308037e+01, 34.664673 , 0.81958956, 1.7365203 , 0.04850966, 0.987685 , 1.428279 , 0., 0.9395672 , -20.687923 , 1.4725417 , 198.63441 , False, False, False, 0, 65),
(5.9733036e+01, 17.276323 , 0.6886362 , 3.0421329 , 0.05274972, 0.9034535 , 2.9048827 , 0., 0.9386257 , 9.925995 , 2.966812 , 16.71058 , False, False, False, 0, 66),
(3.1343634e+01, 43.535213 , 1.4646211 , 1.9680175 , 0.05132436, 1.3555709 , 1.4267166 , 0., 0.9291179 , 20.687923 , 0.4286768 , 142.39386 , False, False, False, 0, 67),
(1.7715338e+01, 49.964355 , 1.837673 , 0.80130106, 0.01466284, 0.6135117 , 0.51544815, 0., 0.91257405, 20.687923 , -0.68656754, 123.700485 , False, False, False, 0, 68),
(1.3712143e+04, 89.17742 , 2.3684638 , 0.31506953, 0.04321605, 0.31503707, 0.0045232 , 0., 0.89191556, -20.687923 , -5.688889 , -34.02573 , False, True, False, 0, 69),
(4.7947342e+01, 10.138699 , 1.0514947 , 2.6039689 , 0.07780222, 0.4583809 , 2.5633066 , 0., 0.8763772 , -20.687923 , 2.9999871 , 115.670944 , False, False, False, 0, 70),
(1.3507516e+03, 82.09638 , 5.8007812 , 0.5306558 , 0.0386699 , 0.525615 , 0.07296892, 0., 0.8734865 , -20.687923 , -5.688889 , -34.02573 , False, False, False, 0, 71),
(4.7891781e+01, 8.155795 , 0.912777 , 3.2317915 , 0.05961292, 0.45847896, 3.199105 , 0., 0.8671231 , -20.687923 , 2.9000304 , 117.04283 , False, False, False, 0, 72),
(6.6965759e+01, 81.25147 , 1.5790417 , 1.0567929 , 0.01721321, 1.0444975 , 0.16073605, 0., 0.8593646 , 20.687923 , 1.4995023 , -19.013052 , False, False, False, 0, 73),
(2.7427671e+01, 30.6998 , 1.5020177 , 0.93898773, 0.01715936, 0.47939074, 0.8073924 , 0., 0.85846305, 20.687923 , 0.17157927, 72.10645 , False, False, False, 0, 74),
(6.2418199e+00, 45. , inf, 4.2469554 , 0.031448 , 3.0030508 , 3.0030508 , nan, 0.8357626 , 1.1881576, 0. , 97.01966 , True, False, False, 0, 75),
(8.5569656e+01, 77.73784 , 1.7164714 , 0.8486433 , 0.01645792, 0.8292824 , 0.18023917, 0., 0.7874025 , -20.687923 , -0.44377577, 167.00848 , False, False, False, 0, 76),
(5.4209152e+01, 5.1981964, 1.5380859 , 0.7758279 , 0.02188682, 0.07029097, 0.7726371 , 0., 0.7630211 , -20.687923 , 2.4140847 , 72.801636 , False, False, False, 0, 77),
(3.1544994e+01, 81.19771 , 2.3755572 , 1.5895164 , 0.03547433, 1.5707955 , 0.24323636, 0., 0.7402148 , 20.687923 , 3.086029 , -54.73938 , False, False, False, 0, 78),
(2.8043964e+01, 27.903587 , 0.9620869 , 2.9222386 , 0.06139311, 1.3675642 , 2.5824885 , 0., 0.7175801 , 20.687923 , 1.7296357 , -11.101816 , False, False, False, 0, 79),
(5.3695869e+01, 20.900303 , 0.89531547, 3.1900222 , 0.08206481, 1.138018 , 2.980127 , 0., 0.7099935 , -20.687923 , 1.7082636 , 105.972755 , False, False, False, 0, 80),
(2.1303396e+01, 7.045297 , 1.5209695 , 1.1506892 , 0.01822974, 0.14113663, 1.1420009 , 0., 0.6362717 , -8.735073 , 3.630529 , 61.97232 , False, False, False, 0, 81),
(2.2577121e+02, 16.264256 , 0.52734375, 0.7950364 , 0.00604217, 0.22266413, 0.7632192 , 0., 0.5920701 , 20.687923 , -0.31553838, 77.49458 , False, False, False, 0, 82),
(2.3838000e+02, 25.28892 , 4.3945312 , 2.1737616 , 0.02521173, 0.928594 , 1.9654394 , 0., 0.55762625, -20.687923 , 1.2710983 , 195.86356 , False, False, False, 0, 83),
(1.9646273e+01, 52.15438 , 1.3609446 , 1.1587447 , 0.03108481, 0.91502213, 0.71093154, 0., 0.54824257, 20.687923 , 0.68700194, 63.072216 , False, False, False, 0, 84),
(6.7998909e+01, 9.151368 , 1.0666951 , 2.901432 , 0.09314732, 0.46145323, 2.8645015 , 0., 0.51545155, 20.687923 , 2.101906 , 2.5063143, False, False, False, 0, 85),
(2.9092903e+01, 59.499714 , 1.2459735 , 3.1610792 , 0.06767233, 2.72367 , 1.6043825 , 0., 0.49212956, -20.687923 , -1.0482252 , 196.5546 , False, False, False, 0, 86),
(1.0338564e+02, 12.883666 , 0.9717839 , 3.0264704 , 0.03383616, 0.6748188 , 2.9502785 , 0., 0.47389352, 20.687923 , -3.2003663 , 65.787766 , False, False, False, 0, 87),
(4.5017719e+00, 45. , inf, 4.335973 , 0.02927218, 3.0659957 , 3.0659957 , nan, 0.38814318, -86.200615 , 0. , 472.2446 , True, False, False, 0, 88),
(2.6328967e+02, 34.084995 , 1.137628 , 2.4134412 , 0.01562527, 1.3525459 , 1.9988292 , 0., 0.2919792 , -11.55774 , 3.0097477 , 64.11128 , False, False, False, 0, 89),
(2.3208665e+02, 4.690122 , 1.3183594 , 3.011616 , 0.00604217, 0.24624985, 3.0015316 , 0., 0.27773833, 20.687923 , 5.688889 , -10.258131 , False, False, False, 0, 90),
(3.1262417e+03, 8.499607 , 0.6152344 , 1.3968658 , 0.00604217, 0.20646043, 1.3815238 , 0., 0.20308328, 4.1506886, 5.688889 , -5.159805 , False, False, False, 0, 91),
(2.2474005e+02, 34.87818 , 1.0107087 , 2.7905974 , 0.04833738, 1.5957571 , 2.2893214 , 0., 0.13765144, -20.687923 , 3.087781 , 67.05354 , False, False, False, 0, 92),
(2.0152274e+02, 61.849926 , 1.2384909 , 0.46364498, 0.00483374, 0.4088027 , 0.21873966, 0., 0.08867049, -20.687923 , 1.1070709 , 88.58654 , False, False, False, 0, 93),
(6.4846901e+01, 32.690914 , 0.9825746 , 3.3269775 , 0.01610683, 1.7969234 , 2.7999723 , 0., 0.08096695, 20.687923 , -1.3126519 , 70.30778 , False, False, False, 0, 94)],
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
((95,), (95,), (95,), (95,))
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,
((79,), (79,), (79,))
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,
((16,), (16,), (16,))
Read the matched solutions
matched_peaks = analysis.get_matched_peaks()
matched_peaks['entry_0000']['0']['matched_rings_0000']
array([(b'In2O3_14387.cif', 0, 0, 0, 0.99880445, array([13, 17, 26, 27, 35, 37, 43, 49, 51, 60, 64, 75, 88], dtype=int32))],
dtype={'names': ['CIF', 'h', 'k', 'l', 'probability', 'peak_list'], 'formats': ['S64', '<i4', '<i4', '<i4', '<f4', 'O'], 'offsets': [0, 64, 68, 72, 76, 80], 'itemsize': 96})
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