NCAS-CMS / cf-python

A CF-compliant Earth Science data analysis library
http://ncas-cms.github.io/cf-python
MIT License
126 stars 19 forks source link

Jasmin #801

Open JonathanGregory opened 3 months ago

JonathanGregory commented 3 months ago

Is there an installation of a consistent set of cf-python and the packages it needs maintained up-to-date on Jasmin, or is your advice to ignore Jasmin's own modules and maintain my own set of software packages? Thanks. Jonathan

sadielbartholomew commented 3 months ago

Hi Jonathan, thanks for the question.

You can use Jaspy on JASMIN though ensure you are using the most up-to-date version, namely jaspy/3.11/r20240508 which has the latest cf-python and all of its dependencies whereas earliesr versions do not. Based on the listing of Jaspy versions here it seems that is now the default, so you can use module load jaspy, but if for some reason it isn't the default as per the table then (this is what I use personally) you can specify it with jaspy/3.11/r20240508.

That said, if you set up your own (mini)conda or (micro)mamba environment on JASMIN from your userspace you can have a lot more control over your environment, so unless you want to be bound be the versions in the Jaspy stack we recommend doing that (David does and has recommend I start using conda on there but I am still using Jaspy mostly because it has, so far, everything I need to use for CF-related work so I've not yet been forced to set up conda, if that's useful to know.).

JonathanGregory commented 3 months ago

Splendid. Thanks, @sadielbartholomew, that works. I still get the warning

/apps/jasmin/jaspy/miniforge_envs/jaspy3.11/mf3-23.11.0-0/envs/jaspy3.11-mf3-23.11.0-0-r20240508/lib/python3.11/sitepackages/numpy/ma/core.py:467:
RuntimeWarning: invalid value encountered in cast
fill_value = np.array(fill_value, copy=False, dtype=ndtype)

This is harmless, but unhelpful! We've discussed it before. Perhaps nothing can be done about it?

Jonathan

sadielbartholomew commented 3 months ago

Yes unfortunately the cast warning is still there and can be quite spammy output-wise in my experience. It is emerging from the cftime library , as I determined many months ago, so until it is fixed in cftime there is not much we can do about it.

I will try to notify the cftime folks about it on their Issue Tracker, since last time I looked they had a PR in which claimed to fix the problem, or at least a very similar one, but even using a locally-installed cftime branch with that fix the warning still appears for us in cfdm and cf-python.