rosalindfranklininstitute / parakeet

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

Simulation padding of 0 removes image (due to array slicing) #45

Closed JatGreer closed 1 year ago

JatGreer commented 1 year ago

Use of simulation padding value of 0 leads to numpy array slicing removing entire simulated image and subsequent error in src/parakeet/simulate/_exit_wave.py on line 305.

Tested on commit b434cdb884782a1fc69cf7b13909c06d641becbe, but code remains in main.

Returned error using Simulation class padding=0 is:

Traceback (most recent call last):
  File "/mnt/parakeet_storage4/roodmus/roodmus.py", line 35, in <module>
    main()
  File "/mnt/parakeet_storage4/roodmus/roodmus.py", line 32, in main
    args.func(args)
  File "/mnt/parakeet_storage4/roodmus/roodmus/run_parakeet/run_parakeet.py", line 889, in main
    parakeet.simulate.exit_wave(config_filename, config.sample_filename, exit_wave_file=config.exit_wave_filename)
  File "/home/dvi41342/miniconda3/envs/roodmus_python3_10_4/lib/python3.10/functools.py", line 889, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "/mnt/parakeet_storage4/parakeet/src/parakeet/simulate/_exit_wave.py", line 426, in exit_wave
    _exit_wave_Config(config, sample, exit_wave_file)
  File "/mnt/parakeet_storage4/parakeet/src/parakeet/simulate/_exit_wave.py", line 473, in _exit_wave_Config
    simulation.run(writer)
  File "/mnt/parakeet_storage4/parakeet/src/parakeet/simulate/simulation.py", line 280, in run
    _, image, metadata = self.simulate_image(i)
  File "/mnt/parakeet_storage4/parakeet/src/parakeet/simulate/_exit_wave.py", line 308, in __call__
    logger.info("Ideal image min/max: %f/%f" % (np.min(psi_tot), np.max(psi_tot)))
  File "<__array_function__ internals>", line 180, in amin
  File "/home/dvi41342/miniconda3/envs/roodmus_python3_10_4/lib/python3.10/site-packages/numpy/core/fromnumeric.py", line 2918, in amin
    return _wrapreduction(a, np.minimum, 'min', axis, None, out,
  File "/home/dvi41342/miniconda3/envs/roodmus_python3_10_4/lib/python3.10/site-packages/numpy/core/fromnumeric.py", line 86, in _wrapreduction
    return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
ValueError: zero-size array to reduction operation minimum which has no identity
jmp1985 commented 1 year ago

Thanks for finding this bug, I'll look at it now.