JMNocquet / pyeq36

Static and full time-dependent inversion of slip at faults from geodetic data
4 stars 0 forks source link

pyeq_plot_kinematics_shp.py bug on some versions #2

Open JMNocquet opened 3 years ago

JMNocquet commented 3 years ago

pyeq_plot_kinematics_shp.py produces the following bug:

Traceback (most recent call last): File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 418, in _process_worker r = call_item() File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 272, in call return self.fn(*self.args, *self.kwargs) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 600, in call return self.func(args, **kwargs) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 256, in call for func, args, kwargs in self.items] File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 256, in for func, args, kwargs in self.items] File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/pyeq/lib/plot/plot_model_shp.py", line 102, in plot_model_shp cbar = plt.colorbar( cs ) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2081, in colorbar raise RuntimeError('No mappable was found to use for colorbar ' RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf). """

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

Traceback (most recent call last): File "/usr/local/geodesy/anaconda3/anaconda3/bin/pyeq_plot_kinematics_shp.py", line 104, in pyeq.lib.plot.make_plot( model ) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/pyeq/lib/plot/make_plot.py", line 50, in make_plot pyeq.lib.plot.plot_model( model , interpolation = interpolation ) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/pyeq/lib/plot/plot_model.py", line 97, in plot_model for i in tqdm(np.arange(cstf.shape[0]))) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 1016, in call self.retrieve() File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 908, in retrieve self._output.extend(job.get(timeout=self.timeout)) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 554, in wrap_future_result return future.result(timeout=timeout) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 432, in result return self.get_result() File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 384, in get_result raise self._exception RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf).

JMNocquet commented 3 years ago

The problem arises from geopandas. In plot_model_shp.py line 102 For 0.7.0 release= geopandas.plot_polygon_collection returns a mappable while it does not for 0.8.0. Temporary fix by requiring geopandas==0.7.0 in setup.py

JMNocquet commented 3 years ago

An additional error is raised: Traceback (most recent call last): File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 418, in _process_worker r = call_item() File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 272, in call return self.fn(*self.args, *self.kwargs) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 600, in call return self.func(args, **kwargs) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 256, in call for func, args, kwargs in self.items] File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 256, in for func, args, kwargs in self.items] File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/pyeq/lib/plot/plot_model_shp.py", line 82, in plot_model_shp norm = mpl.colors.BoundaryNorm(bound_colors, cmap.N) File "/usr/local/geodesy/anaconda3/anaconda3/lib/python3.7/site-packages/matplotlib/colors.py", line 1486, in init raise ValueError(f"There are {self._N} color bins including " ValueError: There are 999 color bins including extensions, but ncolors = 256; ncolors must equal or exceed the number of bins

JMNocquet commented 3 years ago

This problem comes from a different behaviour matplotlib from >=3.3 (tested on 3.3.2) Temporary solved by forcing matplotlib==3.2.1 in setup.py