class_docstr: Test the forward parallax function with various inputs.
docstr: Test parallax correction for fully cloudy scene at SSP.
docstr_tok: ["Test","parallax","correction","for","fully","cloudy","scene","at","SSP","."]
code: def test_get_parallax_corrected_lonlats_cloudy_ssp(
      self, lat, lon, resolution
  ):
      """Test parallax correction for fully cloudy scene at SSP."""
      from satpy.modifiers.parallax import (
          get_parallax_corrected_lonlats,
      )
  
      N = 5
      lats = np.linspace(
          lat - N * resolution, lat + N * resolution, 25
      ).reshape(N, N)
      lons = (
          np.linspace(lon - N * resolution, lon + N * resolution, 25)
          .reshape(N, N)
          .T
      )
      height = np.full((N, N), 10_000)  # constant high clouds at 10 km
      sat_alt = 35_000_000.0  # satellite at 35 Mm
      (corr_lon, corr_lat) = get_parallax_corrected_lonlats(
          lon, lat, sat_alt, lons, lats, height
      )
      # confirm movements behave as expected
      geod = Geod(ellps="sphere")
      # need to use np.tile here as geod.inv doesn't seem to broadcast (not
      # when turning lon/lat in arrays of size (1, 1) either)
      corr_dist = geod.inv(
          np.tile(lon, [N, N]), np.tile(lat, [N, N]), corr_lon, corr_lat
      )[2]
      corr_delta = geod.inv(corr_lon, corr_lat, lons, lats)[2]
      uncorr_dist = geod.inv(
          np.tile(lon, [N, N]), np.tile(lat, [N, N]), lons, lats
      )[2]
      # should be equal at SSP and nowhere else
      np.testing.assert_allclose(corr_delta[2, 2], 0, atol=1e-9)
      assert np.isclose(corr_delta, 0, atol=1e-9).sum() == 1
      # should always get closer to SSP
      assert (uncorr_dist - corr_dist >= -1e-8).all()
      # should be larger the further we get from SSP
      assert (np.diff(corr_delta[N // 2, : N // 2 + 1]) < 0).all()
      assert (np.diff(corr_delta[N // 2, N // 2 :]) > 0).all()
      assert (np.diff(corr_delta[N // 2 :, N // 2]) > 0).all()
      assert (np.diff(corr_delta[: N // 2 + 1, N // 2]) < 0).all()
      assert (np.diff(np.diag(corr_delta)[: N // 2 + 1]) < 0).all()
      assert (np.diff(np.diag(corr_delta)[N // 2 :]) > 0).all()
  
imports: import datetime
  import logging
  import math
  import os
  import unittest.mock
  import dask.array
  import dask.config
  import numpy
  import pyorbital.tlefile
  import pyresample.kd_tree
  import pytest
  import xarray
  from pyproj import Geod
  from pyresample import create_area_def
  import satpy.resample
  from satpy.tests.utils import xfail_skyfield_unstable_numpy2
  from satpy.writers import get_enhanced_image
label_desc: Use image node_id 3 for calling the TestForwardParallax obj's underlying member method code with example usage: obj.test_get_parallax_corrected_lonlats_cloudy_ssp(lat, lon, resolution) without return types