from datetime import datetime
from tilebox.clients.core.data import TimeInterval

# querying a specific time
time = "2023-05-01 12:45:33.423"
data = collection.query(temporal_extent=time)

# querying a time interval
interval = ("2023-05-01", "2023-08-01")
data = collection.query(temporal_extent=interval)

# displaying a progress bar while querying
data = collection.query(
  temporal_extent=interval,
  show_progress=True,
)

# querying a time interval with TimeInterval
interval = TimeInterval(
    start=datetime(2023, 5, 1),
    end=datetime(2023, 8, 1),
    start_exclusive=False,
    end_inclusive=False,
)
data = collection.query(temporal_extent=interval)

# querying with an iterable
datapoints = collection.query(
  temporal_extent=interval,
  skip_data=True,  # only fetch datapoint IDs and time
)
first_50 = collection.query(temporal_extent=datapoints.time[:50])
def Collection.query(
    temporal_extent: TimeIntervalLike,
    skip_data: bool = False,
    show_progress: bool = False
) -> xarray.Dataset

Query a range of data points in this collection in a specified temporal extent. If no data exists for the requested time or interval, an empty xarray.Dataset is returned.

Parameters

temporal_extent
TimeIntervalLike

The time or time interval for which to query data. This can be a single time scalar, a tuple of two time scalars, or an array of time scalars.

Valid time scalars are: datetime.datetime objects, strings in ISO 8601 format, or Unix timestamps in seconds.

Behavior for each input type:

  • TimeScalar: If a single time scalar is provided, query returns all data points for that exact millisecond.

  • TimeInterval: If a time interval is provided, query returns all data points in that interval. Intervals can be a tuple of two TimeScalars or a TimeInterval object. Tuples are interpreted as a half-open interval [start, end). With a TimeInterval object, the start_exclusive and end_inclusive parameters control whether the start and end time are inclusive or exclusive.

  • Iterable[TimeScalar]: If an array of time scalars is provided, query constructs a time interval from the first and last time scalar in the array. Here, both the start and end times are inclusive.

skip_data
bool

If True, the response contains only the ID and the timestamp for each datapoint. Defaults to False.

show_progress
bool

If True, a progress bar is displayed when pagination is required. Defaults to False.

Returns

An xarray.Dataset containing the requested data points.

from datetime import datetime
from tilebox.clients.core.data import TimeInterval

# querying a specific time
time = "2023-05-01 12:45:33.423"
data = collection.query(temporal_extent=time)

# querying a time interval
interval = ("2023-05-01", "2023-08-01")
data = collection.query(temporal_extent=interval)

# displaying a progress bar while querying
data = collection.query(
  temporal_extent=interval,
  show_progress=True,
)

# querying a time interval with TimeInterval
interval = TimeInterval(
    start=datetime(2023, 5, 1),
    end=datetime(2023, 8, 1),
    start_exclusive=False,
    end_inclusive=False,
)
data = collection.query(temporal_extent=interval)

# querying with an iterable
datapoints = collection.query(
  temporal_extent=interval,
  skip_data=True,  # only fetch datapoint IDs and time
)
first_50 = collection.query(temporal_extent=datapoints.time[:50])