dubfi.fluxes.dataprovider_mpi ============================= .. py:module:: dubfi.fluxes.dataprovider_mpi .. autoapi-nested-parse:: MPI parent module for flux inversion using in-situ data. This module provides tools for orchestrating the MPI parallelized flux inversion. Worker processes read data and configuration from files, controlled by this module. .. codeauthor:: Valentin Bruch, DWD .. versionchanged:: 0.1.2 (renamed module) .. versionadded:: 0.1.0 (initial release) Classes ------- .. autoapisummary:: dubfi.fluxes.dataprovider_mpi.MpiInsituPostR dubfi.fluxes.dataprovider_mpi.MpiDistMecReader Functions --------- .. autoapisummary:: dubfi.fluxes.dataprovider_mpi.segments_from_config dubfi.fluxes.dataprovider_mpi.configs_agree Module Contents --------------- .. py:function:: segments_from_config(config, coords, num_segments, debug_plot = False) Compute segments for distributing data to MPI worker processes. :param config: inversion configuration :type config: dict :param coords: coordinates as provided by :func:`dubfi.fluxes.readobs.coordinates_from_config` :type coords: dict :param num_segments: number of segments (must be positive) :type num_segments: int :param debug_plot: show a plot to illustrate the result :type debug_plot: bool, default=False :returns: collection of segments :rtype: Segments .. py:function:: configs_agree(cfg1, cfg2) Check whether two inversion configurations are compatible. .. py:class:: MpiInsituPostR(seg) Bases: :py:obj:`dubfi.linalg.mpi_parent.MpiDensePostR` MPI parent class for R matrix generated from in-situ observations. This class seems trivial, but the corresponding worker class differs from the one for :class:`MpiDensePostR`. .. py:class:: MpiDistMecReader(seg) Bases: :py:obj:`dubfi.linalg.mpi_parent.MpiObj`, :py:obj:`dubfi.fluxes.dataprovider.AbstractDataProvider` MPI parent data provider. Prepare the inversion including worker processes. .. py:property:: config :type: dict Inversion configuration. .. py:property:: coords :type: dict Data coordinates, see :func:`dubfi.fluxes.readobs.coordinates_from_config`. .. py:method:: fromconfig(config, target_cfg, num_segments = -1) :classmethod: Create from inversion configuration. This reads the data and prepares the inversion. The worker processes are also initialized, but they must be created before using CTX.init(). :param config: inversion configuration :type config: dict :param target_cfg: path to target configuration file. The configuration will be written to this file path for the worker processes. :type target_cfg: str :param num_segments: number of segments, defaults to the number of available MPI worker processes :type num_segments: int, optional .. py:method:: get_Y() Create Y: observation or observation minus model vector. .. py:method:: get_H() Create H: parametrized model vector ("observation operator"). .. py:method:: get_R() Create R: parametrized error covariance matrix of model data mismatch.