code: def at(self, t):
          
          if not isinstance(t, Time):
              raise ValueError('please provide the at() method with a Time'
                               ' instance as its argument, instead of the'
                               ' value {0!r}'.format(t))
          observer_data = ObserverData()
          observer_data.ephemeris = self.ephemeris
          p, v, observer_data.gcrs_position, message = self._at(t)
          center = self.center
          if center == 0:
              observer_data.bcrs_position = p
              observer_data.bcrs_velocity = v
          self._snag_observer_data(observer_data, t)
          position = build_position(p, v, t, center, self.target, observer_data)
          position.message = message
          return position
docs: At time ``t``, compute the target's position relative to the center.
  
          If ``t`` is an array of times, then the returned position object
          will specify as many positions as there were times.  The kind of
          position returned depends on the value of the ``center``
          attribute:
  
          * Solar System Barycenter: :class:`~skyfield.positionlib.Barycentric`
          * Center of the Earth: :class:`~skyfield.positionlib.Geocentric`
          * Difference: :class:`~skyfield.positionlib.Geometric`
          * Anything else: :class:`~skyfield.positionlib.ICRF`