code: def fetch_sdss_sspp(
      data_home=None, download_if_missing=True, cleaned=False
  ):
      """Loader for SDSS SEGUE Stellar Parameter Pipeline data
  
      Parameters
      ----------
      data_home : optional, default=None
          Specify another download and cache folder for the datasets. By default
          all astroML data is stored in '~/astroML_data'.
  
      download_if_missing : bool (optional) default=True
          If False, raise a IOError if the data is not locally available
          instead of trying to download the data from the source site.
  
      cleaned : bool (optional) default=False
          if True, then return a cleaned catalog where objects with extreme
          values are removed.
  
      Returns
      -------
      data : recarray, shape = (327260,)
          record array containing pipeline parameters
  
      Notes
      -----
      Here are the comments from the fits file header:
  
      Imaging data and spectrum identifiers for a sample of 327,260
      stars with SDSS spectra,  selected as:
  
        1) available SSPP parameters in SDSS Data Release 9
           (SSPP rerun 122, file from Y.S. Lee)
        2) 14 < r < 21 (psf magnitudes, uncorrected for ISM extinction)
        3) 10 < u < 25 & 10 < z < 25 (same as above)
        4) errors in ugriz well measured (>0) and <10
        5) 0 < u-g < 3 (all color cuts based on psf mags, dereddened)
        6) -0.5 < g-r < 1.5 & -0.5 < r-i < 1.0 & -0.5 < i-z < 1.0
        7) -200 < pmL < 200 & -200 < pmB < 200 (proper motion in mas/yr)
        8) pmErr < 10 mas/yr (proper motion error)
        9) 1 < log(g) < 5
        10) TeffErr < 300 K
  
      Teff and TeffErr are given in Kelvin, radVel and radVelErr in km/s.
      (ZI, Feb 2012, ivezic@astro.washington.edu)
  
      Examples
      --------
      >>> from astroML.datasets import fetch_sdss_sspp
      >>> data = fetch_sdss_sspp()  # doctest: +IGNORE_OUTPUT +REMOTE_DATA
      >>> # number of objects in dataset
      >>> data.shape  # doctest: +REMOTE_DATA
      (327260,)
      >>> # names of the first five columns
      >>> print(data.dtype.names[:5])  # doctest: +REMOTE_DATA
      ('ra', 'dec', 'Ar', 'upsf', 'uErr')
      >>> # first RA value
      >>> print(data['ra'][:1])  # doctest: +REMOTE_DATA
      [49.6275024]
      >>> # first DEC value
      >>> print(data['dec'][:1])  # doctest: +REMOTE_DATA
      [-1.04175591]
      """
      data_home = get_data_home(data_home)
  
      archive_file = os.path.join(data_home, os.path.basename(DATA_URL))
  
      if not os.path.exists(archive_file):
          if not download_if_missing:
              raise IOError(
                  "data not present on disk. "
                  "set download_if_missing=True to download"
              )
  
          data = Table.read(DATA_URL)
          data.write(archive_file)
      else:
          data = Table.read(archive_file)
  
      if cleaned:
          # -1.1 < FeH < 0.1
          data = data[(data["FeH"] > -1.1) & (data["FeH"] < 0.1)]
  
          # -0.03 < alpha/Fe < 0.57
          data = data[
              (data["alphFe"] > -0.03) & (data["alphFe"] < 0.57)
          ]
  
          # 5000 < Teff < 6500
          data = data[(data["Teff"] > 5000) & (data["Teff"] < 6500)]
  
          # 3.5 < log(g) < 5
          data = data[(data["logg"] > 3.5) & (data["logg"] < 5)]
  
          # 0 < error for FeH < 0.1
          data = data[(data["FeHErr"] > 0) & (data["FeHErr"] < 0.1)]
  
          # 0 < error for alpha/Fe < 0.05
          data = data[
              (data["alphFeErr"] > 0) & (data["alphFeErr"] < 0.05)
          ]
  
          # 15 < g mag < 18
          data = data[(data["gpsf"] > 15) & (data["gpsf"] < 18)]
  
          # abs(radVel) < 100 km/s
          data = data[(abs(data["radVel"]) < 100)]
  
      return np.asarray(data)
  
imports: import os
  import numpy
  from astropy.table import Table
  from .None import get_data_home
label_desc: Use image node_id 2 for calling a global function with example usage: fetch_sdss_sspp(data_home, download_if_missing, cleaned) and returns: np