Skip to content

Solve time extrapolation problem

Martin Lange requested to merge extrapolation-methods into main

Purpose

Allow for pulling data with a consistent time offset and times span between pulls (for aggregation).

Solution

Implement adapters that offset time to the past consistently.

These adapters have a method with_delay(time), which returns the actual pull time that would result from the given pull time. I.e. the adapter subtracts it's offset (in case of a fixed offset as in DelayFixed).

The scheduler takes these altered times into account when crawling dependencies. This means that a coupling can still crash with cyclic dependencies if the offset is too small. The user must therefore be somehow informed about time steps of models to choose a sensible offset.

As an example, Formind could offset by one year if it is clear the mHM and Formind "rendevouz" at Jan 1st.
If the rendevouz is not guaranteed and mHM has a step of one day, an offset of one year plus one day should work.

  • Make time offset adapter a marker interface
  • Adapter for fixed time offset (possible from metadata?)
  • Adapter for offset to a previous pull time
  • Adapter for constant extrapolation (i.e. last push)

Fixes #80 (closed)

Edited by Martin Lange

Merge request reports