code: def convert_from_angles(azi, zen):
      """Convert the angles to cartesian coordinates."""
      (
          x,
          y,
          z,
      ) = angle2xyz(azi, zen)
      # Conversion to ECEF is recommended by the provider, but no significant
      # difference has been seen.
      # x, y, z = (-np.sin(lon) * x + np.cos(lon) * y,
      #            -np.sin(lat) * np.cos(lon) * x - np.sin(lat) * np.sin(lon) * y + np.cos(lat) * z,
      #            np.cos(lat) * np.cos(lon) * x + np.cos(lat) * np.sin(lon) * y + np.sin(lat) * z)
      return x, y, z
  
imports: import logging
  from contextlib import suppress
  from datetime import datetime, timedelta
  import dask.array
  import h5py
  import numpy
  import xarray
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.readers.utils import np2str
  from satpy.utils import angle2xyz, get_legacy_chunk_size, lonlat2xyz, xyz2angle, xyz2lonlat
label_desc: Use image node_id 1 for calling a global function with example usage: convert_from_angles(azi, zen) and returns: x,  y,  z