Download "s3a_ol_1_efr" collection fails

Hello everyone,

I was trying to download the “s3a_ol_1_efr” collection using Python. Here’s the code I used (similar to cookbook code):

import openeo

connection = openeo.connect("openeo.cloud")
connection.authenticate_oidc()

bbox = (2.599318, 51.229076, 3.43409, 51.45897)
dc = connection.load_collection("s3a_ol_1_ef",temporal_extent=["2020-06-07","2020-06-07"]) #,bands=['B04','B03','B02','B08','B11','B12']
dc = dc.filter_bbox({'west':bbox[0],'east':bbox[2],'south':bbox[1],'north':bbox[3]})
result = dc.save_result("netCDF")
job = result.send_job()
job.start_and_wait()
job.get_results().download_files(PathSave_test + "test_openEO")

It gives the error: OpenEoApiError: [500] unknown: [500] 500: argument of type ‘NoneType’ is not iterable

The download works fine for e.g. the collections “SENTINEL1_GAMMA0_SENTINELHUB” or “TERRASCOPE_S2_TOC_V2”. So it might be an issue with the “s3a_ol_1_efr” collection.

Any idea what’s the issue here? I’m basically trying to get the individual Sentinel 3 bands, meaning the “SENTINEL3_SLSTR” collection is not suitable. But if there’s another collection that I didn’t find please let me know!

Full error message is here:

---------------------------------------------------------------------------
OpenEoApiError                            Traceback (most recent call last)
/Net/Groups/BGI/people/jgens/dataprocessing/openEO_Sen3.py in <module>
      40 result = dc.save_result("netCDF")
      41 job = result.send_job()
----> 42 job.start_and_wait()
      43 job.get_results().download_files(PathSave_test + "test_openEO")
     44 #sentinel2.download(PathSave_S2 + "S2_TOC_062020.nc")

/Net/Groups/BGI/people/jgens/miniconda3/envs/phd/lib/python3.8/site-packages/openeo/rest/job.py in start_and_wait(self, print, max_poll_interval, connection_retry_interval, soft_error_max)
    161         # TODO: make `max_poll_interval`, `connection_retry_interval` class constants or instance properties?
    162         print_status("send 'start'")
--> 163         self.start_job()
    164 
    165         # TODO: also add  `wait` method so you can track a job that already has started explicitly

/Net/Groups/BGI/people/jgens/miniconda3/envs/phd/lib/python3.8/site-packages/openeo/rest/job.py in start_job(self)
     68         """ Start / queue a job for processing."""
     69         # POST /jobs/{job_id}/results
---> 70         self.connection.post("/jobs/{}/results".format(self.job_id), expected_status=202)
     71 
     72     def stop_job(self):

/Net/Groups/BGI/people/jgens/miniconda3/envs/phd/lib/python3.8/site-packages/openeo/rest/connection.py in post(self, path, json, **kwargs)
    158         :return: response: Response
    159         """
--> 160         return self.request("post", path=path, json=json, allow_redirects=False, **kwargs)
    161 
    162     def delete(self, path, **kwargs) -> Response:

/Net/Groups/BGI/people/jgens/miniconda3/envs/phd/lib/python3.8/site-packages/openeo/rest/connection.py in request(self, method, path, headers, auth, check_error, expected_status, **kwargs)
    106         expected_status = ensure_list(expected_status) if expected_status else []
    107         if check_error and status >= 400 and status not in expected_status:
--> 108             self._raise_api_error(resp)
    109         if expected_status and status not in expected_status:
    110             raise OpenEoRestError("Got status code {s!r} for `{m} {p}` (expected {e!r})".format(

/Net/Groups/BGI/people/jgens/miniconda3/envs/phd/lib/python3.8/site-packages/openeo/rest/connection.py in _raise_api_error(self, response)
    137             else:
    138                 exception = OpenEoApiError(http_status_code=status_code, message=text)
--> 139         raise exception
    140 
    141     def get(self, path, stream=False, auth: AuthBase = None, **kwargs) -> Response:

OpenEoApiError: [500] unknown: [500] 500: argument of type 'NoneType' is not iterable

Hi Johannes,
on the Terrascope backend, we are almost ready to roll out a Sentinel-2 OLCI collection, with this metadata:
https://collections.eurodatacube.com/stac/sentinel-3-l1b-olci.json
I guess that’s what you’re looking for? If so, I’ll try to make it go a bit faster.

Our EODC colleagues will check out the issue with the s3a_ol_1_efr layer.

Hi Johannes!

Two points, first it appears the product name is missing an ‘r’ at the very end. Second, I have run the code with this correction and it appears as though the request for this product is being slightly mis-directed in our backend. I will set some time to isolate the cause and get back to you when a solution is in place.

Thanks for posting on the forum!

Thank you for your fast replies!
Yes, exactly the Sentinel-3 OLCI is what I’m interested in. Great, I’ll just wait until it’s ready then :slight_smile:
Oh, true I missed a “r” in the code posted above but had included that in my actual code. I have corrected it in the post above. Thanks for looking into it!
Best,
Johannes

1 Like

Hi Johannes,
the Sentinel-3 OLCI collection you requested is now available based on Sentinelhub.

You can find a basic example in this notebook:

Note that we may still change some settings for this collection: the Sentinel-3 level-1 b products are provided in instrument geometry, which means that there is not a fixed projection and resolution which we normally rely upon. Hence, to not further delay the release, we configured EPSG:4326 as projection and a fixed resolution which approximately corresponds to 300m on the ground.

Please try it out, and let us know if you still see issues.