Converting entity position from inertial to fixed coordinates within Cesium

I have satellite data over time that is provided to Cesium in ECF coordinates via CZML. It includes a path as well. Naturally, being a satellite track, this looks odd in ECF coordinates.

Is there a way to update the data, within Cesium after loading the CZML, to show the path and display the trajectory in ECI coordinates? I would like to avoid recreating the entire conversion process externally.

Found a way to do this. Not great - I'm using data that isn't listed in the API, but it seems to work, at least for now...

for(var t_index=0; t_index<entity._position._property._times.length; ++t_index) {
  var temp_position = entity._position.getValueInReferenceFrame(entity._position._property._times[t_index],Cesium.ReferenceFrame.INERTIAL);
  entity._position._property._values[3*t_index] = temp_position.x;
  entity._position._property._values[3*t_index+1] = temp_position.y;
  entity._position._property._values[3*t_index+2] = temp_position.z;
entity._position._referenceFrame = Cesium.ReferenceFrame.INERTIAL;

Hi there,

You have the right idea! You should be able to modify the reference frame of the PositionProperty using the public API:

var entities = dataSource.entities.values;

for (var i = 0; i < etities.length; i++) {

var entity = entities[i];

entity.position.referenceFrame = Cesium.ReferenceFrame.INERTIAL;



See the Visualizing Spatial Data tutorial for more on entity properties and how they work.