code: def overhead_antenna_pattern(right_ascension, declination, polarization):
      
      # convert from declination coordinate to polar (angle dropped from north axis)
      theta = np.pi / 2.0 - declination
  
      f_plus  = - (1.0/2.0) * (1.0 + cos(theta)*cos(theta)) * \
                  cos (2.0 * right_ascension) * cos (2.0 * polarization) - \
                  cos(theta) * sin(2.0*right_ascension) * sin (2.0 * polarization)
  
      f_cross =   (1.0/2.0) * (1.0 + cos(theta)*cos(theta)) * \
                  cos (2.0 * right_ascension) * sin (2.0* polarization) - \
                  cos(theta) * sin(2.0*right_ascension) * cos (2.0 * polarization)
  
      return f_plus, f_cross
docs: Return the antenna pattern factors F+ and Fx as a function of sky
      location and polarization angle for a hypothetical interferometer located
      at the north pole. Angles are in radians. Declinations of ±π/2 correspond
      to the normal to the detector plane (i.e. overhead and underneath) while
      the point with zero right ascension and declination is the direction
      of one of the interferometer arms.
  
      Parameters
      ----------
      right_ascension: float
      declination: float
      polarization: float
  
      Returns
      -------
      f_plus: float
      f_cros: float