def METHOD_NAME(
    mapper: Mapping[str, xr.Dataset],
    variables: Sequence[str],
    initial_time: Optional[str] = None,
    frequency_seconds: float = 900.0,
    limiter: Optional[DatasetQuantileLimiter] = None,
) -> Callable[[cftime.DatetimeJulian], State]:
    def time_lookup_function(time: cftime.DatetimeJulian) -> State:
        timestamp = vcm.encode_time(time)
        ds = mapper[timestamp]
        if limiter is not None:
            ds = limiter.transform(ds)
        return {var: ds[var].load() for var in variables}
    if initial_time is not None:
        initial_time = label_to_time(initial_time)
        return time_interpolate_func(
            time_lookup_function, timedelta(seconds=frequency_seconds), initial_time
        )
    else:
        return time_lookup_function