Skip to content

vocabularies.grib error: ECMWF param-db replaces json #678

@j-haacker

Description

@j-haacker

What happened?

The param ID translation is broken. It seems that the online provided json does not exist anymore and is replaced by https://codes.ecmwf.int/grib/param-db.

What are the steps to reproduce the bug?

from earthkit.data.vocabularies import grib
grib.param_id_to_short_name(167)

Version

0.12.1

Platform (OS and architecture)

Linux

Relevant log output

>>> grib.param_id_to_short_name(167)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".venv/lib/python3.12/site-packages/earthkit/data/vocabularies/grib.py", line 37, in param_id_to_short_name
    entry = param_id_to_dict(param_id)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/earthkit/data/vocabularies/grib.py", line 32, in param_id_to_dict
    dic = _param_id_dict()
          ^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/earthkit/data/vocabularies/grib.py", line 21, in _param_id_dict
    path = download_and_cache(URL)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/earthkit/data/utils/__init__.py", line 23, in download_and_cache
    return download_and_cache(url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/earthkit/data/sources/url.py", line 103, in download_and_cache
    path = cache_file(
           ^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/earthkit/data/core/caching.py", line 1056, in cache_file
    owner_data = create(path + ".tmp", args)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/earthkit/data/sources/url.py", line 100, in download
    downloader.download(target)
  File ".venv/lib/python3.12/site-packages/multiurl/base.py", line 129, in download
    total = self.transfer(f, pbar)
            ^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/multiurl/http.py", line 132, in transfer
    stream = self.make_stream()
             ^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/multiurl/http.py", line 295, in make_stream
    request = self.issue_request(self.range)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/multiurl/http.py", line 237, in issue_request
    r.raise_for_status()
  File ".venv/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://codes.ecmwf.int/grib/json/

Accompanying data

No response

Organisation

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions