code: def ageostrophic_wind(heights, f, dx, dy, u, v, dim_order='yx'):
      r
      u_geostrophic, v_geostrophic = geostrophic_wind(heights, f, dx, dy, dim_order=dim_order)
      return u - u_geostrophic, v - v_geostrophic
docs: r"""Calculate the ageostrophic wind given from the heights or geopotential.
  
      Parameters
      ----------
      heights : (M, N) ndarray
          The height field.
      f : array_like
          The coriolis parameter.  This can be a scalar to be applied
          everywhere or an array of values.
      dx : float or ndarray
          The grid spacing(s) in the x-direction. If an array, there should be one item less than
          the size of `heights` along the applicable axis.
      dy : float or ndarray
          The grid spacing(s) in the y-direction. If an array, there should be one item less than
          the size of `heights` along the applicable axis.
      u : (M, N) ndarray
          The u wind field.
      v : (M, N) ndarray
          The u wind field.
  
      Returns
      -------
      A 2-item tuple of arrays
          A tuple of the u-component and v-component of the ageostrophic wind.
  
      Notes
      -----
      If inputs have more than two dimensions, they are assumed to have either leading dimensions
      of (x, y) or trailing dimensions of (y, x), depending on the value of ``dim_order``.