Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
9321df6
feat(stac): add build_s1_rtc_stac_item and generate-stac-s1 CLI command
lhoupert May 26, 2026
deb342c
fix: support s3:// URIs in S1Tiling discovery and ingest (#175)
lhoupert May 29, 2026
34689c3
fix(stac): point vv/vh asset hrefs to orbit group root; add tile_matr…
lhoupert May 29, 2026
5a91b35
fix(ingest): add proj:code to resolution group attrs for TiTiler comp…
lhoupert May 29, 2026
92d6d05
fix(s1): write CF grid_mapping, drop tile_matrix_set from RTC store (…
lhoupert Jun 1, 2026
9231a5c
Merge #172 (deprecate v0, fix fill values, sanitize attrs) into s1-rt…
lhoupert Jun 3, 2026
dbdffae
feat(s1-stac): add render extension with dual-pol RGB composite preview
lhoupert Jun 9, 2026
0b45dea
refactor(s1-stac): emit a single rescale pair in the RGB render
lhoupert Jun 9, 2026
8c8ee81
Merge branch 's1-tiling' into feat/s1-rtc-stac-builder
lhoupert Jun 9, 2026
f43d567
fix(s1-rtc): TEMPORARY name store as s1-rtc-{tile} to match titiler r…
lhoupert Jun 15, 2026
bbd18e3
fix(s1-rtc): build STAC item from a non-consolidated cube store
lhoupert Jun 15, 2026
873529c
Merge remote-tracking branch 'origin/s1-tiling' into feat/s1-rtc-stac…
lhoupert Jun 16, 2026
16c5f14
fix(s1-rtc): CF-encode `time` at every level for datetime-based rende…
lhoupert Jun 17, 2026
2ffa3ec
fix(s1-rtc): enrich STAC items & consolidate construction into the li…
lhoupert Jun 18, 2026
817e2b9
perf(s1-rtc): shard the conditions arrays (gamma_area/LIA) like the v…
lhoupert Jun 19, 2026
2677c24
fix(s1-rtc): heal a multiscale level missing `time` on append (robust…
lhoupert Jun 19, 2026
082913a
fix(s1-rtc): write CF `_FillValue` on float arrays (#172 parity) (#201)
lhoupert Jun 22, 2026
ac3167f
fix(s1-rtc): store nodata as NaN, not 0, so titiler masks it transpar…
lhoupert Jun 23, 2026
02456d5
fix(s1-rtc): consolidate every orbit group, not just the last-ingeste…
lhoupert Jun 23, 2026
ab237ec
fix(s1-rtc): per-band rescale for the RGB composite render (#204)
lhoupert Jun 23, 2026
f882a3f
feat(s1-rtc): add grid:code (MGRS tile) + grid extension to STAC item…
lhoupert Jun 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ dependencies = [
"s3fs>=2024.6.0",
"boto3>=1.34.0",
"pyproj>=3.7.0",
"pystac>=1.8.0",
"structlog>=25.5.0",
]

Expand Down
33 changes: 33 additions & 0 deletions src/eopf_geozarr/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -1108,6 +1108,20 @@ def consolidate_s1_command(args: argparse.Namespace) -> None:
sys.exit(1)


def generate_stac_s1_command(args: argparse.Namespace) -> None:
"""Build and print a STAC item for an S1 GRD RTC Zarr store."""
import json

from .stac.s1_rtc import build_s1_rtc_stac_item

try:
item = build_s1_rtc_stac_item(args.store, args.collection)
print(json.dumps(item.to_dict(), indent=2))
except Exception as e:
log.exception("❌ Error generating STAC item", error=str(e))
sys.exit(1)


def create_parser() -> argparse.ArgumentParser:
"""
Create the argument parser for the CLI.
Expand Down Expand Up @@ -1211,6 +1225,7 @@ def create_parser() -> argparse.ArgumentParser:

# Add S1 ingestion commands
add_s1_ingestion_commands(subparsers)
add_s1_stac_commands(subparsers)

return parser

Expand Down Expand Up @@ -1277,6 +1292,24 @@ def add_s1_ingestion_commands(subparsers: argparse._SubParsersAction) -> None:
cons_parser.set_defaults(func=consolidate_s1_command)


def add_s1_stac_commands(subparsers: argparse._SubParsersAction) -> None:
"""Add S1 GRD RTC STAC builder command to CLI parser."""
stac_parser = subparsers.add_parser(
"generate-stac-s1",
help="Build and print a STAC item for an S1 GRD RTC Zarr store",
)
stac_parser.add_argument(
"--store", type=str, required=True, help="Path or s3:// URI to the Zarr store"
)
stac_parser.add_argument(
"--collection",
type=str,
default="sentinel-1-grd-rtc-staging",
help="STAC collection ID (default: sentinel-1-grd-rtc-staging)",
)
stac_parser.set_defaults(func=generate_stac_s1_command)


def add_s2_optimization_commands(subparsers: argparse._SubParsersAction) -> None:
"""Add S2 optimization commands to CLI parser."""

Expand Down
Loading