Skip to content

Reading file fails with latest iris version #520

@schlunma

Description

@schlunma

Reading the file iris_sample_data/sample_data/polar_stereo.grib2 with the latest iris 3.10 produces the following error for me:

>>> import iris
>>> path = "polar_stereo.grib2"
>>> cubes = iris.load(path)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/__init__.py", line 330, in load
    return _load_collection(uris, constraints, callback).merged().cubes()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/__init__.py", line 298, in _load_collection
    result = _CubeFilterCollection.from_cubes(cubes, constraints)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/cube.py", line 95, in from_cubes
    for cube in cubes:
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/__init__.py", line 279, in _generate_cubes
    for cube in iris.io.load_files(part_names, callback, constraints):
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/io/__init__.py", line 222, in load_files
    for cube in handling_format_spec.handler(fnames, callback):
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/fileformats/rules.py", line 435, in load_cubes
    for cube, field in _load_pairs_from_fields_and_filenames(
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/fileformats/rules.py", line 360, in _load_pairs_from_fields_and_filenames
    cube, factories, references = _make_cube(field, converter)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/fileformats/rules.py", line 297, in _make_cube
    cube_data = field.core_data()
                ^^^^^^^^^^^^^^^^^
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris_grib/message.py", line 119, in core_data
    return self.data
           ^^^^^^^^^
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris_grib/message.py", line 162, in data
    data = as_lazy_data(proxy)
           ^^^^^^^^^^^^^^^^^^^
  File "/home/manuel/micromamba/envs/esm/lib/python3.11/site-packages/iris/_lazy_data.py", line 271, in as_lazy_data
    raise ValueError(
ValueError: For performance reasons, `meta` cannot be `None` if `data` is anything other than a Numpy or Dask array.

Here is my environment:

 $ mamba list iris                                                                                                                                                                                                                                                                                            
  Name              Version  Build         Channel
────────────────────────────────────────────────────────
  iris              3.10.0   pyha770c72_0  conda-forge
  iris-esmf-regrid  0.11.0   pyhd8ed1ab_0  conda-forge
  iris-grib         0.19.0   pyhd8ed1ab_0  conda-forge

With iris 3.9, we also get an error, but a slightly different one: https://app.circleci.com/pipelines/github/ESMValGroup/ESMValCore/11527/workflows/2dea67e4-e4c9-4f8e-87fc-bb960e0b7849/jobs/48457/parallel-runs/0/steps/0-105. I did not test this locally though, so it could also be a problem of the CI machine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions