Exemple #1
0
def decay_mode_values(dm_hash, z, n, nuclides_by_protons_neutrons):
    mode = dm_hash['mode']
    mode_qid = nndc_data.nndc_decay_id(mode)
    mode_qid_num = None
    if (mode_qid is not None) and ('|' not in mode_qid):  # unrecognized or multi-step decay mode
        mode_qid_num = int(mode_qid.replace('Q', ''))
    pct = None
    if 'pct' in dm_hash:
        pct = dm_hash['pct']
    pn = nndc_data.protons_neutrons_after_decay(z, n, mode_qid)
    if pn is not None:
        key = '{}_{}'.format(pn[0], pn[1])
        if key in nuclides_by_protons_neutrons:
            decays_to = nuclides_by_protons_neutrons[key]
        else:
            decays_to = None
    else:
        decays_to = None
    return mode, mode_qid, mode_qid_num, pct, decays_to
Exemple #2
0
nuclides = nuclide_provider.get_nuclides()

nuclides_by_protons_neutrons = {}
for nuclide in nuclides:
    nuclides_by_protons_neutrons['{}_{}'.format(nuclide.atomic_number, nuclide.neutron_number)] = nuclide.item_id

# Should filter out where nuclides data already includes this value...

for nuclide in nuclides:
    z = nuclide.atomic_number
    n = nuclide.neutron_number
    decay_modes, source_url = nndc_data.nndc_decay_modes(z, n)
    for decay_mode in decay_modes:
        mode = decay_mode['mode']
        mode_qid = nndc_data.nndc_decay_id(mode)
        pct = None
        if 'pct' in decay_mode:
            pct = decay_mode['pct']
        pn = nndc_data.protons_neutrons_after_decay(z, n, mode_qid)
        if pn is not None:
            key = '{}_{}'.format(pn[0], pn[1])
            if key in nuclides_by_protons_neutrons:
                decays_to = nuclides_by_protons_neutrons[key]
            else:
                decays_to = None
        else:
            decays_to = None
        print(u"{0},{1},{2},{3},{4},{5},{6}".format(nuclide.item_id,
            mode, mode_qid, pct, decays_to, nuclide.label, source_url))