class_docstr: File handle for sentinel 2 safe XML tile metadata.
class_docstr_tok: ["File","handle","for","sentinel","2","safe","XML","tile","metadata","."]
docstr: Interpolate the angles.
docstr_tok: ["Interpolate","the","angles","."]
code: def interpolate_angles(self, angles, resolution):
      """Interpolate the angles."""
      from geotiepoints.multilinear import MultilinearInterpolator
  
      cols, rows = self._shape(resolution)
  
      smin = [0, 0]
      smax = np.array(angles.shape) - 1
      orders = angles.shape
      minterp = MultilinearInterpolator(smin, smax, orders)
      minterp.set_values(da.atleast_2d(angles.ravel()))
  
      y = (
          da.arange(rows, dtype=angles.dtype, chunks=CHUNK_SIZE)
          / (rows - 1)
          * (angles.shape[0] - 1)
      )
      x = (
          da.arange(cols, dtype=angles.dtype, chunks=CHUNK_SIZE)
          / (cols - 1)
          * (angles.shape[1] - 1)
      )
      xcoord, ycoord = da.meshgrid(x, y)
      return da.map_blocks(
          self._do_interp,
          minterp,
          xcoord,
          ycoord,
          dtype=angles.dtype,
          chunks=xcoord.chunks,
      )
  
imports: import logging
  import dask.array
  import defusedxml.ElementTree
  import numpy
  import xarray
  from pyresample import geometry
  from satpy._compat import cached_property
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 7 for calling the SAFEMSITileMDXML obj's underlying member method code with example usage: obj.interpolate_angles(angles, resolution) and returns: da