How to synchronize Timestamps

Learn how to synchronize timestamps of two Geo Time Series and copy the locations from one to the other.

Thinking in WarpScript #13: Time synchronization

Imagine that we have a reference series without geolocation (called "reference") and a second series with geolocalized data (called "dummy").

We would like to copy the location of data points of the second series to the reference series, but there are no timestamps in common.

In fact, I encountered this use case and the JavaScript implementation took dozens of lines of code. Of course, you can do that easily with WarpScript with just (Spoil Alert) a single line of code.

Discover how to detect a sequence of values in WarpScript

Random data generation

At first, for this blog post, we will generate random data:

NEWGTS 'reference' RENAME
1 10 <% 
  'index' STORE
  NOW RAND 100 * STU * - TOLONG // timestamp
  NaN NaN NaN // lat long elevation
  $index TOSTRING // value
  ADDVALUE
%> FOR 'reference' STORE
NEWGTS 'dummy' RENAME
1 100 <% 
  'index' STORE
  // generate fake data
  NOW RAND 100 * STU * - TOLONG // timestamp
  48.2 RAND + -4.3 RAND + NaN // lat long elevation
  $index // value
  ADDVALUE
%> FOR  'dummy' STORE
All you need to know about getting help from Warp 10 community

The algorithm

The data process consists on:

  • Fill the "dummy" GTS with timestamps coming from the "reference" GTS
  • Interpolate values and locations for those new data points
  • Copy the geolocation from "dummy" to "reference"
$reference $dummy filler.interpolate FILL COPYGEO

That's all.

Final result: the timestamps on a map

To sum up, the full code sample is here: https://snapshot.senx.io/0005a003e8f911c3-0-4-4858676921776908

More info about:

filler.interpolate, FILL, COPYGEO