Logo

About

  • Introduction
    • Before you start
    • About Met.3D
    • Organization of the documentation
    • Credits
  • List of features
  • System requirements
  • Frequently Asked Questions
    • What can I do with Met.3D?
    • Is Met.3D free to use?
    • Which platforms are supported?
    • Does Met.3D run on macOS?
    • What are the hardware and system requirements?
    • What data formats does Met.3D support?
    • Where can I get example data to try Met.3D?
    • What user interface does Met.3D use?
    • Can Met.3D be used in the browser?
    • Why does Met.3D use OpenGL instead of Vulkan or Direct3D?
    • Do you support icosahedral grids, like the one used by the ICON model?
    • My dataset does not appear to be compatible with Met.3D, or variables are missing after loading.
    • I encountered an error or bug in Met.3D.
    • How do I get started with Met.3D?
    • I want to add Met.3D visualizations to a publication or a video presentation.
    • How can I contribute to Met.3D?
    • The features I need are not available and I cannot implement them myself.
    • How can I visualize ensemble data?
    • How can I animate my visualizations?
    • Can I save and share my visualization setup?
    • Can I script Met.3D or automate workflows?
  • Scientific publications and presentations
    • Publications
      • 2025
      • 2024
      • 2023
      • 2022
      • 2021
      • 2020
      • 2019
      • 2018
      • 2017
      • 2015
      • 2014
    • Presentations
      • 2025
      • 2024
      • 2022
      • 2019
      • 2018
      • 2017
      • 2015
  • Met.3D gallery
    • Examples of images created with Met.3D
    • Horizontal sections
    • Vertical sections
    • Isosurfaces and DVR
    • Trajectories
    • User interface
    • Copyright note
  • Citing Met.3D
  • News
    • 2025-06-17: Version 1.16
    • 2025-06-09: EuroVis 2025 and further updates…
    • 2025-02-21: Version 1.15
    • 2024-09-04: Version 1.13
    • 2024-09-01: Sign up for the Met.3D newsletter
    • 2024-06-10: Version 1.12
    • 2024-03-21: Version 1.11
    • 2023-10-26: Met.3D on TV
    • 2023-09-01: Version 1.9
    • 2023-08-22: BAMS article…
    • 2023-08-18: A new method for…
    • 2023-08-03: Highlight paper about 3-D front detection
    • 2023-02-01: Version 1.8
    • 2022-06-10: Geoscientific Model Development Article uses Met.3D…
    • 2021-09-21: Version 1.7
    • 2021-09-16: Weather and Climate Dynamics Article uses Met.3D…
    • 2020-04-02: Version 1.6
    • 2020-01-20: ECMWF Newsletter article…
    • 2019-07-29: Version 1.5
    • 2019-06-23: New presentation about Met.3D at ECMWF
    • 2018-12-01: Survey article on “Visualization in Meteorology”
    • 2018-11-01: Presentation about use of Met.3D at ECMWF
    • 2018-10-17: Meet us at IEEE VIS 2018 in Berlin
    • 2018-10-17: RC for Version 1.4
    • 2018-07-06: Met.3D image appears as cover for BAMS
    • 2018-03-15: Version 1.3
    • 2017-10-19: Met.3D appears in new book
    • 2017-10-18: Version 1.2
    • 2017-09-22: Meet us at IEEE VIS 2017 in Phoenix
    • 2017-09-22: New Met.3D website online
    • 2017-04-25: Version 1.1

Getting started

  • Getting started
  • Installation
    • Linux
      • Conda package
        • Linux binary conda package
      • Building Met.3D from source
        • Compile Met.3D from source code: Linux (conda)
    • Windows
      • Compile Met.3D from source code: Windows
        • Prerequisites
        • 1. Setup and install MSVC
        • 2. Setup and install a Fortran compiler
        • 3. Bootstrap vcpkg
        • 4. Get the source code
        • 5. Building Met.3D from source in the terminal
        • 6. Running Met.3D from terminal
        • 7. Setting up an IDE
        • 8. Packaging
      • Installing Met.3D under WSL 2
        • Installing WSL 2
        • Setting up WSL with a suitable graphics driver
        • Installing Met.3D
    • MacOS
    • Use with external GPUs
      • Using an External GPU to Run Met.3D
        • Prerequisites
        • Setup Instructions
        • Known issues
    • Use with remote visualization on HPC systems
      • Using Met.3D on the Levante HPC System
        • Prerequisites
        • Step 1: Installing Met.3D
        • Step 2: TurboVNC Session
        • Step 3: Starting Met.3D
  • First steps with Met.3D
    • Download ERA-5 data
    • Start Met.3D
    • Load ERA-5 data into Met.3D
    • Using visualization templates
    • Camera navigation
    • Actor interaction
    • Creating multiple views
    • Creating multiple scenes
    • Creating actors from scratch

User Manual

  • Introduction
  • Data handling
    • Gridded data (horizontally regular)
      • Gridded data in NetCDF format
      • Examples of how NetCDF files need to be structured
      • Gridded data in GRIB format
    • Trajectory data
      • Description
      • Implementation
    • Weather radar data
    • Derived Variables
      • Defining input variable mapping
      • Available derived variables
        • Wind
        • Temperature and thermodynamics
        • Geopotential and pressure
        • Moisture and precipitation
        • Boundary layer
        • Wind speed derivatives
      • Height-to-pressure conversion
      • Python/MetPy interface
      • Source code
    • Computing difference fields
      • Adding a difference variable
      • De-accumulation (means since forecast start)
      • Time normalization
    • Python Interface
      • Exporting data from the GUI to Python
    • Preparing data for Met.3D
      • Remapping from spectral grid to regular grid
      • Remapping from radar grid to regular lat lon grid
      • Remapping icosahedral ICON data to regular grid
      • Creating stereographic data from regular lat lon data
  • Graphical user interface
    • Loading data into Met.3D
      • Overview
      • Loading datasets from graphical user interface
      • Loading precomputed trajectory datasets
    • Animation
      • Animation panel
      • Time animation
      • Camera animation
    • Toolbar
    • Time control
    • Ensemble control
    • Waypoints
    • Bounding boxes
    • Session Management
    • Snapshots
      • Creating and managing snapshots
    • User configuration
  • Command line interface
    • Loading datasets
    • Loading actors
    • Batch mode
    • Generating GRIB index files
    • Thread count
    • Metview interface mode
  • Visualization modules (actors)
    • Actors providing scene context
      • 1-D Transfer Function (Colourbar)
        • Overview
        • HCL Colour Maps
        • Predefined Colour Maps
        • Editor
        • Range and Value Mapping
        • Labels and Appearance
        • Orientation and Position
      • Texture Map (Spatial Transfer Function)
        • Overview
        • Loading Textures
        • Value Range and Interpolation
        • Alpha Blending
        • Texture Scale
        • Labels and Appearance
        • Usage Notes
      • Basemap
        • Overview
        • Loading a Custom Basemap
        • Graticule
        • Coastlines and Country Borders
      • Image
        • Overview
        • Loading and Configuring an Image
      • Geometry
        • Overview
        • Loading an OBJ File
        • Mesh Transformation
        • Colouring by a Gridded Variable
        • Colouring by Per-Vertex Attributes
      • Light
        • Overview
        • Configuration
        • Position and Direction
        • Visual Aids
      • Volume bounding box
        • Description
        • Appearance
        • Vertical tick marks
      • Text
        • Creating and Editing Labels
        • Coordinate Spaces
        • Placeholders
    • Actors that manage gridded data
      • Horizontal cross-section
        • Description
        • Elevation
        • Rendering
        • Graticule, Coastlines, and Country Borders
        • Vector Visualization
        • References
      • Isosurface intersection
        • Description
        • Setup
        • Filtering
        • Appearance
        • Ensemble members
        • References
      • Jet-stream core line detection
        • Description
        • Required input variables
        • Filtering
        • Appearance
        • References
      • Vertical cross section
        • Description
        • Waypoints
        • Vertical extent and tick marks
        • Appearance
        • Flight track
      • Volume raycaster (3D iso-surfaces and DVR)
        • Description
        • Render mode and rendered variables
        • Iso-surface rendering
        • Bitfield rendering
        • Direct volume rendering
        • Direct volume rendering of radar data
        • Data sampling
      • Surface Topography
        • Overview
        • Variables
        • GeoTIFF Basemap
        • Graticule, Coastlines, and Country Borders
      • Skew-T Diagrams
        • Description
        • Setup
        • Positioning
        • Appearance
        • Fullscreen mode
      • Radar actor
      • Trajectory actor
        • Description
        • Precomputed trajectories
        • Trajectories computed in Met.3D
        • Time synchronization
        • Ensemble
        • On-the-fly computation settings
        • Seed point sources
        • Trajectory filters
        • Rendering
        • Analysis output
      • Fronts
        • Description
        • Detection pipeline
        • Variables
        • Rendering modes
        • Filtering
        • Appearance
        • Normal curves
        • Performance and data resolution
        • References
      • Adding variables
      • Getting information about a variables data
      • Smoothing the data
      • Visualizing ensemble data
    • Actors that manage trajectory data
      • Trajectory actor
        • Description
        • Precomputed trajectories
        • Trajectories computed in Met.3D
        • Time synchronization
        • Ensemble
        • On-the-fly computation settings
        • Seed point sources
        • Trajectory filters
        • Rendering
        • Analysis output
  • Batch mode
    • Batch mode configuration
    • Example configuration

Contributing

  • How to contribute
    • Let us and the world know you’re using Met.3D
    • Documentation contributions
    • Technical contributions
    • Scientific collaboration
  • Contributing documentation
    • Getting familiar with Sphinx
    • Building the documentation
      • Installing Sphinx within an environment
      • Building the documentation
    • Editing the documentation
      • CLion
      • Visual Studio Code
    • Contribution guidelines
      • File structure
      • Figures
  • Contributing code
    • Set up a Linux development environment for Met.3D
      • CLion
        • Open Met.3D as a project
        • Set up toolchains using your conda environment
        • Setup cmake profiles
        • Set up run configurations
        • Set up coding style
        • Set up file templates
      • QtCreator
        • Open Met.3D as a project
        • Set up configuration
    • GIT workflow
      • GIT recipes
    • C++ coding style
      • General file structure
      • Indentation
      • Blank lines
      • Variables declaration and naming
      • Line breaks
      • Braces
      • Parentheses
      • Whitespace
      • Switch statements
      • Type casting
      • Qt specifics
      • Logging and console output
      • Comments
      • Compiler warnings
      • Naming Conventions
        • Properties
    • GLSL coding style
      • General file structure
    • Managing dependencies
      • Adding new dependencies
      • Adding a conda dependency
      • Adding a vcpkg dependency
      • Adding a non-existent vcpkg dependency
      • Writing a cmake find script

Developer Manual

  • Introduction
  • Architecture overview
  • Extending Met.3D
    • Adding a new actor
      • Deriving from MActor
        • Required static methods
        • Properties
        • Shaders
        • Render methods
        • Registration
      • Deriving from MNWPMultiVarActor
        • Pure virtual methods
        • Reacting to new data
        • Reacting to variable list changes
        • Accessing data in the render method
        • Adding an icon
    • Adding a new derived variable
      • Adding a C++ derived variable
      • Adding a Python-based derived variable
  • Implementation details
    • System modules
      • OpenGL Resource management
        • Design goals
        • OpenGL context management
        • OpenGL initialization and capability management
        • Actor factory and group management
        • Text renderer management
        • Managed resource types
        • Resource lifecycle
        • Resource caching and eviction
        • Shader management
        • Usage Guidelines
      • Property Framework
        • Concept
        • Implementation
        • Currently Implemented Property Types
        • Usage
      • Undo framework
        • Undo command
        • Undo stack
      • Scheduling in Met.3D
        • Overview
        • Task Management: MTask
        • Scheduler and Execution Flow
      • Memory management
        • Overview
        • The Memory Manager
        • The MLRUMemoryManager
        • MDataLease and MDataLeaseBase
        • MMemoryManagerItem
      • Data analysis framework
        • Implementation
        • Examples
    • Data pipeline
      • Grid types
        • Class hierarchy
        • Vertical level types
        • The MStructuredGrid API
        • Concrete MStructuredGrid subclasses
        • Radar grid
      • Data sources
        • Class hierarchy
        • The request/response flow
        • Input source registration
        • Implementing a processing source
        • Weather prediction metadata interface
      • Data items
        • The MAbstractDataItem interface
        • Items cannot be shared across sources
        • MWeatherPredictionMetaData
        • Data items referenced inside other items
      • Data requests
        • Encoding format
        • MDataRequestHelper
        • Required keys
        • Prefixed requests
      • Data readers
        • CF/NetCDF reader
        • GRIB reader
        • Trajectory reader
        • Radar reader
      • Variable pipeline
        • Pipeline for direct variables
        • Pipeline for derived variables
        • Smoothing stage setting
        • Difference data source
      • Trajectory Pipeline
        • Point Generating Sources
        • Point Filters
        • Trajectory Sources
        • Trajectory Filters
        • Single Point Filter
        • Normals Source
        • Auxiliary Data Sources
        • The Trajectory Pipeline Barrier
        • The Trajectory Dispatcher
      • Experimental projection support
        • Rotated Grids
        • Projected Grids
        • Known limiations
    • Actors
      • Class hierarchy
      • MActor
        • Base properties
        • Rendering interface
        • Render pass selection
        • Resource initialisation
        • Shader loading
        • Session save and load
        • Loading order
      • MNWPMultiVarActor
        • Actor variables
        • Data flow
        • Variable list events
      • Actor components
        • Actor components
        • Radar data in Met.3D for developers
    • Rendering
      • Multisampled cascaded shadow pass
      • DVR volume lighting pass
      • Single fullscreen actor pass
      • Multisampled 3-D actors pass
      • Multisampled DVR pass
      • Multisample resolve
      • FSR Upscaling
      • 2-D UI actors pass
      • Label pass
      • Present to viewport
        • Shadow mapping
        • Order independent transparency
        • Coordinate spaces used in Met.3D
  • Code documentation
Met.3D
  • Extending Met.3D
  • View page source

Extending Met.3D

Step-by-step guides for adding new functionality to Met.3D.

  • Adding a new actor
    • Deriving from MActor
    • Deriving from MNWPMultiVarActor
  • Adding a new derived variable
    • Adding a C++ derived variable
    • Adding a Python-based derived variable
Previous Next

© Copyright 2015-2026, Met.3D contributors.

Built with Sphinx using a theme provided by Read the Docs.