xoceanmodel/xroms

pygridgen dependency

Opened this issue · 2 comments

Hi,

First, I am not negative to pygridgen by itself. I have seen Rob giving very impressive demonstrations of the software. But I do not think it is a good idea to make xroms depend on it. I will illustrate this be giving my user experience today.

I try to run the examples, in particular the new interpolation example.

After fixing the bugs described in my previous issue. I started again.
A download of 2GB for running an example, is on the heavy side, but OK.

With the data in place, I started again. Crash, pygridgen is missing.

No problem I thought, conda is your friend, and conda install pygridgen worked nicely.

Restart kernel and try again. Now it crashed due to a bug in pygridgen:
While executing the line

  ds, grid = xroms.roms_dataset(ds, add_verts=True, proj=proj)

I get a NameError from pygridgen/grid.py saying "empty" is not defined
The offending code looks like

  1017     x = empty((Mp + 1, Lp + 1), dtype='d')

Of course, conda may have given me a bad version

pygridgen                 0.2.1            py38hc1659b7_3    conda-forge

Then I go one step further, try github and find https://github.com/rsignell-usgs/pygridgen
As this is maintained by a master, I was quite happy.
However, the last commit was in 2012, it is written in python 2 and depends on basemap
and some obscure features of matplotlib no longer existing.

I am sure you at Texas A&M have an updated version of pygridgen working nicely for you.
But I was hoping that xroms should stay away from hard-to-come-by and hard-to-install specific
C-based dependencies.

The vertices defined by Rob is a good idea that may be useful in xroms, but they do not
require the full pygridgen package.

General comment

It boils down to what you (we?) want xroms to be. A package supporting research at TA&M
(of course an important use of your own developer resources)
or a package of general use by the intersection of the ROMS and python communities. It is however
important to tell potential users the main objectives of the package.

BTW. I feel the same tension with my particle tracking code. It is tempting to tailor it for IMR research
and our own computing environment, but I try to avoid it to make the code generally useful.

Sorry for the long rant,
Bjørn Å.

@bjornaa, I'm sure I'm a bit late to the party here, but you could try https://github.com/pygridgen/hologridgen

I've recently put out a new version to PyPI (v0.2.4, still coming through on conda-forge). Please check to see if this issue is still present in the new version so that over time we can work to address these. Thanks!