Skip to content

CGMI code for type=PE tried to round probs_LL and hits a Nonetype

Steps to reproduce

$ gracedb --service https://gracedb-test.ligo.org/api get file G1406822 amplfi.posterior_samples.hdf5 amplfi.posterior_samples.hdf5
$ python
Python 3.12.10 | packaged by conda-forge | (main, Apr 10 2025, 22:21:13) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from ligo_cgmi import chirp_probabilities
>>> import h5py
>>> samples = h5py.File('amplfi.posterior_samples.hdf5')['posterior_samples'][:]
>>> chirp_probabilities.cgmi(None, None, samples, None, cgmi_type='PE', MDC=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/deep/git.ligo.org/forks/cgmi/ligo_cgmi/chirp_probabilities.py", line 357, in cgmi
    probs_LL = np.round(probs_LL, decimals=3)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/deep/miniconda3/envs/cgmi/lib/python3.12/site-packages/numpy/core/fromnumeric.py", line 3360, in round
    return _wrapfunc(a, 'round', decimals=decimals, out=out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/deep/miniconda3/envs/cgmi/lib/python3.12/site-packages/numpy/core/fromnumeric.py", line 56, in _wrapfunc
    return _wrapit(obj, method, *args, **kwds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/deep/miniconda3/envs/cgmi/lib/python3.12/site-packages/numpy/core/fromnumeric.py", line 45, in _wrapit
    result = getattr(asarray(obj), method)(*args, **kwds)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'

Note that the probs_PE is correctly computed @andrew.toivonen

>>> chirp_probabilities.cgmi(None, None, samples, None, cgmi_type='PE', MDC=False)
> /home/deep/git.ligo.org/forks/cgmi/ligo_cgmi/chirp_probabilities.py(357)cgmi()
-> probs_LL = np.round(probs_LL, decimals=3)
(Pdb) probs_PE
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.,
       0.])
(Pdb) probs_LL