Skip to main content

Visualizing NASA Ground System Data Products using JavaFX and the NetBeans Platform (Part 2)

Posted by sean.mi.phillips on November 20, 2013 at 9:23 AM PST

In the previous post in this mini-series regarding the work I do on NASA Ground Systems, I showed some screenshots demonstrating data visualization.  The basic tech stack involves combining the NetBeans Platform with custom JavaFX views. This pattern provides some very useful "At-a-Glance" (AoG) displays associated with daily data product generation.

AoG is typically appropriate, especially when in operations where the daily procedures are mostly concerned with a confirmation type validation.  However something more interactive is needed by analysts who's weekly job is to drill down into the data products to explain phenomenons and make forward predictions.  Again a combination of the NetBeans Platform and JavaFX supports this nicely.

For example custom State Vector data arrives daily from upstream data servers to the Mission Operations Control Room. The below image demonstrates the NetBeans Platform providing an encapsulated daily product view (aka product file). 

image

Positional State Vector

The JavaFX scene has a customized Checkbox ListView which updates the scene's scatterplot automatically when checked.  Just check the box of the data item you want and it automagically adds the data series to the scatter plot.

image

Velocity State Vector

It's valuable for both operators and analysts to compare and contrast different data vectors together.

image

Complete State Vector Together

However this is problematic due to axis scale.  So the analyst needs the ability to drill down.  Sure no problem, JavaFX makes adding custom action handlers a breeze.  Here JavaFX allows me to add various Mouse event handlers such as pressed, click, drag etc on ANYTHING including the chart or axes:

image

Zooming In

A simple combo of event handlers for OnPressed and OnDrag allow us to simulate a "brushing" of the chart. Simply tie some animation or visual, in this case a simple Rectangle object, to the event handler and your user will be happy.

image

Better but let's go deeper!  Drill Baby Drill!

image

Detailed zooming

Which takes us down to the heart of the matter.  So the analyst might see the intersection point in time and say:

image

Hey... what's that?

And then hover over one of the data points at the intersection, leveraging the JavaFX support for mouse hover events on everything, even Chart Nodes, and say:

image

Hey... Take me there!

At which the JavaFX Data Node click handler hands some info to the NetBeans Platform.  Now the NetBeans Platform takes care of everything nicely switching the TopComponent view from the JavaFX scene to the raw data view.  It even automatically jumps the cursor to the exact data row and highlights it for you!

image

NetBeans Platform ties it all together!