docstr: tick_loc, tick_angle, tick_label, (optionally) tick_label
docstr_tok: ["tick_loc",",","tick_angle",",","tick_label",",","(","optionally",")","tick_label"]
code: def get_tick_iterators(self, axes):
      """tick_loc, tick_angle, tick_label, (optionally) tick_label"""
  
      grid_finder = self.grid_helper.grid_finder
  
      lat_levs, lat_n, lat_factor = self._grid_info["lat_info"]
      yy0 = lat_levs / lat_factor
  
      lon_levs, lon_n, lon_factor = self._grid_info["lon_info"]
      xx0 = lon_levs / lon_factor
  
      extremes = self.grid_helper.grid_finder.extreme_finder(
          *[None] * 5
      )
      xmin, xmax = sorted(extremes[:2])
      ymin, ymax = sorted(extremes[2:])
  
      def trf_xy(x, y):
          trf = grid_finder.get_transform() + axes.transData
          return trf.transform(
              np.column_stack(np.broadcast_arrays(x, y))
          ).T
  
      if self.nth_coord == 0:
          mask = (ymin <= yy0) & (yy0 <= ymax)
          (
              (xx1, yy1),
              (dxx1, dyy1),
              (dxx2, dyy2),
          ) = grid_helper_curvelinear._value_and_jacobian(
              trf_xy, self.value, yy0[mask], (xmin, xmax), (ymin, ymax)
          )
          labels = self._grid_info["lat_labels"]
  
      elif self.nth_coord == 1:
          mask = (xmin <= xx0) & (xx0 <= xmax)
          (
              (xx1, yy1),
              (dxx2, dyy2),
              (dxx1, dyy1),
          ) = grid_helper_curvelinear._value_and_jacobian(
              trf_xy, xx0[mask], self.value, (xmin, xmax), (ymin, ymax)
          )
          labels = self._grid_info["lon_labels"]
  
      labels = [l for l, m in zip(labels, mask) if m]
  
      angle_normal = np.arctan2(dyy1, dxx1)
      angle_tangent = np.arctan2(dyy2, dxx2)
      mm = (dyy1 == 0) & (dxx1 == 0)  # points with degenerate normal
      angle_normal[mm] = angle_tangent[mm] + np.pi / 2
  
      tick_to_axes = self.get_tick_transform(axes) - axes.transAxes
      in_01 = functools.partial(
          mpl.transforms._interval_contains_close, (0, 1)
      )
  
      def f1():
          for x, y, normal, tangent, lab in zip(
              xx1, yy1, angle_normal, angle_tangent, labels
          ):
              c2 = tick_to_axes.transform((x, y))
              if in_01(c2[0]) and in_01(c2[1]):
                  yield [x, y], *np.rad2deg([normal, tangent]), lab
  
      return f1(), iter([])
  
imports: import functools
  import numpy
  import matplotlib
  from matplotlib import _api, cbook
  import matplotlib.patches
  from matplotlib.path import Path
  from mpl_toolkits.axes_grid1.parasite_axes import host_axes_class_factory
  from .None import axislines, grid_helper_curvelinear
  from .axis_artist import AxisArtist
  from .grid_finder import ExtremeFinderSimple
label_desc: Use image node_id 3 for calling the FixedAxisArtistHelper obj's underlying member method code with example usage: obj.get_tick_iterators(axes) and returns: f1,  iter, trf