Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: 'Results' object has no attribute 'location' #57

Open
ClaudioValletta92 opened this issue Jul 31, 2024 · 1 comment
Open
Labels
bug Something isn't working

Comments

@ClaudioValletta92
Copy link

What happened?

Hello, I am simply running the first example on the website:

`import earthkit as ek

data = ek.data.from_source(
'cds',
'reanalysis-era5-single-levels',
{
'product_type': 'reanalysis',
'variable': '2m_temperature',
'year': '2023',
'month': '07',
'day': '3',
'time': '12:00',
},
)

ek.plots.globe(data)`

but it does not work, on my jupyter and on google collab as well

What are the steps to reproduce the bug?

Can you simply try:

`import earthkit as ek

data = ek.data.from_source(
'cds',
'reanalysis-era5-single-levels',
{
'product_type': 'reanalysis',
'variable': '2m_temperature',
'year': '2023',
'month': '07',
'day': '3',
'time': '12:00',
},
)

ek.plots.globe(data)`

And see if you can reproduce it?

Version

Latest

Platform (OS and architecture)

M1

Relevant log output

2024-08-01 01:11:37,429 INFO Request ID is 6ee28b96-6aef-458c-a44e-711f0fd777fa
2024-08-01 01:11:37,459 INFO status has been updated to accepted
2024-08-01 01:11:38,998 INFO status has been updated to running
2024-08-01 01:11:41,285 INFO Creating download object as as_source with files:
['data.grib']
2024-08-01 01:11:44,721 INFO status has been updated to successful
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[11], line 3
      1 import earthkit as ek
----> 3 data = ek.data.from_source(
      4     'cds',
      5     'reanalysis-era5-single-levels',
      6     {
      7         'product_type': 'reanalysis',
      8         'variable': '2m_temperature',
      9         'year': '2024',
     10         'month': '07',
     11         'day': '3',
     12         'time': '12:00',
     13     },
     14 )
     16 ek.plots.globe(data)

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/__init__.py:150, in from_source(name, lazily, *args, **kwargs)
    147     return from_source_lazily(name, *args, **kwargs)
    149 prev = None
--> 150 src = get_source(name, *args, **kwargs)
    151 while src is not prev:
    152     prev = src

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/__init__.py:131, in SourceMaker.__call__(self, name, *args, **kwargs)
    128     klass = find_plugin(os.path.dirname(__file__), name, loader)
    129     self.SOURCES[name] = klass
--> 131 source = klass(*args, **kwargs)
    133 if getattr(source, "name", None) is None:
    134     source.name = name

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/core/__init__.py:22, in MetaBase.__call__(cls, *args, **kwargs)
     20 obj = cls.__new__(cls, *args, **kwargs)
     21 args, kwargs = cls.patch(obj, *args, **kwargs)
---> 22 obj.__init__(*args, **kwargs)
     23 return obj

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/cds.py:126, in CdsRetriever.__init__(self, dataset, prompt, *args, **kwargs)
    123 nthreads = min(self.settings("number-of-download-threads"), len(self.requests))
    125 if nthreads < 2:
--> 126     self.path = [self._retrieve(dataset, r) for r in self.requests]
    127 else:
    128     with SoftThreadPool(nthreads=nthreads) as pool:

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/cds.py:126, in <listcomp>(.0)
    123 nthreads = min(self.settings("number-of-download-threads"), len(self.requests))
    125 if nthreads < 2:
--> 126     self.path = [self._retrieve(dataset, r) for r in self.requests]
    127 else:
    128     with SoftThreadPool(nthreads=nthreads) as pool:

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/cds.py:140, in CdsRetriever._retrieve(self, dataset, request)
    137     self.source_filename = cds_result.location.split("/")[-1]
    138     cds_result.download(target=target)
--> 140 return_object = self.cache_file(
    141     retrieve,
    142     (dataset, request),
    143     extension=EXTENSIONS.get(request.get("format"), ".cache"),
    144 )
    145 return return_object

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/__init__.py:68, in Source.cache_file(self, create, args, **kwargs)
     65 if owner is None:
     66     owner = re.sub(r"(?!^)([A-Z]+)", r"-\1", self.__class__.__name__).lower()
---> 68 return cache_file(owner, create, args, **kwargs)

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/core/caching.py:1053, in cache_file(owner, create, args, hash_extra, extension, force, replace)
   1051 with FileLock(lock):
   1052     if not os.path.exists(path):  # Check again, another thread/process may have created the file
-> 1053         owner_data = create(path + ".tmp", args)
   1054         os.rename(path + ".tmp", path)
   1055 try:

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/earthkit/data/sources/cds.py:137, in CdsRetriever._retrieve.<locals>.retrieve(target, args)
    135 def retrieve(target, args):
    136     cds_result = self.client().retrieve(args[0], args[1])
--> 137     self.source_filename = cds_result.location.split("/")[-1]
    138     cds_result.download(target=target)

AttributeError: 'Results' object has no attribute 'location'

Accompanying data

I am using the new copernicu beta api

Organisation

No response

@ClaudioValletta92 ClaudioValletta92 added the bug Something isn't working label Jul 31, 2024
@sandorkertesz
Copy link
Collaborator

sandorkertesz commented Aug 15, 2024

@ClaudioValletta92, thank you for reporting this issue. You seem to be using CDS beta. I suggest you update your environment to use this package versions:

  • cdsapi 0.7.0
  • cads-api-client 1.2.0

I hope it will sort out your problem. earthkit/earthkit-data will be updated to use these minimum versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants