In [6]:
import os
import json

from pyne import nucname
from pyne import origen22

In [7]:
fname = os.path.expanduser('~/origen22/libs/pwru50.lib')
tape9 = origen22.parse_tape9(fname)

In [9]:
# 
# Note that the fission product yields sum to a little more than 2.
# We *are* splitting atoms
#
fpyields = {}
for key, val in tape9[221].items():
    if not key.endswith('_fiss_yield'):
        continue
    fromnuc, *_ = key.partition('_')
    fromnuc = nucname.name(fromnuc)
    yields = {}
    for k, v in val.items():
        if v == 0.0:
            continue
        tonuc = nucname.name(nucname.zzaaam_to_id(int(k)))
        yields[tonuc] = v / 100  # origen yields are in percent
    fpyields[fromnuc] = yields

In [10]:
sorted([(k, sum(v.values())) for k, v in fpyields.items()])


Out[10]:
[('Cf249', 2.0001363056536765),
 ('Cm245', 2.0001363056536765),
 ('Pu239', 2.0004615846830629),
 ('Pu241', 2.0000758393700173),
 ('Th232', 2.0001856738858765),
 ('U233', 2.0005001730550473),
 ('U235', 2.0000932755268201),
 ('U238', 2.0005318962861969)]

In [11]:
with open('fission_products.json', 'w') as f:
    json.dump(fpyields, f, sort_keys=True)