[BUG] Can't add the 'constellation' filter to a request
jovanovski opened this issue · 2 comments
Describe the bug
The constellation
data filter needed for HLS requests can't be added. If added to the other_args
dict, it's being put outside the data_filters
object, hence not used.
To Reproduce
Steps to reproduce the behavior:
- Request
ThermalInfrared1
band from HLS - Get error that you need to use the
constellation
filter - No way to add the filter without modifying the library
Expected behavior
To be able to add this filter
Server response: "{"status": 400, "reason": "Bad Request", "message": "Your request returns SENTINEL products, which don't have bands ThermalInfrared1, ThermalInfrared2. Filter out such products, e.g. using 'constellation' filter.", "code": "COMMON_BAD_PAYLOAD"}"
Desktop (please complete the following information):
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
Additional context
Here is the request and you can see how other_args
adds the value outside of data_filters
'data': [InputDataDict({'type': 'hls', 'dataFilter': {'timeRange': {'from': '2023-04-20T00:00:00Z', 'to': '2023-05-03T23:59:59Z'}, 'maxCloudCoverage': 70, 'mosaickingOrder': 'leastCC'}, 'constellation': 'landsat'}, service_url=https://services-uswest2.sentinel-hub.com/)]},
If I manually edit the library and force it inside the data filters, the request works.
Hi @jovanovski
i agree that it is often a bit messy to add specific filters. But you approach with other_args
should work. The code joins the two dictionaries, and since you want "constellation": "LANDSAT"
to be in the "dataFilter"
you can do this:
input_data=[
SentinelHubRequest.input_data(
data_collection=DataCollection.HARMONIZED_LANDSAT_SENTINEL,
time_interval=("2020-06-12", "2020-06-30"),
other_args={"dataFilter": {"constellation": "LANDSAT"}}
)
]
I was able to get an image with the above. If the issues remain we can try and resolve them.
Ah, yes, you're right @zigaLuksic! Thank you for the hint!