When we demo INTViewer, we typically use a laptop. We go to a customer site, project INTViewer on a big screen and open a few datasets to showcase the product. However, these short demos don’t really do justice to the capabilities of this software. While some customers will use the portability of INTViewer to present their data, others will use INTViewer on a workstation, with multiple monitors. And instead of opening a handful of windows, they will open a few dozen.
The typical use case for opening a large number of windows is when you want to monitor the multiple steps of a processing workflow. In such a use case where datasets are compared, it’s important that all visualizations share the same settings. INTViewer makes it really easy to open dozens of datasets at once. You can select a directory and open in one click all the datasets within that directory. But this is not where INTViewer’s productivity stops. Automatic synchronization facilitates the management of all these windows.
There are three types of synchronization: window, data selection, and layer. When you synchronize windows, you make sure that all windows use the same scale — when you zoom, all windows zoom at the same time; when you move the cursor in one window, the cursor shows the equivalent traces in all windows; and when you need to change annotations and add a header to the horizontal axis, this header is added automatically to all windows. Window synchronization is enabled by default so that geoscientists can focus on comparing their data, not on configuring their software.
Synchronizing Data Selections
When you control the multiple processing steps of one dataset, you need to make sure that you are comparing the same data slices. INTViewer offers multiple options to decide how to synchronize data selections as you navigate through your data. For example, when you open several volumes at once, they will all show the same INLINE slice by default. Each time you press the + button in the toolbar, the INLINE slice shown will change automatically, for all volumes.
You can also opt to show open different slices of the same volume. The offset between slices will also be kept as you navigate through your volume. And it’s not just XSection windows that synchronize their selection. 3D and Map windows also update when you change the slice of data you are visualizing.
The option to synchronize layers is not enabled by default, and it tends to be used only by power users. For example, when you visualize two datasets or two slices of the same dataset, you might want to synchronize their display attributes so that the same color bar is used by all visualizations, in one click. But it’s not just color bars that can be synchronized. The control over which attributes automatically synchronize is fine-grained, allowing a wide range of automatism.
Synchronization is a feature that has been built in to INTViewer since the beginning. Layer synchronization is the lesser used option of all 3 synchronization types. I found that many users tend to apply the same “profiles” to multiple layers instead of synchronizing them.
One other reason why INTViewer users might open a large number of datasets at the same time is the same reason why you have dozens of browser windows open right now: You are multitasking. Even within the same customer survey, you might work on multiple areas or multiple workflows. You could open multiple instances of INTViewer for each task, but there is a better way. INTViewer 2018 introduces the concept of grouped windows. By grouping windows, you isolate a logical group of windows from the others, making sure they only synchronize with windows from the same group.
Creating window groups is actually quite simple, and if you are a regular user of INTViewer, you already know how to do this. Just combine the plot of two windows into one, and you have a group. Isolating these two windows from the other windows on your desktop is then just one checkbox away.
Combining windows does affect the layout of your visualization. If combining windows is not a practical option, you can also create groups from the Desktop window. Pick several windows, right-click, and group them into a so called “window folder”.
The same concept is available when you need to limit the synchronization of layers to a logical set. Just like windows, layers can be grouped in folders. I have often seen layer folders used as part of custom plugins or scripts creating layers automatically. INTViewer is a platform, and its synchronization features are accessible from Python scripts and Java plugins. Developers use layer folders programmatically to setup on behalf of the user how multiple visualizations will behave once created.
Synchronization is a powerful mechanism within INTViewer. It “just works” by default, but it can be customized when your workflow demands it.