---
title: "iter_datapoints"
description: "Iterate over individual datapoints in an xarray query result."
image: "https://tilebox.com/images/tilebox-docs-social-preview.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://tilebox.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# iter_datapoints

import { Fragment } from "astro/jsx-runtime";
import ApiReference from "@docs/components/ApiReference.astro";
import ParamField from "@docs/components/ParamField.astro";

```python
def iter_datapoints(
    data: xarray.Dataset,
    *,
    dimension: str = "time",
) -> Iterator[xarray.Dataset]
```

Iterate over individual datapoints in an xarray query result. Each datapoint is selected by position along `dimension`, removing that dimension and preserving its coordinate as a scalar.

This iterates over an existing result; it does not make requests or stream query pages.

## Parameters

**data**

type: xarray.Dataset

The result of a dataset or collection query.
**dimension**

type: str

The datapoint dimension to iterate over. Defaults to `"time"`.

## Yields

One `xarray.Dataset` per datapoint, in result order. Empty query results yield no datapoints.

## Raises

`ValueError` when iteration starts if the dataset contains variables but does not have the requested dimension.

<h2 id="request-example">Usage example</h2>

Query Sentinel-2 scenes and resolve each scene's red-band asset separately.

```python
from shapely import box
from tilebox.datasets import Client, iter_datapoints
from tilebox.datasets.assets import AssetCollection

collection = Client().dataset("open_data.aws_earth.sentinel2").collection("L2A")
data = collection.query(
    temporal_extent=("2026-07-20", "2026-07-28"),
    spatial_extent=box(16.25, 48.15, 16.35, 48.22),
)

for datapoint in iter_datapoints(data):
    assets = AssetCollection.from_datapoint(datapoint)
    print(datapoint.id.item(), assets["red"].primary.href)
```

[`AssetCollection.from_datapoint`](/docs/api-reference/python/tilebox.datasets.assets/AssetCollection.from_datapoint) accepts one scalar datapoint, not the full query result.

Source: https://tilebox.com/docs/api-reference/python/tilebox.datasets/iter_datapoints/index.mdx
