Hi,
Thanks for trying out the example and sorry for the issues with poorly named variables.
The idea in this script was to not put all the 36 timestamps in a single tiff, but to chunk the output in quarters. The bands_array_size should actually be named bands_chunk_size (or something more intuitive) and tells how many timestamps will be in a specific chunk. The bands_array_n is calculated from the amount of timestamps in the time series and from the provided bands_array_size parameter.
The other issue, as you’ve pointed out, is in the API, where these separate chunks have to be requested. Let me drop you some Python snippets how to generate the necessary info for the SentinelHubRequest:
import pandas as pd
n_timestamp = 36
bands = ["B01", "B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B09", "B11", "B12", "QM"]
dates = pd.date_range("2020-01-01", "2021-01-01", periods=n_timestamp + 1)[:-1].round("D").date
old_dict = { b: dates for b in bands }
new_dict = {}
n_timestamp_in_chunk = 9 # same as bands_array_size
for band, timestamps in old_dict.items():
for idx, ts in enumerate(timestamps):
col_name = f"{band}_{j // n_timestamp_in_chunk}"
if col_name not in new_dict:
new_dict[col_name] = []
new_dict[col_name].append(ts)
The old_dict has bands for keys and the full timestamp array for values, while the new_dict is similar, it is split in chunks. The new_dict can then be used to construct the response in the request:
request = SentinelHubRequest(
...,
responses=[SentinelHubRequest.output_response(band_chunk, MimeType.TIFF) for band_chunk in new_dict.keys()],
...
)
Hope this helps! Don’t hesitate to ask if there are some further problems.
Cheers