code: def from_altaz(self, alt=None, az=None, alt_degrees=None, az_degrees=None,
                     distance=Distance(au=0.1)):
          
          # TODO: should this method live on another class?
          R = self.observer_data.altaz_rotation if self.observer_data else None
          if R is None:
              raise ValueError('only a position generated by a topos() call'
                               ' knows the orientation of the horizon'
                               ' and can understand altitude and azimuth')
          alt = _interpret_angle('alt', alt, alt_degrees)
          az = _interpret_angle('az', az, az_degrees)
          r = distance.au
          p = from_polar(r, alt, az)
          p = einsum('ji...,j...->i...', R, p)
          return Apparent(p)
docs: Generate an Apparent position from an altitude and azimuth.
  
          The altitude and azimuth can each be provided as an `Angle`
          object, or else as a number of degrees provided as either a
          float or a tuple of degrees, arcminutes, and arcseconds::
  
              alt=Angle(...), az=Angle(...)
              alt_degrees=23.2289, az_degrees=142.1161
              alt_degrees=(23, 13, 44.1), az_degrees=(142, 6, 58.1)
  
          The distance should be a :class:`~skyfield.units.Distance`
          object, if provided; otherwise a default of 0.1 au is used.