not able to import LineRatioFit

12 views
Skip to first unread message

Maitraiyee Tiwari

unread,
Jan 9, 2024, 8:37:50 AM1/9/24
to PDR Toolbox
Hi Marc,

I installed the latest version of PDR Toolbox. The first two example notebooks on measurements and model sets work fine but I have trouble running notebook on finding n and G0 from single pixel. 

I am not able to import LineRatioFit in the first cell itself. The error is pasted below. 

--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Input In [1], in <cell line: 4>() 2 from pdrtpy.modelset import ModelSet 3 import pdrtpy.pdrutils as utils ----> 4 from pdrtpy.tool.lineratiofit import LineRatioFit 5 from pdrtpy.plot.lineratioplot import LineRatioPlot 6 from astropy.nddata import StdDevUncertainty File /opt/homebrew/lib/python3.9/site-packages/pdrtpy/tool/lineratiofit.py:14, in <module> 12 from astropy.nddata import CCDData 13 import warnings ---> 14 from lmfit import Parameters, Minimizer#, fit_report 15 from scipy.interpolate import interpn 16 from pdrtpy.pbar import get_progress_bar File /opt/homebrew/lib/python3.9/site-packages/lmfit/__init__.py:38, in <module> 1 """ 2 LMFIT: Non-Linear Least-Squares Minimization and Curve-Fitting for Python. 3 (...) 34 35 """ 36 from asteval import Interpreter ---> 38 from .confidence import conf_interval, conf_interval2d 39 from .minimizer import Minimizer, MinimizerException, minimize 40 from .parameter import Parameter, Parameters File /opt/homebrew/lib/python3.9/site-packages/lmfit/confidence.py:10, in <module> 7 from scipy.special import erf 8 from scipy.stats import f ---> 10 from .minimizer import MinimizerException 12 CONF_ERR_GEN = 'Cannot determine Confidence Intervals' 13 CONF_ERR_STDERR = f'{CONF_ERR_GEN} without sensible uncertainty estimates' File /opt/homebrew/lib/python3.9/site-packages/lmfit/minimizer.py:41, in <module> 38 import uncertainties 40 from ._ampgo import ampgo ---> 41 from .parameter import Parameter, Parameters 42 from .printfuncs import fitreport_html_table 44 # check for EMCEE File /opt/homebrew/lib/python3.9/site-packages/lmfit/parameter.py:12, in <module> 10 from .jsonutils import decode4js, encode4js 11 from .lineshapes import tiny ---> 12 from .printfuncs import params_html_table 14 SCIPY_FUNCTIONS = {'gamfcn': scipy.special.gamma} 15 for fnc_name in ('erf', 'erfc', 'wofz'): File /opt/homebrew/lib/python3.9/site-packages/lmfit/printfuncs.py:9, in <module> 6 import numpy as np 8 try: ----> 9 import numdifftools # noqa: F401 10 HAS_NUMDIFFTOOLS = True 11 except ImportError: File /opt/homebrew/lib/python3.9/site-packages/numdifftools/__init__.py:4, in <module> 1 from __future__ import absolute_import 3 from .info import __doc__ ----> 4 from .core import * 5 from . import extrapolation, limits, step_generators 8 __version__ = "0.9.40" File /opt/homebrew/lib/python3.9/site-packages/numdifftools/core.py:19, in <module> 17 from numdifftools.step_generators import MaxStepGenerator, MinStepGenerator 18 from numdifftools.limits import _Limit ---> 19 from numdifftools.finite_difference import (LogRule, 20 LogHessdiagRule, 21 LogHessianRule, 22 LogJacobianRule, 23 ) 26 __all__ = ('dea3', 'Derivative', 'Jacobian', 'Gradient', 'Hessian', 'Hessdiag', 27 'MinStepGenerator', 'MaxStepGenerator', 'Richardson', 28 'directionaldiff') 29 FD_RULES = {} File /opt/homebrew/lib/python3.9/site-packages/numdifftools/finite_difference.py:10, in <module> 8 from scipy import special 9 from numdifftools.extrapolation import convolve ---> 10 from numdifftools.multicomplex import Bicomplex 12 _SQRT_J = (1j + 1.0) / np.sqrt(2.0) # = 1j**0.5 14 # step_ratio, parity, nterms File /opt/homebrew/lib/python3.9/site-packages/numdifftools/multicomplex.py:35, in <module> 32 from __future__ import division 33 import numpy as np ---> 35 _TINY = np.finfo(float).machar.tiny 38 def c_atan2(x, y): 39 a, b = np.real(x), np.imag(x)  
AttributeError: 'finfo' object has no attribute 'machar' 

What could be going wrong here? 

Regards,
Maitraiyee 
 

Marc W. Pound

unread,
Jan 9, 2024, 10:21:35 AM1/9/24
to Maitraiyee Tiwari, PDR Toolbox
Hi Maitraiyee

This seems to be an error originating from an inconsistency between numpy and numdifftools versions.    What versions of these packages are you using?   'machar' was deprecated in the numpy v1.22 , so likely you need to upgrade numdifftools.

Marc
  

--
You received this message because you are subscribed to the Google Groups "PDR Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pdrt+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pdrt/078764b5-4473-4986-a0f9-06309ce51f60n%40googlegroups.com.


--
Dr. Marc Pound
Research Scientist
Astronomy Department
University of Maryland, College Park

Maitraiyee Tiwari

unread,
Jan 9, 2024, 11:29:39 AM1/9/24
to Marc W. Pound, PDR Toolbox
Hi Marc,

Thanks a lot! Upgrading numdifftools worked. I was using the 1.26.1 version of numpy and 0.9.40 version of numdifftools. I have now upgraded both to the latest versions: 1.26.3 (numpy) and  0.9.41 (numdifftools). 

Regards,
Maitraiyee

Marc W. Pound

unread,
Jan 9, 2024, 12:05:53 PM1/9/24
to Maitraiyee Tiwari, PDR Toolbox
Hi Maitraiyee,

Glad to hear it worked.   On my list of things to do is to clean up package dependencies for pdrtpy...

Marc

Reply all
Reply to author
Forward
0 new messages