Issue in Multi-temporal images access using evalscript

I am trying to use the evalscript example given in Evalscript V3 to try to access multi-temporal data.

To get one image, as in the code below, it works fine

evalscript_true_color = """
    //VERSION=3

    function setup() {
        return {
            input: [{
                bands: ["B02"]
            }],
            output: {
                bands: 1
            }
        };
    }

    function evaluatePixel(sample) {
        return [sample.B02];
    }
"""

request_true_color = SentinelHubRequest(
    evalscript=evalscript_true_color,
    input_data=[
        SentinelHubRequest.input_data(
            data_collection=DataCollection.SENTINEL2_L1C,
            time_interval=("2022-01-01", "2023-12-31"),
            mosaicking_order=MosaickingOrder.LEAST_CC,
        )
    ],
    responses=[SentinelHubRequest.output_response("default", MimeType.PNG)],
    bbox=bbox,
    size=size,
    config=config,
)


true_color_imgs = request_true_color.get_data()
print(f"Returned data is of type = {type(true_color_imgs)} and length {len(true_color_imgs)}.")

However, when I modify it based on the link as in the below code

evalscript = """
//VERSION=3
function setup() {
    return {
        input: [{
                bands: ["B02"],
            }
        ],
        output: [{
                id: "default",
                bands: 1,
                sampleType: "UINT16"
            }
        ],
        mosaicking: "TILE"
    }
}

function updateOutput(output, collection) {
    output.default.bands = collection.scenes.length;
}

function evaluatePixel(samples) {
    var n_scenes = samples.length;
    let band_b02 = new Array(n_scenes);

    // Arrange values of band B02 in an array
    for (var i = 0; i < n_scenes; i++){
        band_b02[i] = samples[i].B02;
    }

    return {
        default: band_b02
    };
}
"""
time_interval = ('2023-01-01', '2023-01-10')

request = SentinelHubRequest(
    evalscript=evalscript,
    input_data=[
        SentinelHubRequest.input_data(
            data_collection=DataCollection.SENTINEL2_L1C,
            time_interval=time_interval,
        )
    ],
    responses=[
        SentinelHubRequest.output_response('default', MimeType.PNG)
    ],
    bbox=bbox,
    size=size,
    config=config
)

images = request.get_data()

print(f"Total number of images retrieved: {len(images)}")

It still returns one image. I hope somebody can help me figure out what I am doing wrong?

It should still return only one image, however that image should have as many bands as there are acquisitions in the time series.

Open up the image in QGIS and check the number of bands, it should all be there.

ah yes! I did not check the shape of the returned ‘images’. It has everything in it, thank you :blush:-