rosalindfranklininstitute / parakeet

Phantom generator
GNU General Public License v3.0
18 stars 5 forks source link

Method fails when DQE is set to true #40

Closed MohamadHarastani closed 1 year ago

MohamadHarastani commented 1 year ago

Hi James

When I set dqe: true in the config file, parakeet.simulate.image fails and give the following message:

Simulating image 1
Applying DQE
/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/dqe.py:131: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead
  return scipy.interp(F, self.spatial_freq, dqe_table).reshape(shape)
Traceback (most recent call last):
  File "/shared/miniconda3/envs/parakeet/bin/parakeet.simulate.image", line 8, in <module>
    sys.exit(image())
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/command_line/simulate/_image.py", line 104, in image
    image_impl(get_parser().parse_args(args=args))
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/command_line/simulate/_image.py", line 93, in image_impl
    parakeet.simulate.image(args.config, args.optics, args.image)
  File "/shared/miniconda3/envs/parakeet/lib/python3.9/functools.py", line 888, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/simulate/_image.py", line 186, in image
    _image_Config(config, optics_file, image_file)
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/simulate/_image.py", line 231, in _image_Config
    simulation.run(writer)
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/simulate/simulation.py", line 280, in run
    _, image, metadata = self.simulate_image(i)
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/simulate/_image.py", line 95, in __call__
    dqe = parakeet.dqe.DQETable().dqe_fs(
  File "/media/SharedDisk/Parakeet_Project/parakeet/src/parakeet/dqe.py", line 131, in dqe_fs
    return scipy.interp(F, self.spatial_freq, dqe_table).reshape(shape)
  File "/shared/miniconda3/envs/parakeet/lib/python3.9/site-packages/scipy/_lib/deprecation.py", line 20, in call
    return fun(*args, **kwargs)
  File "<__array_function__ internals>", line 180, in interp
  File "/shared/miniconda3/envs/parakeet/lib/python3.9/site-packages/numpy/lib/function_base.py", line 1594, in interp
    return interp_func(x, xp, fp, left, right)
ValueError: object too deep for desired array

I recently installed parakeet using conda and I expect this to be some pip version issue (maybe scipy?) You might want to freeze it to an older version.

Cheers Mohamad

jmp1985 commented 1 year ago

I have now fixed this issue in commit d7fc76b0e6661fc774ad0993f5a8fbdf2ce3bb31