Job vs Download

Could you explain when Job vs Download process should be used? What is a baseline?

I have tried run this part of the code where a small spatial extent and one day temporal extent is applied but it complains about processing synchronously on backend vito.

collection      = 'SENTINEL1_GRD'
spatial_extent  = {'west':bbox[0],'east':bbox[2],'south':bbox[1],'north':bbox[3],'crs':'EPSG:4326'}
temporal_extent = ["2022-01-06","2022-01-06"]
bands           = ["VV","VH"]

properties = {"orbitDirection": lambda od: eq(od, "ASCENDING")} ## Orbit direction filtering

s1 = connection.load_collection(collection,spatial_extent=spatial_extent,temporal_extent=temporal_extent,properties=properties)
s1bs_linear = s1.ard_normalized_radar_backscatter(elevation_model="COPERNICUS_30")
s1bs = s1bs_linear.apply(lambda x: 10 * x.log(base=10))
s1bs.download( out_dir /  "3_S1_bs.tif",format="GTiff")

I am getting this error which is not clear to me what is the issue.
Should this be sent a batch job?

OpenEoApiError: [500] Internal: Failed to process synchronously on backend vito: OpenEoApiError('[500] unknown: Sentinel Hub returned an error\nresponse: HTTP/1.1 500 Internal Server Error with body: {"error":{"status":500,"reason":"Internal Server Error","message":"Illegal request to https://sentinel-s1-l1c.s3.amazonaws.com/GRD/2022/1/6/IW/DV/S1A_IW_GRDH_1SDV_20220106T165315_20220106T165340_041343_04EA3B_237B/measurement/iw-hv.tiff. HTTP Status: 404.","code":"RENDERER_EXCEPTION"}}\nrequest: POST https://services.sentinel-hub.com/api/v1/process with body: {\n      "input": {\n        "bounds": {\n          "bbox": [349120.0, 6165330.0, 351680.0, 6167890.0],\n          "properties": {\n            "crs": "http://www.opengis.net/def/crs/EPSG/0/32633"\n          }\n        },\n        "data": [\n          {\n            "type": "sentinel-1-grd",\n            "dataFilter": {"timeRange":{"from":"2022-01-06T00:00:00Z","to":"2022-01-07T00:00:00Z"},"orbitDirection":"ASCENDING"},\n            "processing": {"demInstance":"COPERNICUS_30","backCoeff":"GAMMA0_TERRAIN","orthorectify":true}\n          }\n        ]\n      },\n      "output": {\n        "width": 256,\n        "height": 256,\n        "responses": [\n          {\n            "identifier": "default",\n            "format": {\n              "type": "image/tiff"\n            }\n          }\n        ]\n      },\n      "evalscript": "//VERSION=3\\nfunction setup() {\\n  return {\\n    input: [{\\n      \\"bands\\": [\\"VV\\", \\"VH\\", \\"HV\\", \\"HH\\", \\"dataMask\\", \\"localIncidenceAngle\\"]\\n    }],\\n    output: {\\n      bands: 6,\\n      sampleType: \\"FLOAT32\\",\\n    }\\n  };\\n}\\n\\nfunction evaluatePixel(sample) {\\n  return [sample.VV, sample.VH, sample.HV, sample.HH, sample.dataMask, sample.localIncidenceAngle];\\n}"\n    }')

@sulova.andrea here you can find some documentation about batch jobs vs synchronous jobs Basic Usage — openEO Python Client 0.9.3a2 documentation

Anyway, each back-end is free to limit the amount of data that can be retrieved using a sync call (download method of the Python client), so generally if something does not work using .download() you have better to use a batch job. If it still does not work, please report us.

Hi Andrea,
the error message is indeed not so clear, but your sar_backscatter request is running into a product with a different band then the ones you requested:

iw-hv.tiff

The general solution is to add a filter on polarization

properties[“polarization”] = lambda p: p == “DV”

Once you do that, it should work for both synchronous or batch jobs.