timothydmorton / isochrones

Pythonic stellar model grid access; easy MCMC fitting of stellar properties
http://isochrones.readthedocs.org
MIT License
120 stars 61 forks source link

AttributeError: 'Delaunay' object has no attribute '_points' #43

Closed atw5179 closed 6 years ago

atw5179 commented 7 years ago

Getting an error when running nosetests and when trying to execute model.fit().

File "/Users//MultiNest/build/PyMultiNest/isochrones/isochrones/isochrone.py", line 145, in init self.mass = interpnd(self.tri,m_act) File "scipy/interpolate/interpnd.pyx", line 243, in scipy.interpolate.interpnd.LinearNDInterpolator.init (scipy/interpolate/interpnd.c:4934) File "scipy/interpolate/interpnd.pyx", line 71, in scipy.interpolate.interpnd.NDInterpolatorBase.init (scipy/interpolate/interpnd.c:2298) File "scipy/spatial/qhull.pyx", line 1910, in scipy.spatial.qhull.Delaunay.points (scipy/spatial/qhull.c:18057) AttributeError: 'Delaunay' object has no attribute '_points'

Maybe there was an update where this is no longer an attribute? Can't seem to find anything on the internet.

timothydmorton commented 7 years ago

What python/scipy version are you running?

atw5179 commented 7 years ago

Im running python 3.6 and Scipy 0.19. I have also opened up a similar issue on the Scipy Github, but have not gotten any responses yet.

atw5179 commented 7 years ago

This issue seemed to appear out of nowhere because previously I had no trouble producing the isochrones. This only started to happened once I tried using the model.fit() function. Now the isochrones function doesn't work either.

timothydmorton commented 7 years ago

The issue seems to be caused by the fact that the saved, pre-computed dartmouth.tri file was created with older versions of python/scipy, such that the unpickling under the newer environment doesn't seem to be working totally right. Pull the latest isochrones from the master branch and then execute the following from a ipython/python shell:

from isochrones.dartmouth.tri import write_tri
write_tri()

This will take a few minutes to run but will calculate a new triangulation that will work with your current setup. An inconvenience is that isochrones will now think that you have the wrong triangulation file because its md5 hash doesn't match what's on zenodo. But I've changed that to a warning rather than an ImportError so things should work for you. Do let me know. I'll leave this issue open until I come up with a more permanent fix for this.

atw5179 commented 7 years ago

This worked. I ran into a few issues with the paths and some old Python 2 code, but everyone is working fine now. Thank you! I had been trying to fix this for days.

jvines commented 6 years ago

Hi! I found that with scipy 0.19.1 this error rises again (I confirmed that by downgrading scipy to, say, 0.17, the isochrones package works again).

timothydmorton commented 6 years ago

reopening so I remember to fix this more permanently...

timothydmorton commented 6 years ago

OK folks, I believe I've fixed this issue more permanently on current master, with a new zenodo dataset, and now requiring scipy >= 0.19. I'm also now testing on both py2 and py3. Please let me know if this works for y'all; I'm hoping to release 1.1 by the end of the week.

timothydmorton commented 6 years ago

Just released 1.1; so this should now be fixed. Please re-open if you have further issues.