Strange Error when loading my CZML file

I am working on getting a generator for a CZML file working and I am running into issues.

I am getting a very odd error. https://gist.github.com/wgaylord/571d8f8998273663ed1444a44ea576a4
(I linked it because it contained links and as a ‘new user’ I can only have 2 links per post)

I am unable to attach the CZML file because I am a ‘new user’ on the new forums.
So I uploaded it as a gist on github. https://gist.github.com/wgaylord/e91bb2ba461dfa1abc9083438949aead

Welcome to the Cesium community @chibill!

Thanks for pointing out the issue with posting errors that contain links, I’ve lifted this limitation so you should be able to post the errors normally now.

It looks like one of the timestamps in your CZML file may be invalid. You could try running CesiumJS with the unminified version to see a more descriptive stack trace and perhaps the browser debugger to see exactly which CZML packet is causing this issue.

Okay. I will try it. Have to make a simple webpage with the unminified version instead of just using the viewer thats hosted by Cesium to test.

And it very well could be a timestamp issue. As Cesium uses a different format then my data source. I might have an error in my string used to convert my datatime object (python) to the string version. (My source is the api over on Satnogs. Working on rewriting my Network Monitor for their network. Current version is https://satnogs.jwgtechs.com )

That looks pretty cool - what’s the data source you’re using there?

Another way to debug this would be to just try to test it in small pieces. For example, you can take this small CZML snippet and insert your own timestamps there to see if that is indeed the issue: https://sandcastle.cesium.com/index.html?src=CZML%20Point%20-%20Time%20Dynamic.html

I am using data from https://satnogs.org api. Its ran by https://libre.space I actually have a station on the network and the map shows all satellites that have on going observations and what ground station is listening to it.

Yea. I have an older version that works. (That current map.) I can look into its generating code and see if i made a mistake. This new czml file was generates from my work at doing some performance improvements.

Using the link you provided I found the following error by putting one of my data objects into it.

DeveloperError: julianDate is required.
Error
at new DeveloperError (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:83:13)
at Function.JulianDate.addSeconds (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:24158:13)
at convertDate (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:188743:23)
at mergeNewSamples (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:188759:21)
at SampledProperty.addSamplesPackedArray (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:189382:5)
at SampledPositionProperty.addSamplesPackedArray (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:189803:20)
at processPositionProperty (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:191575:16)
at processPositionPacketData (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:191725:7)
at Array.processPosition (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:192196:7)
at processCzmlPacket (https://sandcastle.cesium.com/CesiumUnminified/Cesium.js:195214:28)

The JS I am running is the following.

var czml = [
  {
    id: "document",
    name: "CZML Point - Time Dynamic",
    version: "1.0",
  },
  {
        "id": "NEPALISAT-12020-08-05T03:38:31+00:00",
        "name": "NEPALISAT-1",
        "show": true,
        "billboard": {
            "image": "static/sat.png",
            "scale": 0.5
        },
        "position": {
            "cartographicDegrees": [
                0,
                -88.8808681034759,
                -12.599177025755266,
                390904.8906705961,
                60,
                -86.56043224954341,
                -15.613897584372236,
                391810.72720712016,
                120,
                -84.16482567664488,
                -18.59628091548529,
                392803.57187422074,
                180,
                -81.67684439243806,
                -21.538714009638152,
                393871.395685496,
                240,
                -79.0779953171005,
                -24.432782847522713,
                395000.8693366054,
                300,
                -76.34833519544604,
                -27.26908390097724,
                396177.5867281917
            ],
            "interpolationAlgorithm": "LAGRANGE",
            "interpolationDegree": 5,
            "eproch": "2020-08-05T03:38:31Z"
        },
        "path": {
            "show": {
                "interval": "2020-08-05T03:38:31Z/2020-08-05T03:44:09Z",
                "boolean": true
            },
            "width": 2,
            "material": {
                "solidColor": {
                    "color": {
                        "rgba": [
                            0,
                            255,
                            0,
                            255
                        ]
                    }
                }
            },
            "leadTime": 100000,
            "trailTime": 10000
        }
    },
];

var viewer = new Cesium.Viewer("cesiumContainer", {
  shouldAnimate: true,
});

viewer.dataSources.add(Cesium.CzmlDataSource.load(czml));

Looks like the missing date is the epoch , it’s misspelled as eproch in your example.

I also needed to add an availability at the top level so the timeline start/stop are set up correctly.

This is super cool, I hadn’t heard about this project! Does your base station track only satellites registered in the network, or would it track any satellite in range?

Ah of course it would be something simple like that.

Stations on the network run observations which are a pass of a satellite that is in the database https://db.satnogs.org where it records the observation using an SDR and uploads it back to the site. An example of an observation is here. https://network.satnogs.org/observations/2654357/ this was of ons of NOAAs polar orbiting weather satellites.

1 Like

Question is there a setting I need to enable to get it to possibly output which CZML Packet is causing the issue? In the debugger in the console it doesn’t show any more useful information other then the normal Developer Error. I am still running into “julianDate is required.” issues. And I am not sure where to look next.

There isn’t, but I bumped this GitHub issue saying this would be useful to have: Better error handling for malformed CZML · Issue #6252 · CesiumGS/cesium · GitHub.

I found the error by inserting a few console.log() statements in the source code to output the last packet read.