CZML Live Stream Data

1. A concise explanation of the problem you’re experiencing.

Satellite is glitchy/jumpy when ingesting CZML data into Cesium - see attached video

2. A minimal code example. If you’ve found a bug, this helps us reproduce and repair it.

I’m just going to focus on the CZML parameters below. If I missed anything that maybe important, please let me know. I set the availability interval for a quite a while.

I am also sending this CZML packet data below every time the external data is being updated which is approximately every 1 seconds.

Clock.currentTIme = currentTime

Clock.Step = “SYSTEM_CLOCK_MULTIPLIER”;

Clock.multiplier = 1;

Orientation.interpolationAlgorithm = “HERMITE”;

Orientation.interpolationDegree = 3;

Orientation.referenceFrame = “FIXED”;

Orientation.extrapolationType = "HOLD ";

Orientation.epoch = Ces_rt; (**This is just the start time of the availability interval)

List dbQuat = new List();

dbQuat.Add(ATD_QEST_CBI2BDY0);

dbQuat.Add(ATD_QEST_CBI2BDY1);

dbQuat.Add(ATD_QEST_CBI2BDY2);

dbQuat.Add(ATD_QEST_CBI2BDY3);

Position.interpolationAlgorithm = “HERMITE”;

Position.interpolationDegree = 3;

Position.extrapolationType = "HOLD ";

Position.referenceFrame = “FIXED”;

Position.epoch = Ces_rt; (**This is just the start time of the availability interval)

dbPos.Add(EPH_POS_CBIX);

dbPos.Add(EPH_POS_CBIY);

dbPos.Add(EPH_POS_CBIZ);

**When I add a time-value with the quaternion and position data, the Cesium animation does not seem to jump but the satellite lags behind significantly.

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

Would like a smooth transition in the animation when ingesting live data into Cesium.

How does the live flight tracker accomplish this?

Please let me know if you have questions - thank you!

4. The Cesium version you’re using, your operating system and browser.

Chrome: Version 71.0.3578.98 (Official Build) (64-bit)

Cesium 1.52

Cesium_Video.mp4 (1.09 MB)

What is the correct way stream almost real-time data in regards to the czml JSON parameters? Did I make a mistake in setting those parameters?

Thank you!

To have smooth transitions the next data point must be available to Cesium before it is applicable. Failure to do so forces Cesium to jump to the new point to maintain the “realtime” view because the new data is actually in the past. You can either have your source generate data slightly in the future if this is a simulation or run the Cesium app on a time-delay.

Hope that helps.

Scott

Hi Scott,

Thank you for your help.

Some questions:

Would I need to update the currentTime property in the first CZML packet continuously?

Would I need to update the time-tagged Position and Quaternion and or the Position/Quaterion.Epoch in the second CZML packet?

Thank you!