code: def get_lightcurve(self, star_id, return_1d=True):
          
          filename = '{0}/{1}.dat'.format(self.dirname, star_id)
  
          try:
              data = np.loadtxt(self.data.extractfile(filename))
          except KeyError:
              raise ValueError("invalid star id: {0}".format(star_id))
  
          RA = data[:, 0]
          DEC = data[:, 1]
  
          t = data[:, 2::3]
          y = data[:, 3::3]
          dy = data[:, 4::3]
  
          nans = (y == -99.99)
          t[nans] = np.nan
          y[nans] = np.nan
          dy[nans] = np.nan
  
          if return_1d:
              t, y, dy, filts = np.broadcast_arrays(t, y, dy,
                                                    ['u', 'g', 'r', 'i', 'z'])
              good = ~np.isnan(t)
              return t[good], y[good], dy[good], filts[good]
          else:
              return t, y, dy
docs: Get the light curves for the given ID
  
          Parameters
          ----------
          star_id : int
              A valid integer star id representing an object in the dataset
          return_1d : boolean (default=True)
              Specify whether to return 1D arrays of (t, y, dy, filts) or
              2D arrays of (t, y, dy) where each column is a filter.
  
          Returns
          -------
          t, y, dy : np.ndarrays (if return_1d == False)
              Times, magnitudes, and magnitude errors.
              The shape of each array is [Nobs, 5], where the columns refer
              to [u,g,r,i,z] bands. Non-observations are indicated by NaN.
  
          t, y, dy, filts : np.ndarrays (if return_1d == True)
              Times, magnitudes, magnitude errors, and filters
              The shape of each array is [Nobs], and non-observations are
              filtered out.