code: def _get_plane_vectors(ez):
      """Get two orthogonal vectors orthogonal to ez (ez will be modified)."""
      assert ez.shape == (3,)
      ez_len = np.sqrt(np.sum(ez * ez))
      if ez_len == 0:
          raise RuntimeError("Zero length normal. Cannot proceed.")
      if (
          np.abs(ez_len - np.abs(ez[2])) < 1e-5
      ):  # ez already in z-direction
          ex = np.array([1.0, 0.0, 0.0])
      else:
          ex = np.zeros(3)
          if ez[1] < ez[2]:
              ex[0 if ez[0] < ez[1] else 1] = 1.0
          else:
              ex[0 if ez[0] < ez[2] else 2] = 1.0
      ez /= ez_len
      ex -= np.dot(ez, ex) * ez
      ex /= np.sqrt(np.sum(ex * ex))
      ey = np.cross(ez, ex)
      return ex, ey
  
imports: import os.path
  from calendar import timegm
  from time import strptime
  import numpy
  from ..._fiff.constants import FIFF
  from ..._fiff.ctf_comp import _add_kind, _calibrate_comp
  from ..._fiff.meas_info import _empty_info
  from ..._fiff.write import get_new_file_id
  from ...annotations import Annotations
  from ...transforms import _coord_frame_name, apply_trans, combine_transforms, invert_transform
  from ...utils import _clean_names, logger, warn
  from .constants import CTF
label_desc: Use image node_id 3 for calling a global function with example usage: _get_plane_vectors(ez) and returns: ex,  ey