Jet-stream core line detection ============================== .. _fig_jetcore_detection_actor: .. figure:: ./figs/jetcore_detection/actorref_jetcore_actor.webp :figwidth: 100% :align: left :alt: The jetcore detection actor showing jetcores over the North Atlantic. Jetcore detection actor with a transfer function. Description ----------- The jetcore detection actor detects and visualizes jet-stream core lines in gridded data. It is a specialization of the :doc:`isosurface intersection actor ` that implements the algorithm described in `Kern et al. (2018) `_. Jet-stream core lines are defined as the intersection of two zero-isosurfaces of wind-speed derivatives: the cross-wind derivative (∂Vs/∂n = 0) and the vertical derivative (∂Vs/∂z = 0). The isovalues are fixed at zero and cannot be changed by the user. The resulting line geometry can be filtered by properties such as line length, angle, pressure elevation change, and a Hessian-based validity criterion. * Core lines are the intersection of ∂Vs/∂n = 0 and ∂Vs/∂z = 0 isosurfaces. * Filters allow to restrict results to physically plausible jet-stream segments. * Core lines can be coloured by a constant colour, by pressure or by a variable. * Arrow heads can be rendered to indicate the flow direction along the core. * Drop lines can be rendered below the core lines to improve spatial perception. Required input variables ------------------------ The actor requires several wind-speed derivatives as input. All of these must be set up as derived variables. See the :ref:`list of available derived variables` for details on how to configure them. The following variables must be assigned in the actor properties: * **∂Vs/∂n**: cross-wind (normal) derivative of wind speed; first detection surface. * **∂Vs/∂z**: vertical derivative of wind speed; second detection surface. * **∂²Vs/∂n²**: second cross-wind derivative; used in the Hessian filter. * **∂²Vs/∂z²**: second vertical derivative; used in the Hessian filter. * **∂²Vs/∂n∂z**: mixed partial derivative; used in the Hessian filter. * **Eastward wind (u)**: used for angle and pressure-difference evaluation. * **Northward wind (v)**: used for angle and pressure-difference evaluation. Filtering --------- The actor inherits the line-length and variable-value filters from the isosurface intersection actor and adds several jetcore-specific filters. Line length ~~~~~~~~~~~ Core line segments shorter than the configured minimum length (in km) are discarded. This removes spurious short fragments that do not correspond to coherent jet-stream structures. Variable value threshold ~~~~~~~~~~~~~~~~~~~~~~~~ An additional scalar variable can be specified. Segments whose variable value does not exceed the threshold are removed. A typical use is to filter by wind speed so that only segments in regions of sufficiently strong flow are kept. Hessian eigenvalue (Numerics) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Hessian matrix H\ :sub:`N` of wind speed in the n-z-plane is evaluated at each core line vertex using the three second-derivative variables. For a true local maximum both eigenvalues must be negative (λ\ :sub:`i` < 0). Because eigenvalues are computed on a finite grid and tend to oscillate slightly, a softening threshold β is introduced: a vertex is accepted if all eigenvalues satisfy λ\ :sub:`i` < β. The *Hessian threshold* β (configured under *Numerics*, units × 10\ :sup:`-9`) defaults to 0 (strict local maximum). A small positive value relaxes the criterion and reduces false rejections at the cost of accepting marginally non-maximal points. See `Kern et al. (2018) `_ for further details. Angle threshold ~~~~~~~~~~~~~~~ The angle filter evaluates the bending of the core line at each vertex using three consecutive points p1, p2, p3 spaced apart by the evaluation distance specified further below. If the turning angle at p2 (the angle between the vectors p1-p2 and p3-p2) exceeds the threshold, that segment is discarded. The default is 55°. Lowering the threshold removes more sharply curved segments. Pressure elevation change ~~~~~~~~~~~~~~~~~~~~~~~~~ Core line segments that change pressure rapidly over a short horizontal distance are likely artefacts. The *pressure elevation change* filter rejects segments where the pressure difference along the evaluation distance exceeds the configured value (default: 10 hPa). Together with the evaluation distance setting, this limits the permissible vertical slope of detected cores. Evaluation distance ~~~~~~~~~~~~~~~~~~~ Sets the along-line distance (default: 50 km) over which the angle and pressure-difference filters are evaluated. Larger values average the orientation over a longer segment and reduce sensitivity to small-scale undulations. Appearance ---------- Colour, thickness, and drop-line options follow the same scheme as the :doc:`isosurface intersection actor `. In addition, enabling **Arrow heads** places small arrow heads along the core lines to indicate the along-jet direction of travel. References ---------- * Kern, M., Hewson, T., Sadlo, F., Westermann, R., & Rautenhaus, M. (2018). Robust Detection and Visualization of Jet-stream Core Lines in Atmospheric Flow. *IEEE Transactions on Visualization and Computer Graphics*, 24(1), 934–943. https://doi.org/10.1109/tvcg.2017.2743989