Create a Sentinel-1 Item¶
Install the package, then run this complete example:
from datetime import datetime, timezone
import pystac
from pystac.extensions.sentinel1 import Sentinel1Extension
acquisition_datetime = datetime(2023, 2, 1, tzinfo=timezone.utc)
item = pystac.Item(
id="example-sentinel-1",
geometry=None,
bbox=None,
datetime=acquisition_datetime,
properties={},
)
sentinel1 = Sentinel1Extension.ext(item, add_if_missing=True)
sentinel1.apply(
datatake_id="420895",
instrument_configuration_id="7",
orbit_source="PREORB",
slice_number="17",
total_slices="17",
)
serialized = item.to_dict()
assert Sentinel1Extension.get_schema_uri() in serialized["stac_extensions"]
assert serialized["properties"]["s1:instrument_configuration_ID"] == "7"
restored = Sentinel1Extension.ext(pystac.Item.from_dict(serialized))
assert restored.datatake_id == "420895"
assert restored.slice_number == "17"
Identifiers and slice counts are strings, including values that look numeric. The instrument configuration field uses uppercase ID in JSON and lowercase id in Python.
to_dict() serializes without running JSON Schema validation. See validation boundaries for full validation.