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 14:13:45.950776454 [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 - Saved matched peaks to file: ../../example/BA2PbI4.h5, entry: entry_0000, frame: 0
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.171448 , 2.6974792 , 1.2250805 , 0.01553166, 0.68809235, 1.0135833 , 0., 0.9912811 , 0., 0., 0., False, False, False, 0, 0),
(0., 81.65375 , 4.205597 , 1.0564237 , 0.01282513, 1.045235 , 0.15334521, 0., 0.9896298 , 0., 0., 0., False, False, False, 0, 1),
(0., 12.783966 , 4.8843994 , 1.037271 , 0.01525986, 0.22952276, 1.0115584 , 0., 0.98902833, 0., 0., 0., False, False, False, 0, 2),
(0., 82.04486 , 5.9066772 , 0.53003764, 0.01362371, 0.5249369 , 0.073356 , 0., 0.9857906 , 0., 0., 0., False, False, False, 0, 3),
(0., 12.909973 , 1.4771729 , 3.0320282 , 0.01783156, 0.6774151 , 2.9553857 , 0., 0.9844098 , 0., 0., 0., False, False, False, 0, 4),
(0., 57.62726 , 2.8563538 , 1.8822575 , 0.02116954, 1.5897222 , 1.0078079 , 0., 0.9839288 , 0., 0., 0., False, False, False, 0, 5),
(0., 57.44055 , 2.5813293 , 2.9939675 , 0.0177424 , 2.5234163 , 1.6112766 , 0., 0.9801601 , 0., 0., 0., False, False, False, 0, 6),
(0., 50.12738 , 5.1810303 , 0.4032349 , 0.01057395, 0.30947134, 0.258507 , 0., 0.9793793 , 0., 0., 0., False, False, False, 0, 7),
(0., 21.354431 , 3.2866516 , 0.9723861 , 0.0115692 , 0.35408098, 0.9056276 , 0., 0.9774721 , 0., 0., 0., False, False, False, 0, 8),
(0., 42.17621 , 2.2374268 , 1.3596761 , 0.01610374, 0.91290414, 1.0076334 , 0., 0.9745994 , 0., 0., 0., False, False, False, 0, 9),
(0., 8.318665 , 2.5052795 , 1.6148748 , 0.02565825, 0.23363772, 1.5978843 , 0., 0.96337795, 0., 0., 0., False, False, False, 0, 10),
(0., 33.038452 , 2.2759094 , 0.84332967, 0.01441908, 0.45978478, 0.70696735, 0., 0.96279705, 0., 0., 0., False, False, False, 0, 11),
(0., 40.874695 , 2.3518982 , 2.0784445 , 0.01495552, 1.3601484 , 1.5716003 , 0., 0.96272093, 0., 0., 0., False, False, False, 0, 12),
(0., 47.9339 , 2.0877686 , 3.0702748 , 0.01826429, 2.2792873 , 2.0570457 , 0., 0.9623097 , 0., 0., 0., False, False, False, 0, 13),
(0., 68.74518 , 2.0190735 , 1.9527422 , 0.02102661, 1.8199115 , 0.70790124, 0., 0.96031564, 0., 0., 0., False, False, False, 0, 14),
(0., 57.950012 , 2.5149841 , 2.665458 , 0.02246284, 2.2592034 , 1.4144491 , 0., 0.95298886, 0., 0., 0., False, False, False, 0, 15),
(0., 16.13379 , 2.412384 , 1.654479 , 0.01901519, 0.45974863, 1.5893182 , 0., 0.9498944 , 0., 0., 0., False, False, False, 0, 16),
(0., 36.103058 , 2.7891235 , 1.7754729 , 0.0171957 , 1.0461787 , 1.4345083 , 0., 0.94938177, 0., 0., 0., False, False, False, 0, 17),
(0., 37.928802 , 1.8182983 , 3.727265 , 0.01608753, 2.291082 , 2.939974 , 0., 0.94930655, 0., 0., 0., False, False, False, 0, 18),
(0., 29.90979 , 2.6955261 , 1.8334434 , 0.02397871, 0.9142207 , 1.58925 , 0., 0.94843596, 0., 0., 0., False, False, False, 0, 19),
(0., 72.185425 , 2.6192932 , 1.8714373 , 0.01597869, 1.7817049 , 0.572543 , 0., 0.941897 , 0., 0., 0., False, False, False, 0, 20),
(0., 67.78119 , 1.9241028 , 2.7168794 , 0.0197103 , 2.5151415 , 1.0273738 , 0., 0.94146526, 0., 0., 0., False, False, False, 0, 21),
(0., 43.79306 , 4.1901855 , 3.979288 , 0.02817464, 2.7538893 , 2.8724256 , 0., 0.93744105, 0., 0., 0., False, False, False, 0, 22),
(0., 12.864685 , 3.2085876 , 2.0929842 , 0.01534319, 0.46600142, 2.0404475 , 0., 0.9357588 , 0., 0., 0., False, False, False, 0, 23),
(0., 44.914368 , 2.2730713 , 2.262016 , 0.02494335, 1.5970945 , 1.6018755 , 0., 0.93349123, 0., 0., 0., False, False, False, 0, 24),
(0., 21.174683 , 2.7128906 , 3.1598024 , 0.02774334, 1.1413604 , 2.9464636 , 0., 0.9329821 , 0., 0., 0., False, False, False, 0, 25),
(0., 35.446777 , 2.1183777 , 1.9614444 , 0.01817882, 1.1375327 , 1.5978997 , 0., 0.91486764, 0., 0., 0., False, False, False, 0, 26),
(0., 54.922607 , 2.1852722 , 2.7608232 , 0.02312827, 2.259393 , 1.5865966 , 0., 0.9059349 , 0., 0., 0., False, False, False, 0, 27),
(0., 33.90204 , 2.4013977 , 2.4662218 , 0.02793288, 1.3755959 , 2.0469456 , 0., 0.90522075, 0., 0., 0., False, False, False, 0, 28),
(0., 57.580383 , 2.3846436 , 2.9377327 , 0.01982999, 2.4798706 , 1.5749651 , 0., 0.90193075, 0., 0., 0., False, False, False, 0, 29),
(0., 87.20584 , 3.302002 , 0.6360953 , 0.02438289, 0.635339 , 0.03100835, 0., 0.90111184, 0., 0., 0., False, False, False, 0, 30),
(0., 45.000183 , 24.74646 , 4.1476803 , 0.03214312, 2.9328623 , 2.9328434 , 0., 0.8966078 , 0., 0., 0., False, False, False, 0, 31),
(0., 38.411377 , 1.8060608 , 3.6540976 , 0.02496171, 2.2703032 , 2.8632417 , 0., 0.8923775 , 0., 0., 0., False, False, False, 0, 32),
(0., 5.803894 , 2.4507446 , 1.8665774 , 0.01646745, 0.18875562, 1.8570089 , 0., 0.88993037, 0., 0., 0., False, False, False, 0, 33),
(0., 33.495117 , 5.0690613 , 0.40326896, 0.00984985, 0.2225504 , 0.3362992 , 0., 0.8744773 , 0., 0., 0., False, False, False, 0, 34),
(0., 86.97058 , 3.4639587 , 0.9080842 , 0.02646124, 0.9068152 , 0.04799107, 0., 0.87356627, 0., 0., 0., False, False, False, 0, 35),
(0., 45.67758 , 73.48395 , 2.9102168 , 0.03557324, 2.0820255 , 2.0333548 , 0., 0.866713 , 0., 0., 0., False, False, False, 0, 36),
(0., 35.487 , 1.6156311 , 3.892517 , 0.02159905, 2.259677 , 3.1694713 , 0., 0.8609175 , 0., 0., 0., False, False, False, 0, 37),
(0., 40.349 , 1.8264465 , 3.8650007 , 0.02478433, 2.5023627 , 2.9455748 , 0., 0.85362816, 0., 0., 0., False, False, False, 0, 38),
(0., 54.81244 , 2.2765808 , 2.796327 , 0.02085614, 2.2853544 , 1.6113973 , 0., 0.8434416 , 0., 0., 0., False, False, False, 0, 39),
(0., 45.053955 , 20.947388 , 4.2465553 , 0.03240538, 3.0055945 , 2.999939 , 0., 0.84236705, 0., 0., 0., False, False, False, 0, 40),
(0., 26.791168 , 3.9506836 , 2.488823 , 0.0516212 , 1.1218119 , 2.221661 , 0., 0.8326993 , 0., 0., 0., False, False, False, 0, 41),
(0., 63.724854 , 3.2227783 , 2.299914 , 0.02270103, 2.0622833 , 1.0181311 , 0., 0.83057386, 0., 0., 0., False, False, False, 0, 42),
(0., 42.397644 , 2.9617615 , 3.0239015 , 0.03415442, 2.0389323 , 2.2331 , 0., 0.8297701 , 0., 0., 0., False, False, False, 0, 43),
(0., 48.060303 , 2.3345032 , 3.3448734 , 0.02815509, 2.4880798 , 2.2355397 , 0., 0.82240087, 0., 0., 0., False, False, False, 0, 44),
(0., 9.141266 , 1.4559937 , 2.939127 , 0.03117251, 0.46693668, 2.901799 , 0., 0.8198212 , 0., 0., 0., False, False, False, 0, 45),
(0., 29.126282 , 1.5054626 , 3.6559763 , 0.02073836, 1.7794958 , 3.1936746 , 0., 0.8128095 , 0., 0., 0., False, False, False, 0, 46),
(0., 86.52161 , 6.683075 , 0.45552665, 0.03779629, 0.45468745, 0.02763778, 0., 0.81060225, 0., 0., 0., False, False, False, 0, 47),
(0., 85.67334 , 2.211609 , 1.3539143 , 0.01972377, 1.3500558 , 0.10214303, 0., 0.8050062 , 0., 0., 0., False, False, False, 0, 48),
(0., 32.782288 , 3.245514 , 1.6877799 , 0.02397811, 0.91384566, 1.4189739 , 0., 0.79796696, 0., 0., 0., False, False, False, 0, 49),
(0., 35.29312 , 1.5021362 , 3.9640856 , 0.03042436, 2.2902887 , 3.2355142 , 0., 0.7901563 , 0., 0., 0., False, False, False, 0, 50),
(0., 52.060425 , 2.348053 , 2.2997737 , 0.02423286, 1.8137387 , 1.41397 , 0., 0.7900666 , 0., 0., 0., False, False, False, 0, 51),
(0., 35.381897 , 2.4788818 , 2.7571192 , 0.02766204, 1.5964371 , 2.247909 , 0., 0.7886442 , 0., 0., 0., False, False, False, 0, 52),
(0., 30.847717 , 2.5890808 , 0.93937826, 0.01256138, 0.48167375, 0.8064874 , 0., 0.7748283 , 0., 0., 0., False, False, False, 0, 53),
(0., 43.71747 , 81.14963 , 2.1498227 , 0.03529096, 1.4857485 , 1.5537982 , 0., 0.7550363 , 0., 0., 0., False, False, False, 0, 54),
(0., 34.99823 , 2.338379 , 2.802271 , 0.02137733, 1.6072456 , 2.2955356 , 0., 0.7513128 , 0., 0., 0., False, False, False, 0, 55),
(0., 4.725586 , 1.302063 , 3.011495 , 0.01539969, 0.24809769, 3.0012581 , 0., 0.74540824, 0., 0., 0., False, False, False, 0, 56),
(0., 81.538086 , 4.727997 , 1.5858727 , 0.01703823, 1.5686088 , 0.2333642 , 0., 0.71544534, 0., 0., 0., False, False, False, 0, 57),
(0., 9.255798 , 1.7140808 , 2.8919952 , 0.03438902, 0.4651556 , 2.8543417 , 0., 0.7140627 , 0., 0., 0., False, False, False, 0, 58),
(0., 37.241882 , 3.0202332 , 0.9422014 , 0.01199025, 0.5702026 , 0.750075 , 0., 0.70488715, 0., 0., 0., False, False, False, 0, 59),
(0., 62.223816 , 3.0819702 , 0.47855172, 0.0179286 , 0.42341048, 0.22301415, 0., 0.70331407, 0., 0., 0., False, False, False, 0, 60),
(0., 16.695679 , 1.4584656 , 2.4044583 , 0.01648712, 0.69077265, 2.3030963 , 0., 0.70130175, 0., 0., 0., False, False, False, 0, 61),
(0., 8.299347 , 1.3310547 , 3.2352548 , 0.0237 , 0.46699256, 3.2013733 , 0., 0.6995647 , 0., 0., 0., False, False, False, 0, 62),
(0., 25.442627 , 2.3600159 , 3.1816463 , 0.05393338, 1.3668579 , 2.8730774 , 0., 0.69846797, 0., 0., 0., False, False, False, 0, 63),
(0., 28.109253 , 2.9639893 , 2.917482 , 0.04484487, 1.3745842 , 2.5733674 , 0., 0.6903535 , 0., 0., 0., False, False, False, 0, 64),
(0., 48.81723 , 2.9918213 , 3.007 , 0.01642609, 2.263107 , 1.9799986 , 0., 0.68940943, 0., 0., 0., False, False, False, 0, 65),
(0., 0.27630615, 0.65301514, 1.4084771 , 0.02346742, 0.00679229, 1.4084607 , 0., 0.6879393 , 0., 0., 0., False, False, False, 0, 66),
(0., 5.2831726 , 2.06781 , 0.7768346 , 0.01100719, 0.07152949, 0.7735345 , 0., 0.6792962 , 0., 0., 0., False, False, False, 0, 67),
(0., 24.465088 , 2.1325378 , 1.1119494 , 0.01344299, 0.46050128, 1.0121117 , 0., 0.67014974, 0., 0., 0., False, False, False, 0, 68),
(0., 87.01883 , 3.0401 , 0.9513371 , 0.02964956, 0.95004964, 0.04947691, 0., 0.67010254, 0., 0., 0., False, False, False, 0, 69),
(0., 28.39093 , 1.8789368 , 3.3573418 , 0.02398467, 1.5963655 , 2.9535336 , 0., 0.6597311 , 0., 0., 0., False, False, False, 0, 70),
(0., 77.8826 , 3.9154053 , 0.8481512 , 0.0113045 , 0.82925403, 0.1780401 , 0., 0.65141755, 0., 0., 0., False, False, False, 0, 71),
(0., 57.621643 , 2.0181885 , 2.7122002 , 0.01722908, 2.2905352 , 1.4524045 , 0., 0.6459885 , 0., 0., 0., False, False, False, 0, 72),
(0., 47.94763 , 2.2309265 , 3.3911898 , 0.03537703, 2.51807 , 2.2714515 , 0., 0.6454538 , 0., 0., 0., False, False, False, 0, 73),
(0., 34.970306 , 69.21661 , 0.11214779, 0.03974026, 0.06427772, 0.09189942, 0., 0.6335823 , 0., 0., 0., False, False, False, 0, 74),
(0., 51.907684 , 2.8202515 , 2.6160898 , 0.03188372, 2.0589092 , 1.6139452 , 0., 0.62438625, 0., 0., 0., False, False, False, 0, 75),
(0., 31.846191 , 1.3531799 , 3.3970008 , 0.01965117, 1.7923961 , 2.885642 , 0., 0.61104715, 0., 0., 0., False, False, False, 0, 76),
(0., 23.160522 , 2.5245361 , 1.7484989 , 0.02255595, 0.6876995 , 1.6075814 , 0., 0.61102194, 0., 0., 0., False, False, False, 0, 77),
(0., 51.908264 , 2.7372437 , 2.5854926 , 0.02025485, 2.0348449 , 1.5950483 , 0., 0.60893196, 0., 0., 0., False, False, False, 0, 78),
(0., 45.116394 , 32.409576 , 3.9856753 , 0.03524327, 2.8240175 , 2.812567 , 0., 0.60270035, 0., 0., 0., False, False, False, 0, 79),
(0., 42.07245 , 2.688507 , 3.0812182 , 0.02725124, 2.0646312 , 2.2871826 , 0., 0.59342337, 0., 0., 0., False, False, False, 0, 80),
(0., 45.79126 , 80.318756 , 1.5220826 , 0.03192914, 1.0910351 , 1.0613093 , 0., 0.5715577 , 0., 0., 0., False, False, False, 0, 81),
(0., 45.018585 , 27.943542 , 4.077286 , 0.03477144, 2.8840115 , 2.8821409 , 0., 0.55601764, 0., 0., 0., False, False, False, 0, 82),
(0., 18.576996 , 2.4091187 , 1.6001856 , 0.01469481, 0.5097851 , 1.5168102 , 0., 0.54333353, 0., 0., 0., False, False, False, 0, 83),
(0., 62.53055 , 3.0706177 , 1.5274248 , 0.04283988, 1.3552182 , 0.7045639 , 0., 0.49153608, 0., 0., 0., False, False, False, 0, 84),
(0., 73.36209 , 2.923523 , 3.5903327 , 0.02830791, 3.4400175 , 1.0279925 , 0., 0.48613954, 0., 0., 0., False, False, False, 0, 85),
(0., 35.316406 , 2.0657043 , 1.9799602 , 0.0190264 , 1.1445976 , 1.6155922 , 0., 0.4789145 , 0., 0., 0., False, False, False, 0, 86),
(0., 9.552246 , 3.993744 , 1.0100054 , 0.01327062, 0.16760725, 0.99600136, 0., 0.45742923, 0., 0., 0., False, False, False, 0, 87),
(0., 43.562744 , 79.65289 , 2.4808536 , 0.03316927, 1.7096766 , 1.7976763 , 0., 0.44021896, 0., 0., 0., False, False, False, 0, 88),
(0., 12.844543 , 1.126709 , 3.0710144 , 0.01763797, 0.6827066 , 2.9941678 , 0., 0.43373612, 0., 0., 0., False, False, False, 0, 89),
(0., 17.463135 , 1.6477356 , 3.0393114 , 0.02636647, 0.91207325, 2.8992302 , 0., 0.4320345 , 0., 0., 0., False, False, False, 0, 90),
(0., 13.35199 , 1.6686096 , 2.9729161 , 0.0139482 , 0.6865435 , 2.8925574 , 0., 0.41070527, 0., 0., 0., False, False, False, 0, 91),
(0., 59.464417 , 4.091858 , 3.1504757 , 0.06076288, 2.7135482 , 1.6006727 , 0., 0.40511602, 0., 0., 0., False, False, False, 0, 92)],
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
((93,), (93,))
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.9912811 , 20.687922 , 1.4337980e+00, 4.60591621e+01, False, False, False, 0, 0),
(6.69102249e+01, 81.26751 , 1.644584 , 1.0568025 , 0.01787735, 1.0445521 , 0.16044523, 0., 0.9896298 , 20.687923 , 1.2103679e+00, 3.17871046e+00, False, False, False, 0, 1),
(5.50634814e+03, 12.828789 , 1.3183594 , 1.0381416 , 0.02287221, 0.23050736, 1.0122274 , 0., 0.98902833, -20.687923 , 2.7248912e+00, -7.41774559e+00, False, False, False, 0, 2),
(1.40175256e+03, 82.16691 , 4.3438926 , 0.5069832 , 0.06764904, 0.5022527 , 0.0690956 , 0., 0.9857906 , -20.687923 , -5.6888881e+00, -4.30963860e+01, False, False, False, 0, 3),
(7.41405182e+01, 12.457066 , 1.0219976 , 3.019638 , 0.01376031, 0.65136003, 2.9485495 , 0., 0.9844098 , 14.761976 , 5.6886539e+00, -2.23597565e+01, False, False, False, 0, 4),
(9.19439087e+02, 57.515854 , 1.1273897 , 1.8967284 , 0.06171931, 1.5999664 , 1.0186687 , 0., 0.9839288 , 20.687923 , 3.3654934e-01, 1.61465988e+02, False, False, False, 0, 5),
(4.01647186e+01, 57.26502 , 1.1498395 , 2.992234 , 0.03915845, 2.5170097 , 1.6180625 , 0., 0.9801601 , 20.687923 , 6.0174906e-01, 1.54732323e+01, False, False, False, 0, 6),
(3.01221039e+02, 49.946533 , 1.994314 , 0.4028835 , 0.00993297, 0.3083849 , 0.25925642, 0., 0.9793793 , -20.687923 , 5.7953745e-01, 1.40510956e+02, False, False, False, 0, 7),
(3.08755703e+01, 21.21772 , 1.7046444 , 0.9724283 , 0.01747235, 0.3519343 , 0.9065093 , 0., 0.9774721 , 20.687923 , 6.5661252e-01, 5.95483170e+01, False, False, False, 0, 8),
(4.60198669e+01, 41.976326 , 1.350234 , 1.3640066 , 0.03507554, 0.91227967, 1.0140315 , 0., 0.9745994 , 20.687923 , 1.0787868e+00, 8.22443314e+01, False, False, False, 0, 9),
(3.14047607e+02, 8.15533 , 0.91788906, 1.621747 , 0.04913274, 0.23005652, 1.6053464 , 0., 0.96337795, 20.687923 , 5.6888890e+00, 5.32874413e+01, False, False, False, 0, 10),
(8.25381546e+01, 32.934734 , 0.83927155, 0.84329003, 0.02041008, 0.45848274, 0.7077652 , 0., 0.96279705, 10.873963 , -2.3690181e-02, 9.33398361e+01, False, False, False, 0, 11),
(1.72293976e+02, 40.64779 , 0.976993 , 2.0855842 , 0.03190865, 1.3585647 , 1.5823917 , 0., 0.96272093, 20.687923 , 2.1121089e+00, 7.00541153e+01, False, False, False, 0, 12),
(2.97578552e+02, 48.203663 , 1.1622953 , 3.0584028 , 0.05070977, 2.280096 , 2.038379 , 0., 0.9623097 , 20.687923 , -2.6876488e+00, 1.84566483e+02, False, False, False, 0, 13),
(5.28409805e+01, 68.60839 , 0.9338014 , 1.952362 , 0.05561299, 1.8178623 , 0.7121052 , 0., 0.96031564, -20.687923 , -6.8371898e-01, 3.08155914e+02, False, False, False, 0, 14),
(6.24116745e+01, 57.965702 , 1.7334373 , 2.656833 , 0.03532472, 2.2522788 , 1.4092554 , 0., 0.95298886, -20.687918 , -6.0385996e-01, 2.07397339e+02, False, False, False, 0, 15),
(3.84154297e+02, 15.957364 , 1.0410441 , 1.6568686 , 0.04335055, 0.45550954, 1.5930237 , 0., 0.9498944 , 20.687923 , 4.0332332e+00, 6.89027481e+01, False, False, False, 0, 16),
(4.24667587e+01, 34.667194 , 0.8244444 , 1.743771 , 0.06432317, 0.991872 , 1.434199 , 0., 0.94938177, -3.9795392, 1.7559067e+00, 1.62317184e+02, False, False, False, 0, 17),
(3.29630814e+01, 37.963173 , 0.8203865 , 3.7016447 , 0.07498751, 2.2770846 , 2.9184 , 0., 0.94930655, -3.1316428, -2.1606932e+00, 1.91681564e+02, False, False, False, 0, 18),
(2.02713470e+02, 29.680447 , 1.1724042 , 1.8325213 , 0.06127416, 0.9073953 , 1.5920956 , 0., 0.94843596, 20.687914 , 2.5689895e+00, 9.03493195e+01, False, False, False, 0, 19),
(3.12049179e+01, 72.15323 , 2.1790621 , 1.8679771 , 0.04728883, 1.7780892 , 0.5724835 , 0., 0.941897 , -20.687923 , -6.8371898e-01, 3.08155914e+02, False, False, False, 0, 20),
(7.65721054e+01, 67.84075 , 1.2404639 , 2.7027533 , 0.06743833, 2.5031254 , 1.0194304 , 0., 0.94146526, 20.687923 , -2.6245008e+00, 2.34498596e+02, False, False, False, 0, 21),
(9.49772739e+00, 43.217705 , 1.471175 , 3.9841852 , 0.04924319, 2.7282598 , 2.9035032 , 0., 0.93744105, 6.451239 , -7.0533063e-03, 7.40626221e+01, False, False, False, 0, 22),
(1.90135217e+03, 12.696938 , 0.9472864 , 2.122011 , 0.04619964, 0.4664054 , 2.0701199 , 0., 0.9357588 , -20.687923 , 5.6888890e+00, 1.49426361e+02, False, False, False, 0, 23),
(1.45099960e+02, 44.667473 , 1.014764 , 2.261834 , 0.0658918 , 1.590049 , 1.6086133 , 0., 0.93349123, -20.687923 , 2.6825583e+00, 1.07733963e+02, False, False, False, 0, 24),
(5.72056580e+01, 20.913542 , 0.9666453 , 3.1869187 , 0.07337978, 1.1375986 , 2.976965 , 0., 0.9329821 , -20.687923 , 1.3698159e+00, 1.38847153e+02, False, False, False, 0, 25),
(1.78316025e+02, 35.258648 , 1.124004 , 1.9496186 , 0.01208434, 1.1254532 , 1.5919696 , 0., 0.91486764, -20.687923 , 2.1168013e+00, 1.66102142e+02, False, False, False, 0, 26),
(3.16985397e+01, 54.914097 , 1.0238467 , 2.7510355 , 0.02350423, 2.2511482 , 1.581306 , 0., 0.9059349 , -20.687918 , -6.0385996e-01, 2.07397339e+02, False, False, False, 0, 27),
(2.64025299e+02, 33.940216 , 1.0586458 , 2.459219 , 0.03287344, 1.3730497 , 2.0402186 , 0., 0.90522075, -3.1869254, 1.6871605e+00, -4.05516815e+01, False, False, False, 0, 28),
(3.79008980e+01, 57.386703 , 1.241557 , 2.9368 , 0.03481518, 2.473747 , 1.5828362 , 0., 0.90193075, 20.687923 , 6.0174906e-01, 1.54732323e+01, False, False, False, 0, 29),
(4.83341357e+03, 88.39652 , 2.554954 , 0.6381317 , 0.02575507, 0.63788176, 0.01785642, 0., 0.90111184, -20.687923 , 2.9196601e+00, -4.23019905e+01, False, True, False, 0, 30),
(1.79912834e+01, 45. , inf, 4.150879 , 0.03480145, 2.9351146 , 2.9351146 , nan, 0.8966078 , -289.06287 , 0.0000000e+00, 1.31543579e+03, True, False, False, 0, 31),
(4.32504845e+01, 38.508057 , 1.3616523 , 3.6449137 , 0.051073 , 2.2694132 , 2.85222 , 0., 0.8923775 , -3.1316428, -2.1606932e+00, 1.91681564e+02, False, False, False, 0, 32),
(5.54018288e+01, 6.0019345, 2.2056243 , 1.8662937 , 0.04698255, 0.19514349, 1.8560634 , 0., 0.88993037, 20.687923 , 5.6888890e+00, 2.27133694e+01, False, False, False, 0, 33),
(2.24039490e+02, 33.21029 , 2.1846676 , 0.40240923, 0.00957443, 0.22040495, 0.3366821 , 0., 0.8744773 , -20.687923 , 8.6718953e-01, 1.33905731e+02, False, False, False, 0, 34),
(3.69970142e+03, 87.70571 , 2.1221242 , 0.9129267 , 0.03197505, 0.91219485, 0.03654649, 0., 0.87356627, 20.687923 , -1.5429114e+00, 2.41399704e+02, False, True, False, 0, 35),
(6.93963089e+01, 45. , inf, 2.8519053 , 0.20340443, 2.0166016 , 2.0166016 , nan, 0.866713 , 296.72025 , 0.0000000e+00, -8.05387878e+02, True, False, False, 0, 36),
(3.50695114e+01, 35.61308 , 0.48339844, 3.8988357 , 0.01329278, 2.2703254 , 3.169628 , 0., 0.8609175 , -5.1769786, 5.5516559e-01, 9.91175308e+01, False, False, False, 0, 37),
(1.74044189e+01, 40.152847 , 1.0883554 , 3.861554 , 0.06715244, 2.4900417 , 2.9514897 , 0., 0.85362816, 6.451239 , -7.0533063e-03, 7.40626221e+01, False, False, False, 0, 38),
(3.61290054e+01, 54.677845 , 1.1336656 , 2.7943718 , 0.04174433, 2.2799673 , 1.6156309 , 0., 0.8434416 , -20.687918 , -6.0385996e-01, 2.07397339e+02, False, False, False, 0, 39),
(5.67293358e+00, 45. , inf, 4.248177 , 0.02720634, 3.003915 , 3.003915 , nan, 0.84236705, -11.855811 , 0.0000000e+00, 1.53136826e+02, True, False, False, 0, 40),
(8.22086945e+01, 26.884472 , 4.080901 , 2.4920902 , 0.08118315, 1.1269058 , 2.2227454 , 0., 0.8326993 , -20.687923 , -1.1135764e+00, -3.34594421e+01, False, False, False, 0, 41),
(1.24153308e+03, 63.59531 , 1.1757218 , 2.2816455 , 0.05847302, 2.0436137 , 1.0146672 , 0., 0.83057386, -20.687923 , 3.3537462e+00, 2.18503704e+01, False, False, False, 0, 42),
(4.11387909e+02, 42.367043 , 0.83496094, 3.0270178 , 0.05793886, 2.039839 , 2.2364912 , 0., 0.8297701 , 17.015106 , -3.8922608e+00, 2.47590683e+02, False, False, False, 0, 43),
(5.07324677e+01, 48.001537 , 0.91044784, 3.3314593 , 0.03502346, 2.4758165 , 2.229115 , 0., 0.82240087, 15.612324 , 1.2471061e+00, -6.06259346e+00, False, False, False, 0, 44),
(5.93972664e+01, 8.847905 , 0.916023 , 2.9377484 , 0.01785132, 0.4518611 , 2.9027896 , 0., 0.8198212 , 18.900667 , 1.6261551e+00, 8.23626041e+00, False, False, False, 0, 45),
(6.11706161e+01, 29.447912 , 1.0081397 , 3.6832159 , 0.09818403, 1.8107872 , 3.2073555 , 0., 0.8128095 , 10.843906 , -4.5352135e+00, 1.82409454e+02, False, False, False, 0, 46),
(3.69402781e+05, 88.84794 , 1.7578125 , 0.4585098 , 0.02175182, 0.45841712, 0.00921873, 0., 0.81060225, -20.687923 , -5.6888881e+00, -4.30963860e+01, False, True, False, 0, 47),
(1.97732239e+02, 86.13561 , 0.6591797 , 1.34448 , 0.01208434, 1.3414232 , 0.09061142, 0., 0.8050062 , 20.687923 , 2.6675544e+00, -4.65678101e+01, False, True, False, 0, 48),
(6.74964355e+02, 32.421062 , 1.1290452 , 1.6983582 , 0.04141782, 0.91055286, 1.4336365 , 0., 0.79796696, -3.9795392, 1.7559067e+00, 1.62317184e+02, False, False, False, 0, 49),
(3.20471420e+01, 35.23345 , 0.94691753, 3.9294183 , 0.11380246, 2.2669182 , 3.2095811 , 0., 0.7901563 , -5.1769786, 5.5516559e-01, 9.91175308e+01, False, False, False, 0, 50),
(2.39940826e+02, 51.758755 , 1.2159735 , 2.313822 , 0.06936914, 1.8173025 , 1.4321955 , 0., 0.7900666 , 10.423622 , 3.8146904e+00, -4.66029167e+01, False, False, False, 0, 51),
(2.34942139e+02, 35.430492 , 0.9006136 , 2.748505 , 0.05974751, 1.5933495 , 2.2395353 , 0., 0.7886442 , -20.687923 , 2.2099741e+00, 1.01718994e+02, False, False, False, 0, 52),
(2.65760975e+01, 30.627184 , 1.3759292 , 0.9389515 , 0.01604194, 0.47834858, 0.80796814, 0., 0.7748283 , 20.687923 , 1.2656844e+00, 4.00840683e+01, False, False, False, 0, 53),
(3.19344849e+02, 45. , inf, 2.148372 , 0.07134496, 1.5191283 , 1.5191283 , nan, 0.7550363 , -144.27946 , 0.0000000e+00, 3.96774811e+02, True, False, False, 0, 54),
(2.42384430e+02, 34.884827 , 0.95991427, 2.7831552 , 0.05966851, 1.5917662 , 2.2830315 , 0., 0.7513128 , -20.687923 , 2.2099741e+00, 1.01718994e+02, False, False, False, 0, 55),
(1.25220535e+02, 4.669911 , 1.40625 , 3.0099032 , 0.03683502, 0.2450516 , 2.999911 , 0., 0.74540824, -20.687923 , 1.0216495e+00, 9.60943756e+01, False, False, False, 0, 56),
(3.06624985e+01, 81.24772 , 2.1834943 , 1.5884042 , 0.03052844, 1.569908 , 0.24169596, 0., 0.71544534, 20.687923 , 2.4331079e+00, 6.19451761e-01, False, False, False, 0, 57),
(7.70489502e+01, 9.076146 , 0.91787136, 2.9406097 , 0.15467961, 0.46387225, 2.9037921 , 0., 0.7140627 , 18.900667 , 1.6261551e+00, 8.23626041e+00, False, False, False, 0, 58),
(3.09930935e+01, 37.23048 , 1.0906057 , 0.9412159 , 0.01365203, 0.56945705, 0.7494038 , 0., 0.70488715, 20.687923 , 1.7601877e-01, 7.75722427e+01, False, False, False, 0, 59),
(9.84220581e+01, 61.862213 , 1.3327621 , 0.46348584, 0.01208434, 0.40870923, 0.21857694, 0., 0.70331407, 20.687923 , 1.5475496e+00, 4.24368896e+01, False, False, False, 0, 60),
(1.96536179e+02, 16.752668 , 0.8541882 , 2.3733652 , 0.06887503, 0.68410087, 2.2726347 , 0., 0.70130175, -16.09271 , -5.6888890e+00, 2.59156158e+02, False, False, False, 0, 61),
(4.71915703e+01, 8.162552 , 0.8678155 , 3.2315645 , 0.05501021, 0.45882398, 3.1988263 , 0., 0.6995647 , -20.687923 , 2.6923759e+00, 1.20533066e+02, False, False, False, 0, 62),
(4.78893585e+01, 25.301603 , 1.0778608 , 3.184107 , 0.08729874, 1.3608338 , 2.8786573 , 0., 0.69846797, -20.687923 , 1.3698159e+00, 1.38847153e+02, False, False, False, 0, 63),
(3.26492958e+01, 27.918734 , 1.3662316 , 2.9184592 , 0.06167175, 1.3664773 , 2.578787 , 0., 0.6903535 , 20.687923 , 1.7554030e+00, -9.76049805e+00, False, False, False, 0, 64),
(2.57548096e+02, 48.344353 , 1.3546786 , 3.006279 , 0.02325834, 2.24615 , 1.99813 , 0., 0.68940943, 20.687923 , -2.6876488e+00, 1.84566483e+02, False, False, False, 0, 65),
(9.68758621e+01, 0. , 0.640099 , 1.3986467 , 0.01329278, 0. , 1.3986467 , 0., 0.6879393 , 20.687923 , -5.6888890e+00, 3.32129097e+01, False, False, True, 0, 66),
(4.42539368e+01, 5.2788534, 1.6259766 , 0.7757191 , 0.01633505, 0.07136855, 0.77242905, 0., 0.6792962 , -20.687923 , 2.6443703e+00, 8.01467056e+01, False, False, False, 0, 67),
(3.36918449e+01, 24.28629 , 0.99512047, 1.1129323 , 0.02786886, 0.45774493, 1.0144398 , 0., 0.67014974, 20.687923 , 1.2421334e+00, 5.05232620e+01, False, False, False, 0, 68),
(1.40018750e+03, 87.58873 , 2.599023 , 0.9594473 , 0.0229436 , 0.95859784, 0.04036605, 0., 0.67010254, 20.687923 , -1.5429114e+00, 2.41399704e+02, False, True, False, 0, 69),
(4.65079231e+01, 28.053543 , 1.3160827 , 3.3690913 , 0.0966034 , 1.5844717 , 2.9732518 , 0., 0.6597311 , -15.298695 , 5.6888890e+00, -1.90102196e+01, False, False, False, 0, 70),
(8.57084656e+01, 77.73121 , 1.7133727 , 0.8486481 , 0.01646336, 0.8292662 , 0.18033613, 0., 0.65141755, -20.687923 , -1.9833940e-01, 1.47875595e+02, False, False, False, 0, 71),
(8.88762817e+01, 57.58929 , 1.0225751 , 2.6991746 , 0.0510955 , 2.2787182 , 1.4467161 , 0., 0.6459885 , -20.687918 , -6.0385996e-01, 2.07397339e+02, False, False, False, 0, 72),
(7.86736069e+01, 47.70824 , 1.1248382 , 3.3810766 , 0.06533799, 2.5010767 , 2.2751472 , 0., 0.6454538 , 15.612324 , 1.2471061e+00, -6.06259346e+00, False, False, False, 0, 73),
(1.09483337e+02, 45. , inf, 0.09394952, 0.07417142, 0.06643234, 0.06643234, nan, 0.6335823 , 787.86005 , 0.0000000e+00, 1.14157234e+02, True, False, True, 0, 74),
(4.65650749e+01, 51.69919 , 1.1980153 , 2.6289124 , 0.02349346, 2.0630853 , 1.6293739 , 0., 0.62438625, -20.687923 , 6.3935012e-01, 1.51015732e+02, False, False, False, 0, 75),
(1.74109482e+02, 32.682068 , 1.4241005 , 3.406948 , 0.05107901, 1.8396734 , 2.8675594 , 0., 0.61104715, -15.298695 , 5.6888890e+00, -1.90102196e+01, False, False, False, 0, 76),
(3.08428955e+02, 22.999908 , 0.96839356, 1.7504874 , 0.03734022, 0.68396735, 1.6113333 , 0., 0.61102194, 20.687923 , 3.0367181e+00, 9.49238815e+01, False, False, False, 0, 77),
(5.47984238e+01, 51.728687 , 1.125262 , 2.5857766 , 0.03806821, 2.0300584 , 1.6015939 , 0., 0.60893196, -20.687923 , 6.3935012e-01, 1.51015732e+02, False, False, False, 0, 78),
(2.05709743e+00, 45. , inf, 3.9677753 , 0.01744201, 2.805641 , 2.805641 , nan, 0.60270035, 70.90739 , 0.0000000e+00, -1.81278732e+02, True, False, False, 0, 79),
(3.60214752e+02, 41.784836 , 0.8736388 , 3.0655894 , 0.06352015, 2.04271 , 2.285864 , 0., 0.59342337, 17.015106 , -3.8922608e+00, 2.47590683e+02, False, False, False, 0, 80),
(3.41548347e+01, 45. , inf, 1.5220038 , 0.04088914, 1.0762192 , 1.0762192 , nan, 0.5715577 , 155.70891 , 0.0000000e+00, -5.22643013e+01, True, False, False, 0, 81),
(1.97814903e+01, 45. , inf, 4.071592 , 0.03566857, 2.8790505 , 2.8790505 , nan, 0.55601764, 279.7698 , 0.0000000e+00, -1.02355347e+03, True, False, False, 0, 82),
(3.12851776e+02, 18.272972 , 0.703125 , 1.6036696 , 0.00966748, 0.50282186, 1.5228021 , 0., 0.54333353, 20.687923 , 4.0332332e+00, 6.89027481e+01, False, False, False, 0, 83),
(2.61736755e+02, 62.49982 , 1.0191317 , 1.5396371 , 0.03787753, 1.3656726 , 0.7109296 , 0., 0.49153608, 20.687923 , 3.9854288e-01, 1.44575760e+02, False, False, False, 0, 84),
(3.73056602e+01, 73.236946 , 1.2043823 , 3.5479636 , 0.08167879, 3.3971953 , 1.0232837 , 0., 0.48613954, -20.687923 , -8.4328750e-04, 1.76754181e+02, False, False, False, 0, 85),
(1.48637512e+02, 35.21117 , 0.95412326, 1.9780567 , 0.03415535, 1.1405308 , 1.6161366 , 0., 0.4789145 , -20.687923 , 2.1168013e+00, 1.66102142e+02, False, False, False, 0, 86),
(1.63244644e+02, 8.932062 , 3.2591424 , 1.0110992 , 0.07478013, 0.15698652, 0.99883777, 0., 0.45742923, -20.687923 , 2.7248912e+00, -7.41774559e+00, False, False, False, 0, 87),
(2.13114136e+03, 45. , inf, 2.4761896 , 0.44406092, 1.7509304 , 1.7509304 , nan, 0.44021896, -60.36329 , 0.0000000e+00, -1.78324316e+03, True, False, False, 0, 88),
(7.24073792e+01, 12.947678 , 0.5587862 , 3.0421674 , 0.05787775, 0.6816316 , 2.9648206 , 0., 0.43373612, 14.761976 , 5.6886539e+00, -2.23597565e+01, False, False, False, 0, 89),
(7.33634872e+01, 17.280466 , 0.4946225 , 3.0361524 , 0.03517779, 0.90188706, 2.8991067 , 0., 0.4320345 , 20.687923 , 9.2087597e-01, 2.41524067e+01, False, False, False, 0, 90),
(5.54591866e+01, 13.263227 , 0.52734375, 2.9695964 , 0.00966748, 0.6813 , 2.8903863 , 0., 0.41070527, 14.761976 , 5.6886539e+00, -2.23597565e+01, False, False, False, 0, 91),
(3.54563713e+01, 59.386246 , 2.8503053 , 3.155842 , 0.07770091, 2.71598 , 1.6071063 , 0., 0.40511602, -20.687923 , 1.4998670e-01, 1.68079254e+02, False, False, False, 0, 92)],
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
((93,), (93,), (93,), (93,))
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,
((84,), (84,), (84,))
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']
array([(b'In2O3_14387.cif', 0, 0, 0, 0.9640447, array([31, 36, 40, 54, 79, 81, 82, 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([31, 36, 40, 54, 79, 81, 82, 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.9640446901321411
Solution: matched_segments_0000 CIF: 1_BA2PbI4_n1.cif Probability: 0.9810878038406372
--------------------------------------------------------
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