code: def get_catalog(ra, dec, sr=0.1, fmt='CSV', catalog='GSC241'):
      
      serviceType = 'vo/CatalogSearch.aspx'
      spec_str = 'RA={}&DEC={}&SR={}&FORMAT={}&CAT={}&MINDET=5'
      headers = {'Content-Type': 'text/csv'}
  
      spec = spec_str.format(ra, dec, sr, fmt, catalog)
      serviceUrl = '{}/{}?{}'.format(SERVICELOCATION, serviceType, spec)
      rawcat = requests.get(serviceUrl, headers=headers)
      r_contents = rawcat.content.decode()  # convert from bytes to a String
      rstr = r_contents.split('\r\n')
      # remove initial line describing the number of sources returned
      # CRITICAL to proper interpretation of CSV data
      del rstr[0]
      r_csv = csv.DictReader(rstr)
  
      return r_csv
docs: Extract catalog from VO web service.
  
      Parameters
      ----------
      ra : float
          Right Ascension (RA) of center of field-of-view (in decimal degrees)
  
      dec : float
          Declination (Dec) of center of field-of-view (in decimal degrees)
  
      sr : float, optional
          Search radius (in decimal degrees) from field-of-view center to use
          for sources from catalog.  Default: 0.1 degrees
  
      fmt : str, optional
          Format of output catalog to be returned.  Options are determined by
          web-service, and currently include (Default: CSV):
          VOTABLE(default) | HTML | KML | CSV | TSV | JSON | TEXT
  
      catalog : str, optional
          Name of catalog to query, as defined by web-service.  Default: 'GSC241'
  
      Returns
      -------
      csv : CSV object
          CSV object of returned sources with all columns as provided by catalog