Source code for swot_simulator.error.altimeter

# 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.
"""
Altimeter instrument error
--------------------------
"""
from typing import Dict
import numpy as np

from .. import random_signal
from .. import settings


[docs]class Altimeter: """Altimeter instrument error. Args: parameters (settings.Parameters): Simulation settings """
[docs] def __init__(self, parameters: settings.Parameters) -> None: # Store the generation parameters of the random signal. self.delta_al = 2 * parameters.delta_al self.rng = parameters.rng() self.len_repeat = parameters.len_repeat # Define the sepctrum of the nadir instrument error freq = np.arange(1 / 3000, 1 / self.delta_al, 1 / 3000) psd = 8 + 1.05 * 1e-4 * freq**(-2.2) psd[freq < 0.00023627939582672978] = 1e4 # Convert spectrum in m2/cy self.psd = psd * 1e-4 self.freq = freq
[docs] def generate(self, x_al: np.array) -> Dict[str, np.ndarray]: """Generate altimeter instrument error. Args: x_al (numpy.ndarray): Along track distance Returns: dict: variable name and errors simulated. """ # Compute random noise of 10**2 cm**2/(km/cycle) # Compute the correspond error on the nadir in m error = random_signal.gen_signal_1d(self.freq, self.psd, x_al, rng=self.rng, fmin=1 / self.len_repeat, fmax=1 / self.delta_al, alpha=10) return {"simulated_error_altimeter": error}