

Pythonのpymatgenにはcifのデータを読み込むモジュールがあります。  
このpymatgenを使ってcifの項目の一つ `_atom_site_label`
を読み込ませようとしました。ここで、`_atom_site_label`
は結晶内の各原子を結合の状況によって区別できるようにラベリングしたものです。このため、結晶内の単位格子の全ての原子の数よりは通常少ないです。しかし、結晶内の全ての原子は必ず、`_atom_site_label`
のどれかにはあてはまります。

今、問題なのは、`_atom_site_label` の各要素を単位格子内の原子と対応する形で取得できないということです。

以下がBiNiO3.cifの内容になります。

[code]

    loop_
    _atom_type_symbol
    _atom_type_oxidation_number
    Bi3+ 3
    Ni3+ 3
    O2- -2
    loop_
    _atom_site_label
    _atom_site_type_symbol
    _atom_site_symmetry_multiplicity
    _atom_site_Wyckoff_symbol
    _atom_site_fract_x
    _atom_site_fract_y
    _atom_site_fract_z
    _atom_site_U_iso_or_equiv
    _atom_site_occupancy
    Bi1 Bi3+ 2 i 0.0063(6) 0.0486(5) 0.2315(4) 0.0051(8) 1.
    Bi2 Bi3+ 2 i 0.5105(6) 0.4426(6) 0.7242(4) 0.0051(8) 1.
    Ni1 Ni3+ 1 d 0.5 0 0 0.0096(6) 1.
    Ni2 Ni3+ 1 c 0 0.5 0 0.0096(6) 1.
    Ni3 Ni3+ 1 f 0.5 0 0.5 0.0096(6) 1.
    Ni4 Ni3+ 1 g 0 0.5 0.5 0.0096(6) 1.
    O1 O2- 2 i -0.1410(9) 0.4708(8) 0.2521(6) 0.0066(6) 1.
    O2 O2- 2 i 0.3949(9) 0.0780(7) 0.7549(6) 0.0066(6) 1.
    O3 O2- 2 i 0.8332(8) 0.1748(7) -0.0327(6) 0.0066(6) 1.
    O4 O2- 2 i 0.3166(8) 0.3359(7) 0.0836(6) 0.0066(6) 1.
    O5 O2- 2 i 0.2129(8) 0.7709(7) 0.4114(6) 0.0066(6) 1.
    O6 O2- 2 i 0.6737(8) 0.6868(7) 0.5465(6) 0.0066(6)
    
[/code]


CC BY-SA 4.0
2023-04-01T05:08:35.643
94393
2023-04-06T08:33:17.180
2023-04-06T08:33:17.180
3060
57777
question
python
pymatgenを使ってICSDの発行したcifから_atom_site_labelの部分を読み出そうとしても全ての原子に対応する形で取得できない