Geertjan's Blog

  • February 7, 2014

James Webb Space Telescope on NetBeans

Geertjan Wielenga
Product Manager

Great screenshot by Sean Phillips, Duke's Choice Award winner, that provides a visualization of the James Webb Space Telescope Contact Analysis. It uses JavaFX 8 and NetBeans Platform 8 as its basis.

Join the discussion

Comments ( 3 )
  • Sean Phillips Sunday, February 9, 2014

    Technically it's a prototype but it is fully functional.

    The middle pane (green bars) is a Gantt like chart. The green represents any time where a Ground Station establishes Bi-directional contact with the spacecraft (simulated). All the contact information is stored in Contact Report files generated via simulation. These and other files are managed via custom file MIME Types and a custom NetBeans project type. This enables me to create a project action which scans the project for Contact Reports and builts the Gantt chart above.

    The Gantt chart is actually a custom JavaFX ScatterPlot with "enhanced" features. For instance if you hover over a data item in the Gantt it highlights it and provides a Hover bubble (shown) with additional information. This is just a label but you can put anything you want there with enough stacking trickery.

    The coolest thing in my opinion is that if you click on the data item an onClick handler uses the custom MIME type and the lookup to open the containing Contact Report file and jump to the line.

    3D render is handled by a custom MIME type and the MultiView support with WorldWind as the engine. It was a plugin I already had written for other efforts.

  • Sean Phillips Sunday, February 9, 2014

    This is just a protoype at the moment but it is fully functional.

    The middle pane is a custom JavaFX component that displays a Gantt style chart. The green bars represent any time a ground station makes bi-directional contact with the spacecraft. The Gantt chart is actually a custom scatterplot with some "enhanced" features. When you hover over a data item it highlights and hovers an additional information bubble. Clicking the data item opens the containing contact report file and jumps you to the data line in question. All contact info is simulated and output into distinct report files. Custom MIME types and a custom NB project type manage it all and allow me to CM the entire collection. The 3D is done using WorldWind.

  • guest Sunday, February 9, 2014

    It might also be interesting to note the performance: 150K data points in 14 different files loaded, parsed, sorted. About half of those are then added as XYChart nodes to the "Gantt" chart and then rendered. All in about 15 seconds on my laptop.

    I use a Stream to parse and reduce the individual file lines that the NetBeans Platform FileObject type returns to me. Then a JavaFX concurrent <Task> type converts each type to a XYChart.Series type with the appropriate custom DataNode. The completed chart is then added to the scene and embedded into a TopComponent via a JFXPanel.

    I've been playing with a way to convert the code that converts the data points to XYChart.Series from an Iterative nested for each loop to a parallel stream. This would leverage all the cores simultaneously and would dramatically improve render time.

    Once converted and rendered on screen performance is great.

Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.