Authors:
(1) Toshit Jain, Indian Institute of Science Bangalore, India;
(2) Varun Singh, Indian Institute of Science Bangalore, India;
(3) Vijay Kumar Boda, Indian Institute of Science Bangalore, India;
(4) Upkar Singh, Indian Institute of Science Bangalore, India;
(5) Ingrid Hotz, Indian Institute of Science Bangalore, India and Department of Science and Technology (ITN), Linköping University, Norrköping, Sweden;
(6) P. N. Vinayachandran, Indian Institute of Science Bangalore, India;
(7) Vijay Natarajan, Indian Institute of Science Bangalore, India.
We now list and describe the various functions that are implemented in the pyParaOcean plugin and made available as Paraview filters. Figure 2 and the video in the supplementary material show the different filters in pyParaOcean and the user interface.
Volume rendering is a natural choice for visualizing the 3D scalar fields in the ocean data because it provides a quick overview of the distribution (Figure 2(D)). Animation with a fixed transfer function allows visualization of the scalar field over time. The volume rendering filter within Paraview can be tuned to visualize subvolumes of interest by choosing a interval within the range of the scalar field. Specifically, an isovolume containing the mean salinity/temperature value within the spatial region of interest or an isovolume that captures high salinity water provide a good overview of the 3D field.
Field lines, including streamlines and pathlines, provide a good overview of a 3D vector field. pyParaOcean provides a filter that implements multiple seeding strategies for initiating the computation of streamlines and pathlines, and allows the user to choose one. Seeds generated using this filter are fed as input to the custom source streamline integrator or particle tracer in Paraview (Figure 2(G,H)).
Streamlines are a set of integral curves tangent to the velocity at every point in space. They portray instantaneous lines of flow that characterize important oceanographic phenomena such as eddies, currents, and filaments. Pathlines are tangential to the velocity as it evolves over time. A pathline describes the path a massless virtual particle would take beginning from the seed positioned at a particular timestep. Pathlines are useful for understanding transport, such as salinity advection and debris collection. They are more compute-intensive than streamlines.
The seeding filter controls the number of seeds and how the domain is sampled for seed placement, see Figure 2 (C)). Sampling can be (a) uniform, (b) weighted by flow speed, curl, vorticity, or the Okubo-Weiss criterion [Oku70], or (c) weighted by user-defined scalar fields that are computed earlier in the pipeline. A user may tune the line integration parameters and the sampling options to reduce visual clutter, focus the computation to regions of interest, maximize coverage of the domain, and highlight interesting flow features. For example, rendering wispy streamlines in regions of high vorticity produces closed loops around eddies with some temporal coherence across frames (Figure 7).
Additionally, each component of the vector field to which the seeding filter is applied can be specified as a separate scalar field. This makes it easier to perform other downstream operations like ignoring the vertical velocity component or adjusting the scale along each axis.
This filter facilitates heat and mass transport queries on ocean data with an interactive seeding extension to the particle tracer from Paraview. It displays a linked parallel coordinates plot, where the user can brush to select ranges of scalars like temperature and salinity and hence restrict the seeding to isovolumes. Points sampled from these subvolumes serve as seeds for pathline computation (Figure 2(H)).
This filter enables the user to inspect a vertical column of the ocean, specified by a longitude and latitude pair. It drops a “needle” into the ocean and samples points along this line at different values of depth (Figure 2(D)). It displays a linked parallel coordinates plot that gives a depth profile of all scalars sampled along the vertical column. A line plot view of the chosen scalar against depth (Figure 2(E)) is displayed. Optionally, the scalar field mapped to a vertical slice at the chosen longitude is shown in the volume render window. The user can select and highlight a subset of the points in the vertical column from the parallel coordinates plot (Figure 2(F)), and track them across time in all views. This is useful for studying vertical mass transport, especially upwelling or downwelling via Ekman transport [Sar13] in eddy centres, and to study the depression of isotherms indicating redistribution of heat [KNR∗ 07]. Studying these changes is important to understand marine life as they drive phytoplankton bloom and nutrient transport
Several algorithms have been devised for reliable and automatic identification of eddies [AHG∗ 19]. McWilliam [McW90] developed a 2D method using vorticity ω as a physical parameter, whose local minima and maxima locate the centres of potential eddies and the values of vorticity in the neighborhood relative to the centre helps determine the eddy boundary. Okubo [Oku70] uses a special Okubo-Weiss parameter based on shear and strain deformation and the vertical component of vorticity to measure rotation and hence identify potential eddies. A circularity criterion may be applied after the Okubo-Weiss criterion to improve the results [WHP∗ 11]. Sea surface height and velocity profile have also been used for eddy detection [MAIS16]. The winding angle criterion, together with a streamline clustering, helps identify eddies in 3D [FFH21].
The eddy identification filter in pyParaOcean focuses on mesoscale eddies [AMM17] . It uses only the velocity field in individual time steps and does not compute any derived fields. This 3D detection scheme can be applied in parallel across timesteps and across depth slices since the vertical velocity is not used.
Flow speed of swirling fluid decreases radially inwards towards the centre of rotation. The filter inspects local minima of the flow speed to identify potential eddy centres. Vertical velocity is ignored to discount the motion of upwelling or downwelling in vortex cores, thus enhancing the corresponding flow minima. Noise and less significant minima are removed by applying topological simplification directed by the notion of persistence [TFL∗ 17]. Next, the method employs an approximation of the winding angle criterion [FFH21] by checking if the streamline crosses into all four quadrants of an XY plane centred at the minimum [GEP04]. This method is more effective in regions with relatively stationary eddy centres like the Red Sea and Gulf of Aden. Figure 3 shows the set of potential eddy centres identified in the Red Sea using this filter.
Streamlines seeded near the core of an eddy form spirals or closed loops. The boundary of an eddy is determined using a binary search along the radial axes. The search helps locate the seed that is furthest from the eddy centre but results in a spiral or nearly closed loop streamline. The filter displays all streamlines originating near the detected vortex core and hence presents a 3D profile of the eddy (Figure 2(I)). It may be extended to support other eddy detection methods [MAIS16, FFH21] that may be selected via the interface.
Oceanographers are often interested in water parcels that transport mass or heat. These are moving volumes of water with distinctive temperature or salinity characteristics. The surface front tracking filter computes connected components of the boundary of a scalarfield isovolume (called the surface front), tracks them over time, and generates a track graph that summarizes movement of all surface fronts. A subset of tracks extracted from this graph are rendered for visual analysis. Surface fronts have been shown to be a good representative of high salinity water masses [SDVN22]. It has been used to trace the path of the high salinity core (HSC) entering into the Bay of Bengal from the Arabian Sea (Figure 2(J)).
This paper is available on arxiv under CC 4.0 license.