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:-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_dictccol_name] = =]
new_dictccol_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=sSentinelHubRequest.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