musevlt / mpdaf

MUSE Python Data Analysis Framework
BSD 3-Clause "New" or "Revised" License
15 stars 4 forks source link

ValueError during continuum fitting #27

Open prajwel opened 2 years ago

prajwel commented 2 years ago

Hi,

I am new to MUSE data and I am trying to use MPDAF to generate a Balmer decrement map by following some of the steps mentioned here: https://mpdaf.readthedocs.io/en/stable/cube.html. An error came when I ran the following code to estimate a continuum fit. Could you please help me to fix this error?

import numpy as np
import matplotlib.pyplot as plt
import astropy.units as u

from mpdaf.obj import Cube, WCS, WaveCoord, Spectrum, iter_spe

working_dir = ''

filename1 = 'ADP.2016-08-03T11:07:20.076.fits'

obj1 = Cube(working_dir + filename1)

cont1 = obj1.loop_spe_multiprocessing(f=Spectrum.poly_spec, deg=5)
cont1.write(working_dir + 'cont_' + filename1)
[INFO] loop_spe_multiprocessing (poly_spec): 96380 tasks
multiprocessing.pool.RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/home/idies/miniconda3/lib/python3.8/site-packages/mpdaf/obj/cube.py", line 2178, in _multiproc_worker
    return pos, getattr(obj, f)(**kwargs)
  File "/home/idies/miniconda3/lib/python3.8/site-packages/mpdaf/obj/spectrum.py", line 1094, in poly_spec
    z = self.poly_fit(deg, weight, maxiter, nsig, verbose)
  File "/home/idies/miniconda3/lib/python3.8/site-packages/mpdaf/obj/spectrum.py", line 1018, in poly_fit
    w0 = np.min(w)
  File "<__array_function__ internals>", line 5, in amin
  File "/home/idies/miniconda3/lib/python3.8/site-packages/numpy/core/fromnumeric.py", line 2830, in amin
    return _wrapreduction(a, np.minimum, 'min', axis, None, out,
  File "/home/idies/miniconda3/lib/python3.8/site-packages/numpy/core/fromnumeric.py", line 87, in _wrapreduction
    return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
ValueError: zero-size array to reduction operation minimum which has no identity

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/idies/miniconda3/lib/python3.8/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/home/idies/miniconda3/lib/python3.8/site-packages/mpdaf/obj/cube.py", line 2180, in _multiproc_worker
    raise inst.__class__(
ValueError: zero-size array to reduction operation minimum which has no identity
 The error occurred while processing Spectrum (0, 0)
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "continnum_fit.py", line 17, in <module>
    cont1 = obj1.loop_spe_multiprocessing(f=Spectrum.poly_spec, deg=5)
  File "/home/idies/miniconda3/lib/python3.8/site-packages/mpdaf/obj/cube.py", line 1310, in loop_spe_multiprocessing
    return _loop_multiprocessing(self, f, 'spe', cpu=cpu,
  File "/home/idies/miniconda3/lib/python3.8/site-packages/mpdaf/obj/cube.py", line 2241, in _loop_multiprocessing
    k, out = results.next(timeout=reporter.countdown())
  File "/home/idies/miniconda3/lib/python3.8/multiprocessing/pool.py", line 868, in next
    raise value
ValueError: zero-size array to reduction operation minimum which has no identity
 The error occurred while processing Spectrum (0, 0)