Skip to content

How-To: Compatible TiTiler-EOPF image

The Dockerfile pins the upstream filesystem-reader commit b0beec2a9c44ff030e2eef5cfc4622bd9ac19565 by GHCR digest. Current upstream main requires a STAC API; it does not use the TITILER_EOPF_STORE_URL filesystem configuration used by these labs.

The guarded patch handles GeoZarr convention v0.1 layout assets that point to DataArrays, filters overview selection by variable, and casts datetime selectors to nanosecond precision. The pinned dependency already accepts ISO colons and inline selection methods; the build checks that support and fails if the expected upstream reader blocks change.

task titiler:eopf:build:patched
task titiler:eopf:run:results:patched TITILER_PORT=8081

The local run mounts the catalog named by zarr_stac_catalog in cwl-tests/results.json. All local TiTiler run tasks default to titiler-eopf:patched; build the image first.

Use an advertised variable from /dataset/keys, which may be /:ndwi when the GeoZarr multiscale layout is at the root. The HTML client maps the STAC measurement expression to the unique matching advertised variable.

The supported nearest time selector is sel=time=nearest::<ISO datetime>:

curl -o ndwi-time.png \
  'http://127.0.0.1:8081/collections/water-bodies/items/water-bodies/preview.png?variables=/:ndwi&sel=time=nearest::2021-06-08T18:49:21.024000000Z&rescale=-1,1&colormap_name=viridis'

bidx=<n> remains available for explicit time-index selection. Do not substitute sel_method=nearest: the pinned reader uses the inline selector DSL.

For separate Kubernetes server/client deployments and reproducible validation, see Display producer outputs on Kubernetes. The historical issue draft describes earlier moving-image failures rather than the currently pinned API.