code: def epomeo_gpx(max_iters=200, optimize=True, plot=True):
      
      try:import pods
      except ImportError:
          print('pods unavailable, see https://github.com/sods/ods for example datasets')
          return
      data = pods.datasets.epomeo_gpx()
      num_data_list = []
      for Xpart in data['X']:
          num_data_list.append(Xpart.shape[0])
  
      num_data_array = np.array(num_data_list)
      num_data = num_data_array.sum()
      Y = np.zeros((num_data, 2))
      t = np.zeros((num_data, 2))
      start = 0
      for Xpart, index in zip(data['X'], range(len(data['X']))):
          end = start+Xpart.shape[0]
          t[start:end, :] = np.hstack((Xpart[:, 0:1],
                                      index*np.ones((Xpart.shape[0], 1))))
          Y[start:end, :] = Xpart[:, 1:3]
  
      num_inducing = 200
      Z = np.hstack((np.linspace(t[:,0].min(), t[:, 0].max(), num_inducing)[:, None],
                     np.random.randint(0, 4, num_inducing)[:, None]))
  
      k1 = GPy.kern.RBF(1)
      k2 = GPy.kern.Coregionalize(output_dim=5, rank=5)
      k = k1**k2
  
      m = GPy.models.SparseGPRegression(t, Y, kernel=k, Z=Z, normalize_Y=True)
      m.constrain_fixed('.*variance', 1.)
      m.inducing_inputs.constrain_fixed()
      m.Gaussian_noise.variance.constrain_bounded(1e-3, 1e-1)
      m.optimize(max_iters=max_iters,messages=True)
  
      return m
docs: Perform Gaussian process regression on the latitude and longitude data
      from the Mount Epomeo runs. Requires gpxpy to be installed on your system
      to load in the data.