Skip to content

Client.create_or_update_dataset

def Client.create_or_update_dataset(
kind: DatasetKind,
code_name: str,
fields: list[FieldDict] | None = None,
*,
name: str | None = None,
) -> DatasetClient

Create a dataset, or update the existing dataset with the same code name.

New non-queryable fields can be added to a non-empty dataset. Changing whether an existing field is queryable or adding a new queryable field is only supported while the dataset is empty.

kind DatasetKind

The kind of the dataset.

code_name str

The code name of the dataset.

fields list[FieldDict] | None

The custom fields of the dataset. Defaults to an empty field list.

name str | None

The display name of the dataset. Defaults to the code name when creating a dataset, and to the existing name when updating a dataset.

DatasetKind.TEMPORAL DatasetKind

A dataset that contains a timestamp field

DatasetKind.SPATIOTEMPORAL DatasetKind

A dataset that contains a timestamp field and a geometry field

str type

A string field

bytes type

A bytes field

bool type

A boolean field

int type

A 64-bit signed integer field

np.uint64 type

A 64-bit unsigned integer field

float type

A 64-bit floating-point number field

datetime.timedelta type

A duration field

datetime.datetime type

A timestamp field

uuid.UUID type

A UUID field

shapely.Geometry type

A geometry field

Assets type

STAC asset metadata. Import from tilebox.datasets.schema.

Authentication type

STAC authentication metadata. Import from tilebox.datasets.schema.

ProcessingSoftware type

STAC processing software metadata. Import from tilebox.datasets.schema.

Provider type

STAC provider metadata. Import from tilebox.datasets.schema.

Storage type

STAC storage metadata. Import from tilebox.datasets.schema.

Note that the type can also be a list of one of the types, indicating that the field is an array, e.g. list[str].

name str required

Set the name of the field

type type required

Set the type of the field

description str

Set the description of the field to provide more context and details about the data

example_value str

Set the example value of the field for documentation purposes

source_json_pointer str | None

Optional. Set the RFC 6901 path to this field in the source JSON, such as /properties/eo:cloud_cover. This is useful when transforming datapoints to JSON because Tilebox can reconstruct nested source objects from flattened dataset fields.

queryable bool

Make the field available for server-side custom field filters. Queryable fields must be non-repeated str, bool, int, np.uint64, or float fields. A dataset can contain at most two queryable string fields.

json_schema_ref str | None

Optional. Set a JSON Schema reference URI or URI fragment for the field. Use this when the field follows a well-known schema, such as a STAC extension. Tilebox emits the reference as $ref when advertising the field in STAC queryables.

roles list[FieldRole] | list[Literal["primary_title"]]

Set semantic display roles for the field. The only currently supported role is primary_title.

Queryable string values can contain at most 1,024 Unicode code points. See Queryable fields for schema constraints and Filter by custom fields for query syntax.

A DatasetClient for the created or updated dataset.