docs: def _to_spherical(flds, header):
      """Convert vector field to spherical."""
      cth = np.cos(header['t_mesh'][:, :, :-1])
      sth = np.sin(header['t_mesh'][:, :, :-1])
      cph = np.cos(header['p_mesh'][:, :, :-1])
      sph = np.sin(header['p_mesh'][:, :, :-1])
      fout = np.copy(flds)
      fout[0] = cth * cph * flds[0] + cth * sph * flds[1] - sth * flds[2]
      fout[1] = sph * flds[0] - cph * flds[1]  # need to take the opposite here
      fout[2] = sth * cph * flds[0] + sth * sph * flds[1] + cth * flds[2]
      return fout