Skip to content

Downloading#

Session Authentication#

asf_search supports downloading data, both from search results as provided by the search functions, and directly on product URLs. An authenticated session is generally required. asf_search uses Requests. Using .netrc credentials is the preferred method for authentication. More information on .netrc authentication can be found here.

Example using .netrc:

results = ....
results.download(path='....')

If not using .netrc credentials, you may authenticate using an ASFSession object and one of the following authentication methods. ASFSession is a subclass of Session. The session should be passed to whichever download method is being called, can be re-used, and is thread safe.

  • auth_with_creds('user', 'pass)
  • auth_with_token('EDL token')
  • auth_with_cookiejar(http.cookiejar)

Example with manual authentication:

results = asf_search.granule_search([...])
session = asf_search.ASFSession().auth_with_creds('user', 'pass')
results.download(path='/Users/SARGuru/data', session=session)

asf_search also supports downloading an arbitrary list of URLs. All of the available authentication methods are supported:

urls = [...]
asf_search.download_urls(urls=urls, path='/Users/SARGuru/data', session=ASFSession().auth_with_token('EDL token'))

Also note that ASFSearchResults.download() and the generic download_urls() function both accept a processes parameter which allows for parallel downloads.

Methods#

download_urls()#

Downloads all products from the specified URLs to the specified location.

args

  • urls: List of URLs from which to download
  • path: Local path in which to save the product
  • session: The session to use, in most cases should be authenticated beforehand
  • processes: Number of download processes to use. Defaults to 1 (i.e. sequential download)

download_url()#

Downloads a product from the specified URL to the specified location and (optional) filename.

args

  • url: URL from which to download
  • path: Local path in which to save the product
  • filename: Optional filename to be used, extracted from the URL by default
  • session: The session to use, in most cases should be authenticated beforehand

remotezip()#

Configures and returns an authenticated remotezip.RemoteZip object, allowing downloading of specific files from a given zip archive without downloading the entire archive.

args

  • url: URL from which to download a zip archive
  • session: Authenticated ASFSession that RemoteZip will use to download from the zip product

returns:

  • remotezip.RemoteZip object authenticated with the passed ASFSession object

Export Formats#

asf_search provides multiple export formats, in addition to the default asf_search format. Available formats are: geojson, csv, metalink, kml, jsonlite, jsonlite2.

Examples:

results = ....
with open("search_results.csv", "w") as f:
    f.writelines(results.csv())

results = ....
with open("search_results_jsonlite.json", "w") as f:
    f.writelines(results.jsonlite())