CDAT/cdat

make basemap dependency optional?

Closed this issue · 6 comments

xylar commented

basemap isn't getting developed or maintained very regularly. It's becoming increasingly difficult to maintain compatibility between basemap and other packages as a result (e.g. ncl). Many packages are moving to cartopy instead, though I have also found cartopy development to proceed more slowly than I would like.

Looking through cdat's code base, it looks like the only places basemap is currently used are in examples and tests. Could basemap be made an optional dependency of a future release? This would allow installation of cdat alongside more recent versions of pyproj and proj4 that aren't supported by the most recent release of basemap.

@xylar I think the basemap dependency was only added originally to make local matplotlib users happy. I will remove it from CDAT.

xylar commented

That sounds great!

think the basemap dependency was only added originally to make local matplotlib users happy.

Yep, I know the feeling. That's the difficulty with a metapackage -- include too little and users want more, too much and you potentially cause conflicts.

I agree, basemap should be optional, especially now that is is being phased out in favor of cartopy

What I do for my multi-user CDAT installation anyway is to install CDAT as my base distribution, and then add other packages that our users want when there is no conflict: basemap, cartopy, iris, netcdf4, pyferret... (full list here). This keeps everybody happy and help me keep on promoting the CDAT specific packages

CDAT is the "BIG" distribution, LLNL's plus a bunch of useful libraries. @downiec @muryanto1 @davis278 please take a look at @jypeter list we should make sure it's all included as part of CDAT.
@jypeter if you want "just" LLNL's components do

conda create -n cdat_llnl -c cdat/label/nightly -c conda-forge vcsaddons wk

I would encourage at the minimum to add ipython but it's up to you.

xylar commented

@muryanto1, I had forgotten that this didn't happen as part of the CDAT 8.2 release. Could you make sure that basemap gets dropped as a dependency in the next release? It has a dependency, proj4=5.2.0 that isn't compatible with conda-forge pinnings (proj=6.2.1 currently) and this makes supporting it in a large environment like e3sm-unified pretty much impossible.

basemap was removed from CDAT 8.2.1.