NED File src/inet/visualizer/canvas/scene/GeoSkyViewCanvasVisualizer.ned

Name

Type

Description

GeoSkyViewCanvasVisualizer

simple module

Draws an azimuth/elevation “sky view” polar plot next to each observer node (typically a ground station using a StationaryMobility), showing where the target nodes (typically satellites) currently are in the observer’s sky. The center is the zenith (90 deg elevation), the outer rim is the horizon (0 deg); North is up and East is to the right (azimuth clockwise). Concentric rings mark elevations, the cardinal points (N/E/S/W) are drawn, and the band below elevationMask is masked translucently. Each visible target is a colored dot (optionally named, with a fading sky trail); targets below the horizon are hidden.

Source code

//
// Copyright (C) 2026 OpenSim Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//


package inet.visualizer.canvas.scene;

import inet.visualizer.base.VisualizerBase;
import inet.visualizer.contract.IGeoSkyViewVisualizer;

//
// Draws an azimuth/elevation "sky view" polar plot next to each observer node
// (typically a ground station using a `StationaryMobility`), showing
// where the target nodes (typically satellites) currently are in the observer's
// sky. The center is the zenith (90 deg elevation), the outer rim is the horizon
// (0 deg); North is up and East is to the right (azimuth clockwise). Concentric
// rings mark elevations, the cardinal points (N/E/S/W) are drawn, and the band
// below `elevationMask` is masked translucently. Each visible target is a
// colored dot (optionally named, with a fading sky trail); targets below the
// horizon are hidden.
//
// Look angles are computed from the geographic positions of the observer and the
// targets via the `IGeographicCoordinateSystem` given by `coordinateSystemModule`.
//
// @see ~GeoMapCanvasVisualizer, ~IGeoSkyViewVisualizer
//
simple GeoSkyViewCanvasVisualizer extends VisualizerBase like IGeoSkyViewVisualizer
{
    parameters:
        bool displaySkyView = default(true); // Display the sky view plots, enabled by default
        double animationSpeed = default(1); // Animation speed while targets move, value must be in the range (0, +inf)
        double zIndex = default(-10); // Determines the drawing order of figures relative to other visualizers

        string coordinateSystemModule; // Module path of the geographic coordinate system used to compute look angles
        string observerFilter @mutable = default("*"); // Which mobilities are observers (get a sky plot)
        string targetFilter @mutable = default("*"); // Which mobilities are targets (drawn in each plot)

        double plotRadius = default(70); // Radius of the sky plot in pixels (elevation 0 at the rim, 90 at the center)
        double plotOffsetX = default(inf); // Horizontal offset (pixels) of the plot's upper-left corner from the observer icon; infinite (the default) detaches the plots from the icons and tiles them in a grid below the module's viewport
        double plotOffsetY = default(inf); // Vertical offset (pixels) of the plot's upper-left corner from the observer icon; infinite (the default) detaches the plots from the icons and tiles them in a grid below the module's viewport
        double elevationMask @unit(deg) = default(0deg); // Minimum usable elevation; the band between it and the horizon is masked

        string backgroundColor = default("#1a2a40"); // Sky disc fill color
        double backgroundOpacity = default(0.15); // Sky disc fill opacity
        string ringColor = default("#888888"); // Elevation ring and graticule color
        double ringLineWidth = default(1); // Elevation ring line width
        string maskColor = default("#808080"); // Fill color of the below-minimum-elevation mask
        double maskOpacity = default(0.25); // Opacity of the below-minimum-elevation mask
        string cardinalColor = default("#888888"); // Color of the N-S/W-E lines and the N/E/S/W labels
        string labelColor = default("black"); // Color of the title and elevation labels

        string targetColor = default("dark"); // Target dot color, a list of colors or a color group name (e.g. dark, light)
        double targetRadius = default(3); // Radius of a target dot in pixels
        double lowElevationOpacity = default(0.35); // Opacity of target dots between the horizon and elevationMask
        bool displayLabels = default(true); // Display the target name next to its dot, enabled by default
        bool displayTrails = default(true); // Display a fading sky trail of each target's recent path, enabled by default
        int trailLength = default(100); // Number of sections in a sky trail
        string trailLineStyle = default("solid"); // Sky trail line style (solid, dashed, dotted)
        double trailLineWidth = default(1); // Sky trail line width

        @class(GeoSkyViewCanvasVisualizer);
        @display("i=block/app");
}