spedas / pyspedas

Python-based Space Physics Environment Data Analysis Software
https://pyspedas.readthedocs.io/
MIT License
154 stars 60 forks source link

Convert SECS/EICS plugin to use Cartopy instead of basemap #461

Open jameswilburlewis opened 1 year ago

jameswilburlewis commented 1 year ago

This will help avoid future version conflicts, since basemap requires an older version of matplotlib. There is now a basemap_to_cartopy branch where this development will happen.

jameswilburlewis commented 1 year ago

Well, I've already run into an issue: the cartopy installation isn't a simple "pip install". There are prerequisites that need to be installed first, including (on Windows) Visual C++ version 14.0 or later, in order to compile the package from source.

I may give the conversion a try anyway, while keeping basemap as an option, but this is something many of our end users won't want to bother with.

The good news is that the basemap package may not be as dead as the matplotlib documentation implies! See this discussion thread on the basemap issue tracker:

https://github.com/matplotlib/basemap/issues/568

I will ask over there if there are plans to update the matplotlib version requirement to allow more recent releases.

ericthewizard commented 1 year ago

Well, I've already run into an issue: the cartopy installation isn't a simple "pip install". There are prerequisites that need to be installed first, including (on Windows) Visual C++ version 14.0 or later, in order to compile the package from source.

I think basemap has a similar problem on macOS - this is why we never added it to the requirements, and users are expected to install basemap prior to using the SECS/EICS tools

jameswilburlewis commented 1 year ago

Got a response from Victor....he's willing to take a look at updating the matplotlib requirement:

https://github.com/matplotlib/basemap/issues/573

molinav commented 1 year ago

Hi @jameswilburlewis and @supervised!

Yes, so basemap is not as dead as the documentation implies. At least I am willing to look to the packaging and bugfixes that users (and myself) observe in basemap at runtime, the interface would try to remain stable (or at least backward-compatible).

I took over basemap maintenance a couple of years ago, with the main focus of solving its packaging issue (being able to do pip install basemap and work out of the box, I had the same problem as you with cartopy). This is for now solved for Windows and GNU/Linux. Unfortunately I do not have the experience on MacOS to also solve the packaging there, but in the following months I might acquire a MacOS device to play around and learn. Conda packages are also available in conda-forge for Windows and GNU/Linux, in the past I tried to set the pipelines also for MacOS but I was not successful to make it work (yet).

The issue with the basemap documentation: I removed the deprecation notice on the GitHub repo, but it was so long since the last time that the docs were generated that a lot of things were not being rendered properly anymore, so I could not build the docs and re-upload them. This issue with the docs is something that I always keep around, but unfortunately I did not find the time yet to fix it, since it implies to check really all the basemap documentation files looking for outdated content and references.