code: def rise(self, crd, ev='5deg'):
          
          if not is_measure(crd):
              raise TypeError('No rise/set coordinates specified')
          ps = self._getwhere()
          self._fillnow()
          hd = self.measure(crd, "hadec")
          c = self.measure(crd, "app")
          evq = dq.quantity(ev)
          hdm1 = dq.quantity(hd["m1"])
          psm1 = dq.quantity(ps["m1"])
          ct = (dq.sin(dq.quantity(ev)) - (dq.sin(hdm1) * dq.sin(psm1))) \
               / (dq.cos(hdm1) * dq.cos(psm1))
  
          if ct.get_value() >= 1:
              return {'rise': 'below', 'set': 'below'}
          if ct.get_value() <= -1:
              return {'rise': 'above', 'set': 'above'}
          a = dq.acos(ct)
          return dict(rise=dq.quantity(c["m0"]).norm(0) - a,
                      set=dq.quantity(c["m0"]).norm(0) + a)
docs: This method will give the rise/set hour-angles of a source. It
          needs the position in the frame, and a time. If the latter is not
          set, the current time will be used.
  
          :param crd: a direction measure
          :param ev: the elevation limit as a quantity or string
          :returns: `dict` with rise and set sidereal time quantities or a 2
                     strings "below" or "above"