Source code for ugants.analysis.command_line

# (C) Crown Copyright, Met Office. All rights reserved.
#
# This file is part of UG-ANTS and is released under the BSD 3-Clause license.
# See LICENSE.txt in the root of the repository for full licensing details.
"""Implementation for the fill missing points application."""

from dataclasses import dataclass

import iris.cube

from ugants.abc import Application
from ugants.analysis.fill import KDTreeFill


[docs] @dataclass class FillMissingPoints(Application): """Fill missing points for UGrid data. Uses the :class:`~ugants.analysis.fill.KDTreeFill` algorithm. """ source: iris.cube.CubeList target_mask: iris.cube.CubeList = None
[docs] def run(self): """Fill missing points in the source cube. The :class:`ugants.analysis.fill.KDTreeFill` class is used with the provided target mask to fill missing points in the source cube. The filled result is stored in ``self.result``. """ if len(self.source) != 1: raise ValueError(f"Expecting one cube, found {len(self.source)}") else: source_cube = self.source[0] if self.target_mask: if len(self.target_mask) != 1: raise ValueError(f"Expecting one cube, found {len(self.target_mask)}") else: target_mask_cube = self.target_mask[0] else: target_mask_cube = None filler = KDTreeFill(source_cube, target_mask_cube) self.results = filler(source_cube)