You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
discover_s1tiling_acquisitions silently discovers 0 acquisitions for multi-frame S1Tiling products, because their GeoTIFF filenames carry a masked acquisition time (…txxxxxx) that the filename regex rejects.
Surfaced by the 32TLR staging e2e (data-pipeline tracker #226, item F1). data-pipeline shipped a workaround in #237 (ingest_all rewrites …txxxxxx… names from the GeoTIFF ACQUISITION_DATETIME tag before discovery). This issue tracks the durable upstream fix so that workaround can be removed.
Root cause
src/eopf_geozarr/conversion/s1_ingest.py:
S1TILING_FILENAME_PATTERN=re.compile(
...
r"(?P<acq_stamp>\d{8}t\d{6})_"# requires 6 time digits
...
)
A multi-frame product names the time portion txxxxxx (e.g. s1a_32TLR_vv_DES_037_20260521txxxxxx_GammaNaughtRTC.tif) because the frame spans acquisitions without a single shared timestamp. \d{6} fails to match xxxxxx, so:
parse_s1tiling_filename() returns None,
discover_s1tiling_acquisitions() skips the file,
discovery returns an empty list — no error, just 0 acquisitions.
Reproduce
Point discover_s1tiling_acquisitions(input_dir) at a directory whose GeoTIFFs have a masked …txxxxxx stamp → returns [].
Proposed fix (durable)
The real timestamp is already available in the GeoTIFF metadata — extract_geotiff_metadata() reads the ACQUISITION_DATETIME tag (s1_ingest.py:148). So:
Relax acq_stamp to also accept a masked time, e.g. (?P<acq_stamp>\d{8}t(?:\d{6}|x{6})).
When the stamp is masked, resolve the realacq_stamp from the GeoTIFF ACQUISITION_DATETIME tag and use that for grouping (so the per-acquisition key + downstream STAC datetime are correct).
This moves the data-pipeline #237 normalization into discovery, where it belongs, and lets that workaround be retired.
Acceptance
A masked-stamp multi-frame bundle is discovered as a complete acquisition (vv/vh/masks grouped), with acq_stamp resolved from ACQUISITION_DATETIME.
Unmasked single-frame products are unchanged (regression-tested).
data-pipeline #237 workaround can be removed once this lands.
Summary (F1)
discover_s1tiling_acquisitionssilently discovers 0 acquisitions for multi-frame S1Tiling products, because their GeoTIFF filenames carry a masked acquisition time (…txxxxxx) that the filename regex rejects.Surfaced by the 32TLR staging e2e (data-pipeline tracker #226, item F1). data-pipeline shipped a workaround in #237 (
ingest_allrewrites…txxxxxx…names from the GeoTIFFACQUISITION_DATETIMEtag before discovery). This issue tracks the durable upstream fix so that workaround can be removed.Root cause
src/eopf_geozarr/conversion/s1_ingest.py:A multi-frame product names the time portion
txxxxxx(e.g.s1a_32TLR_vv_DES_037_20260521txxxxxx_GammaNaughtRTC.tif) because the frame spans acquisitions without a single shared timestamp.\d{6}fails to matchxxxxxx, so:parse_s1tiling_filename()returnsNone,discover_s1tiling_acquisitions()skips the file,Reproduce
Point
discover_s1tiling_acquisitions(input_dir)at a directory whose GeoTIFFs have a masked…txxxxxxstamp → returns[].Proposed fix (durable)
The real timestamp is already available in the GeoTIFF metadata —
extract_geotiff_metadata()reads theACQUISITION_DATETIMEtag (s1_ingest.py:148). So:acq_stampto also accept a masked time, e.g.(?P<acq_stamp>\d{8}t(?:\d{6}|x{6})).acq_stampfrom the GeoTIFFACQUISITION_DATETIMEtag and use that for grouping (so the per-acquisition key + downstream STACdatetimeare correct).This moves the data-pipeline #237 normalization into discovery, where it belongs, and lets that workaround be retired.
Acceptance
acq_stampresolved fromACQUISITION_DATETIME.References
feat/s1-rtc-stac-builder, PR Feat/s1 rtc stac builder #180)