MSUI (Mission Support User Interface)

The executable for the user interface application is “msui”. A short description of how to start the program is given by the –help option. The program should open the main window of the user interface, from which you can open further windows, including top view, side view and so on.

Configuration for the user interface is located in “msui_settings.json”. In this file, you can specify, for instance, the default WMS URLs for the WMS client, the size of the local image cache (the MSUI caches retrieved WMS images to accelerate repeated retrievals), or the predefined locations that the user can select in the table view.

A few options influencing the appearance of the displayed plots and flight tracks (colours etc.) can be set directly in the user interface (top view and side view).

HINT Changes Version 11

We have removed the fs library and the conda-forge package fs_filepicker by version 11. Internally, we are now using Pathlib and os.path.

The change does not affect directories that use ~ to represent the home directory. But we have dropped support for FS_URLs.

Configuration of MSUI

The settings file msui_settings file includes configuration settings central to the entire Mission Support User Interface (command: msui). Among others, define

  • available map projections

  • vertical section interpolation options

  • the lists of predefined web service URLs

  • predefined waypoints for the table view

If you don’t have a msui_settings.json then default configuration is in place.

Store this msui_settings.json in a path, e.g. “$HOME/.config/mss”

The file could be loaded by the File Configuration dialog or by the environment variable MSUI_SETTINGS pointing to your msui_settings.json.

/$HOME/.config/msui/msui_settings.json


{
    "data_dir": "~/mssdata",
    "filepicker_default": "default",

    "import_plugins": {
        "FliteStar": ["fls", "mslib.plugins.io.flitestar", "load_from_flitestar"],
        "Text": ["txt", "mslib.plugins.io.text", "load_from_txt"]
    },

    "export_plugins": {
        "Text": ["txt", "mslib.plugins.io.text", "save_to_txt"],
        "KML": ["kml", "mslib.plugins.io.kml", "save_to_kml"],
        "GPX": ["gpx", "mslib.plugins.io.gpx", "save_to_gpx"]
        },


    "layout": {
       "topview": [963, 702],
       "sideview": [913, 557],
       "tableview": [1236, 424],
       "immutable": false
     },

    "locations": {
        "EDMO": [48.08, 11.28],
        "Hannover": [52.37, 9.74],
        "Hamburg": [53.55, 9.99],
        "Juelich": [50.92, 6.36],
        "Leipzig": [51.34, 12.37],
        "Muenchen": [48.14, 11.57],
        "Stuttgart": [48.78, 9.18],
        "Wien": [48.20833, 16.373064],
        "Zugspitze": [47.42, 10.98],
        "Kiruna": [67.821, 20.336],
        "Ny-Alesund": [78.928, 11.986]
    },

    "predefined_map_sections": {
        "00 global (cyl)": {
            "CRS": "EPSG:4326",
            "map": {
                "llcrnrlon": -180.0,
                "llcrnrlat": -90.0,
                "urcrnrlon": 180.0,
                "urcrnrlat": 90.0
            }
        },
        "01 SADPAP (stereo)": {
            "CRS": "EPSG:77890290",
            "map": {
                "llcrnrlon": -150.0,
                "llcrnrlat": -45.0,
                "urcrnrlon": -25.0,
                "urcrnrlat": -20.0
            }
        },
        "02 SADPAP zoom (stereo)": {
            "CRS": "EPSG:77890290",
            "map": {
                "llcrnrlon": -120.0,
                "llcrnrlat": -65.0,
                "urcrnrlon": -45.0,
                "urcrnrlat": -28.0
            }
        },
        "03 SADPAP (cyl)": {
            "CRS": "EPSG:4326",
            "map": {
                "llcrnrlon": -100.0,
                "llcrnrlat": -75.0,
                "urcrnrlon": -30.0,
                "urcrnrlat": -30.0
            }
        },
        "04 Southern Hemisphere (stereo)": {
            "CRS": "EPSG:77889270",
            "map": {
                "llcrnrlon": 135.0,
                "llcrnrlat": 0.0,
                "urcrnrlon": -45.0,
                "urcrnrlat": 0.0
            }
        },
        "05 EDMO-SAL (cyl)": {
            "CRS": "EPSG:4326",
            "map": {
                "llcrnrlon": -40,
                "llcrnrlat": 10,
                "urcrnrlon": 30,
                "urcrnrlat": 60
            }
        },
        "06 SAL-BA (cyl)": {
            "CRS": "EPSG:4326",
            "map": {
                "llcrnrlon": -80,
                "llcrnrlat": -40,
                "urcrnrlon": -10,
                "urcrnrlat": 30
            }
        },
        "07 Europe (cyl)": {
            "CRS": "EPSG:4326",
            "map": {
                "llcrnrlon": -15.0,
                "llcrnrlat": 35.0,
                "urcrnrlon": 30.0,
                "urcrnrlat": 65.0
            }
        },
        "08 Germany (cyl)": {
            "CRS": "EPSG:4326",
            "map": {
                "llcrnrlon": 5.0,
                "llcrnrlat": 45.0,
                "urcrnrlon": 15.0,
                "urcrnrlat": 57.0
            }
        },
        "09 Northern Hemisphere (stereo)": {
            "CRS": "MSS:stere,0,90,90",
            "map": {
                "llcrnrlon": -45.0,
                "llcrnrlat": 0.0,
                "urcrnrlon": 135.0,
                "urcrnrlat": 0.0
            }
        }
    },

   "new_flighttrack_template": ["Kiruna", "Ny-Alesund"],
   "new_flighttrack_flightlevel": 250,
   "num_interpolation_points": 201,
   "num_labels": 10,

   "WMS_request_timeout": 30,

   "default_WMS": ["http://www.your-server.de/forecasts"],
   "default_VSEC_WMS": ["http://www.your-server.de/forecasts"],
   "default_LSEC_WMS": ["http://www.your-server.de/forecasts"],

   "default_MSCOLAB": ["http://www.your-mscolab-server.de/"],
   "MSS_auth": {
                  "http://www.your-server.de/forecasts": "authuser",
                  "http://www.your-mscolab-server.de": "authuser"
                }
}

File I/O

The default data dir is predefined as a directory: ~/mssdata.

Battery Mode

When running on battery mode, many laptops automatically switch to a power-saving profile. This profile is designed to conserve battery life by reducing the performance of hardware components, including the CPU and GPU. Power-saving settings may throttle the CPU speed, limit background tasks, or prioritize energy efficiency over performance.

As a result, applications that require significant computational resources to initialize may take longer to start in battery mode. The MSUI during its startup sequence could experience noticeable delays. The reduced CPU frequency and limited power allocation in power-saving mode directly impact the speed at which the application can load and initialize its processes.

This behavior is particularly pronounced in scenarios where the system has aggressive power-saving configurations or when running on low battery levels, as these conditions further limit the system’s performance to extend runtime.

Additionally, different systems implement power-saving measures with varying levels of aggressiveness. Some devices might drastically reduce CPU clock speeds or disable processor cores to extend battery life, resulting in longer startup times for the MSUI.

MSColab Login and WWW-authentication

You can setup which accounts are used to login into MSColab and used for authenticate to the webservers.

Tip

When you use an old configuration having WMS_login, MSC_login, MSCOLAB_password defined on start of msui you get a hint that we can update your msui_settings.json file. We keep your old attributes in a bak file.

A dictionary by Server-Url and username provide the username for logging into our services (by http-auth request for WMS).

"MSS_auth": {
               "http://www.your-server.de/forecasts": "authuser",
               "http://www.your-mscolab-server.de": "your-email"
             },

All passwords are stored by using an OS-provided keyring after entering them the first time. Also the token required for accessing the MSColab server will be stored there. You can also use an OS-provided keyring app to set, change and delete passwords.

MSUI Flight track import/export plugins

MSS currently offers several import/export filters in the mslib.plugins.io module, which may serve as an example for the definition of own plugins. Take care that added plugins use different file extensions. They are listed below. The CSV plugin is enabled by default. Enabling the experimental FliteStar text import plugin would require those lines in the UI settings file:

"import_plugins": {
    "FliteStar": ["fls", "mslib.plugins.io.flitestar", "load_from_flitestar"]
},

More details about Plugins on Flight track import/export.

Web Proxy

If you are in an area with a very low bandwidth you may consider to use a squid web proxy and add those lines in your msui_settings pointing to the proxy server.

  "proxies": {
    "http": "http://yoursquidproxy:3128",
    "https": "http://yoursquidproxy:3128"
  }

Caching

For changing the default cache directory and behaviour to a named directory you can use these parameters. If you use shared directories you may have to solve access rights.

   "wms_cache": "/tmp/.cache/.mss/msui/wms_cache",
   "wms_cache_max_size_bytes": 20971520,
   "wms_cache_max_age_seconds": 432000,

Docking Widgets Configurations

Performance

MSS may also roughly estimate the fuel consumption and thus range of the aircraft neglecting weather conditions given a proper configuration file specifying the aircraft performance. Such a file may be loaded using the ‘performance settings’ button in Table View. The aircraft performance is specified using tables given in the JSON format. A basic configuration looks like the following file:

{
    "name": "DUMMY",
    "takeoff_weight": 91000,
    "empty_weight": 56000,
    "climb": [[0.00, 0.0, 0.0, 0.0, 0.0]],
    "descent": [[0.00, 0.0, 0.0, 0.0, 0.0]],
    "cruise": [[0.00, 0.00, 400, 2900.00]],
    "ceiling": [410],
    "_comment1": "_comment fields are just for self-documentation!",
    "_comment2": "takeoff_weight: maximum weight for takeoff (lbs)",
    "_comment3": "empty_weight: aircraft weight without fuel (lbs)",
    "_comment4": "climb/descent: weight(lbs), altitude(ft), duration(min), distance(nm), fuel(lbs)",
    "_comment5": "cruise: weight(lbs), altitude(ft), total air speed(nm/h), fuel flow(lbs/h)",
    "_comment6": "ceiling: polynomial coefficients for relating weight (lbs) with peak flightlevel (hft). Leftmost coefficient is the intercept."
}

This example file assumes a constant speed of 400 nm/h and a constant fuel consumption of 2900 lbs/h irrespective of flight level changes. The aircraft weight and available fuel are also given, but these may also be adjusted in the GUI after loading.

The columns of the cruise table are aircraft weight (lbs), aircraft altitude (feet), speed (nm/h), and fuel consumption (lbs/h). MSS bilinearily interpolates in aircraft weight and altitude and extrapolates assuming a constant behaviour outside the given data. The climb table specifies the aircraft performance when climbing up from 0 feet altitude, while the descent table specifies the behaviour when descending down to 0 feet altitude. The column headers are aircraft weight (lbs), aircraft altitude (feet), time spent (minutes), distance required (nm), and fuel consumed (lbs). To compute the required data for a flight level change, a bilinear interpolation in the table for current aircraft weight and the two involved altitudes is performed and the difference of the resulting value is used in the calculation.

Satellite Track Docking Widget

The TopView has a docking widget allowing the visualisation of satellite tracks. A web site to generate the data for such tracks is operated by NASA. The data can be downloaded as ASCII file that can be open by the docking widget. An example file is located at docs/samples/satellite_tracks/satellite_predictor.txt.

KML Overlay Docking Widget

The TopView has a docking widget that allows the visualization of KML files on top of the map.

This feature supports all essential elements of KML relevant to MSS’ usage namely:

  • Placemarks (present in Folder/ Document or otherwise)

  • Style (LineStyle & PolyStyle)

  • Geometries defined in KML such as

    • Point

    • LineString

    • LinearRing

    • Polygon (Inner and Outer Rings)

    • MultiGeometries (MultiPoint, MultiLineString, MultiPolygon)

    • Geometry Collection (combination of various types of MultiGeometries)

The KML Support has been enhanced to parse all legal KML Files, and a clear visualization on the map, with the relevant geometries and styles.

The KML Interface now supports display of multiple KML Files simultaneously, with easy to use Buttons such as ‘Add KML Files’, ‘Remove File’, ‘Select/ Unselect All Files’ for the user’s benefit.

A Check/ Uncheck feature allows users to display/hide individual plots on the map, at the User’s leisure.

A KML Customize Option improves the User Experience by allowing user to customize the colour & linewidth of each of the KML Files displayed, realtime. This allows for better understanding of the map and the plots. (The Customize Option can be accessed for each file, by double clicking on the name of that file in the list.)

The ‘Merge KML Files’ Button allows users to combine all the displayed plotted files, to be combined into a single KML File ‘output.kml’, which will be present in the last working directory of the user.

Have to head out somewhere? Important KML Files open? Close the software with ease of mind. Next time you open your software, all your work will be present, right where you left it! KML Overlay supports Saving Open files so that you can jump back in, anytime!

KML Examples

Curious to test out some KML Files? We have a vibrant sample collection ready just for this!

Example KML Files are located at :

Multiple Flightpath Dockwidget

The topview has a dockwidget allowing to plot multiple flighttracks/operations on top of map.

New flightpaths can be added or removed, and a clear visualization on map, with relevant geometries and styles.

The multiple flightpath dockwidget interface supports display of multiple flighttracks on map simultaneously, with a check box to display/hide individual plots on map.

Activated flighttrack/operation is shown in bold letters and can’t be unchecked.

“Change Linewidth” and “Change Color” button improves the User experience by allowing user to customize color & linewidth of each of flightpath displayed, realtime. This allows for better understanding of map and flightpath.

For Activated Flightpath, use “options” menu on topview interface.

Remote sensing Docking Widget

The TopView has a docking widget that allows the visualization of remote sensing related features. It may visualize the position of tangent points of limb sounders and can overlay the flight path with colours according to the relative position of sun, moon, and some planets (to either avoid or seek out alignments). Upon first starting the widget, it is thus necessary to download astronomic positional data (see here for more information). This is automatically performed by the skyfield python package, retrieving the data from public sources of JPL and other US services. The data is stored in the MSS configuration directory and may need to update irregularly.

publicly accessible WMS Servers

Some examples for publicly accessible WMS Servers