We have a script that uses geocat.comp.rcm2points() to extract linearly interpolated values from a non-uniform grid. This command works just fine for my colleague, who has an older version of geocat-comp:
conda list | grep geocat
geocat-comp 0.1a py37h03ebfcd_5 ncar
geocat-comp 2021.05.1 py_0 ncar
geocat-f2py 2021.05.1 py39h3d0eb6f_0 ncar
geocat.comp.rcm2points() throws an error when the exact same script is run from the new environment. Here are the shapes of our variables and the generated error:
>>> gridlat_0.shape
(1597, 2345)
>>> gridlon_0.shape
(1597, 2345)
>>> max_temp.shape
(1597, 2345)
>>> lat.shape
(1,)
>>> lon.shape
(1,)
>>> geocat.comp.rcm2points(gridlat_0, gridlon_0, max_temp, lat, lon)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/geocat/f2py/rcm2points_wrapper.py", line 184, in rcm2points
fo = xr.DataArray(fo.compute(), attrs=fi.attrs)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/base.py", line 285, in compute
(result,) = compute(self, traverse=False, **kwargs)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/base.py", line 567, in compute
results = schedule(dsk, keys, **kwargs)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/threaded.py", line 79, in get
results = get_async(
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/local.py", line 514, in get_async
raise_exception(exc, tb)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/local.py", line 325, in reraise
raise exc
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/local.py", line 223, in execute_task
result = _execute_task(task, data)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/core.py", line 121, in _execute_task
return func(*(_execute_task(a, cache) for a in args))
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/optimization.py", line 963, in __call__
return core.get(self.dsk, self.outkey, dict(zip(self.inkeys, args)))
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/core.py", line 151, in get
result = _execute_task(task, cache)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/dask/core.py", line 121, in _execute_task
return func(*(_execute_task(a, cache) for a in args))
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/geocat/f2py/rcm2points_wrapper.py", line 17, in _rcm2points
fi = np.transpose(fi, axes=(2, 1, 0))
File "<__array_function__ internals>", line 5, in transpose
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 658, in transpose
return _wrapfunc(a, 'transpose', axes)
File "/gpfs/dell3/mdl/mdlverif/noscrub/usr/Kevin.M.Mcgrath/anaconda3/envs/geocatWithPygrib/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 58, in _wrapfunc
return bound(*args, **kwds)
ValueError: axes don't match array