code: def _get_sun_azimuth_ndarray(
      lons: np.ndarray, lats: np.ndarray, start_time: datetime
  ) -> np.ndarray:
      with ignore_invalid_float_warnings():
          suna = get_alt_az(start_time, lons, lats)[1]
          suna = np.rad2deg(suna)
  
          # The get_alt_az function returns values in the range -180 to 180 degrees.
          # Satpy expects values in the 0 - 360 range, which is what is returned for the
          # satellite azimuth angles.
          # Here this is corrected so both sun and sat azimuths are in the same range.
          suna = suna % 360.0
      return suna
  
imports: from __future__ import annotations
  import hashlib
  import os
  import shutil
  import warnings
  from datetime import datetime
  from functools import update_wrapper
  from glob import glob
  from typing import Any, Callable, Optional, Union
  import dask
  import numpy
  import xarray
  from dask import array
  from pyorbital.astronomy import cos_zen
  from pyorbital.astronomy import get_alt_az
  from pyorbital.orbital import get_observer_look
  from pyresample.geometry import AreaDefinition, StackedAreaDefinition, SwathDefinition
  import satpy
  from satpy.utils import PerformanceWarning, get_satpos, ignore_invalid_float_warnings
label_desc: Use image node_id 18 for calling a global function with example usage: _get_sun_azimuth_ndarray(lons, lats, start_time) and returns: suna