Source code for swot_simulator.plugins.swh.ww3
# Copyright (c) 2021 CNES/JPL
#
# All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
"""
Interpolation of the SWH from WW3
=================================
"""
import numpy as np
import pyinterp.backends.xarray
from .. import data_handler
[docs]class WW3(data_handler.CartesianGridHandler):
"""Interpolation of the SWH from WW3."""
[docs] def __init__(self, path: str):
loader = data_handler.NetcdfLoader(path,
date_fmt="%Y%m%d",
ssh_name="hs",
pattern=r"ww3.(?P<date>\w+)_hs\.nc")
super().__init__(loader)
[docs] def interpolate(self, lon: np.ndarray, lat: np.ndarray,
dates: np.ndarray) -> np.ndarray:
"""Interpolate the SSH to the required coordinates."""
dataset = self.dataset_loader.load_dataset(
dates.min(), # type: ignore
dates.max()) # type: ignore
interpolator = pyinterp.backends.xarray.Grid3D(dataset.ssh)
swh = interpolator.trivariate(
dict(longitude=lon, latitude=lat, time=dates),
interpolator="bilinear",
)
return swh