Orbit Segments through CZML


I am looking for a little guidance. I currently have the ability to draw orbits in two different reference frames inside of CESIUM (inertial or fixed) depending on user selection. I would also like the ability to draw essentially different color coded segments on these orbits based on events (such as when the spacecraft is umbra or direct sun). Because the user can select the reference frame I have been running into some difficulty into figuring out if there is a way to do this across both reference frames.

I am also using CZML to generate my objects and their orbits. I have explored the Path route in the CZML but that does not provide the functionality that I want. From what I implemented it would color code the whole orbit based on the state (umbra/penumbra) switching between states. I would like the individual segments to be shown at all times. Is this possible and any suggestions on how to proceed forward?


Eventually, we definitely want Path to be able to do this. For now, your best bet is to specify a static polyline of the color you want for each orbit segment. You lose the ability to have lead/trail times, but you can still show/hide the segment so it’s only visible for the interval that you care about.


I have been trying a couple of different ways to work around this issue. One way that I thought I could work around the issue is to draw multiple spacecraft for the segments and times that I need. However I ran into a problem with my first attempt.

One of the things that i want to be able to do is show the segments across a specific interval of time where the data for a particular segment might only exist for a small portion of that interval. An example of this is a bold path when access occurs over the course of an orbit. There would be two objects, one would only have data for the access time period the other would be the entire orbit but their availability times would be the same. That way I could see both tracks during that available window.

If I set up the CZML described in the example above I see some very odd behavior. Assuming that my interval is in the middle of the available time, I get two line streaks inside of CESIUM. I have determined that the first line streak is the due to the time delta from the Availability start time to the ephemeris start time and the second streak is due to the time delta from ephemeris end to availability end time. These streaks seem to appear random directions but they are easy to reproduce.

My questions are as follows:
1) Why is this occurring?
2) Is there any way to get around this?
3) Any other suggestions for what I am trying to do?


I did something similar but not using czml. www.agsattrack.com checkout the code on there


If I am following your code correctly it looks like you are drawing everything with primitives. One thing that I couldn't find quickly is if you are drawing things in the INERTIAL or FIXED frame. I am guessing if you are using primitives then you are doing everything in FIXED. Maybe this is where my misunderstanding is. My problem is I want to do something similar but my data and my view is in the INERTIAL frame.