Skip to content

ASFHyP3/hyp3-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d0da5b5 · Feb 10, 2024
Dec 1, 2023
May 16, 2023
Feb 10, 2024
Feb 2, 2024
Aug 25, 2020
Aug 25, 2020
Mar 10, 2021
Feb 8, 2024
Aug 25, 2020
Aug 25, 2020
Jan 11, 2023
Nov 21, 2023
Feb 8, 2024
Jan 11, 2023
Feb 8, 2024

Repository files navigation

HyP3 SDK

PyPI license PyPI pyversions PyPI version Conda version Conda platforms

DOI

A python wrapper around the HyP3 API

>>> from hyp3_sdk import HyP3
>>> hyp3 = HyP3(username='MyUsername', password='MyPassword')

>>> granule = 'S1A_IW_SLC__1SSV_20150621T120220_20150621T120232_006471_008934_72D8'
>>> job = hyp3.submit_rtc_job(granule=granule, name='MyNewJob')
>>> job = hyp3.watch(job)
>>> job.download_files()

Install

In order to easily manage dependencies, we recommend using dedicated project environments via Anaconda/Miniconda or Python virtual environments.

The HyP3 SDK can be installed into a conda environment with

conda install -c conda-forge hyp3_sdk

or into a virtual environment with

python -m pip install hyp3_sdk

Quick Usage

There are 3 main classes that the SDK exposes:

  • HyP3 to perform HyP3 operations (find jobs, refresh job information, submitting new jobs)
  • Job to perform operations on single jobs (downloading products, check status)
  • Batch to perform operations on multiple jobs at once (downloading products, check status)

An instance of the HyP3 class will be needed to interact with the external HyP3 API.

>>> from hyp3_sdk import HyP3
>>> hyp3 = HyP3(username='MyUsername', password='MyPassword')

>>> granule = 'S1A_IW_SLC__1SSV_20150621T120220_20150621T120232_006471_008934_72D8'
>>> job = hyp3.submit_rtc_job(granule=granule, name='MyNewJob')
>>> job = hyp3.watch(job)
>>> job.download_files()

Submitting Jobs

hyp3 has member functions for submitting new jobs:

rtc_job = hyp3.submit_rtc_job('granule_id', 'job_name')
insar_job = hyp3.submit_insar_job('reference_granule_id', 'secondary_granule_id', 'job_name')
insar_burst_job = hyp3.submit_insar_isce_burst_job('reference_granule_id', 'secondary_granule_id', 'job_name')
autorift_job = hyp3.submit_autorift_job('reference_granule_id', 'secondary_granule_id', 'job_name')

Each of these functions will return an instance of the Job class that represents a new HyP3 job request.

Finding Existing Jobs

To find HyP3 jobs that were run previously, you can use the hyp3.find_jobs()

batch = hyp3.find_jobs()

This will return a Batch instance representing all jobs owned by you. You can also pass parameters to query to a specific set of jobs

Operations on Job and Batch

If your jobs are not complete you can use the HyP3 instance to update them, and wait from completion

batch = hyp3.find_jobs()
if not batch.complete():
    # to get updated information
    batch = hyp3.refresh(batch)
    # or to wait until completion and get updated information (which will take a fair bit)
    batch = hyp3.watch(batch)

Once you have complete jobs you can download the products to your machine

batch.download_files()

These operations also work on Job objects

job = hyp3.submit_rtc_job('S1A_IW_SLC__1SSV_20150621T120220_20150621T120232_006471_008934_72D8', 'MyJobName')
job = hyp3.watch(job)
job.download_files()

Documentation

For the full SDK API Reference, see the HyP3 documentation

Contact Us

Want to talk about the HyP3 SDK? We would love to hear from you!

Found a bug? Want to request a feature? Open an issue

General questions? Suggestions? Or just want to talk to the team? Chat with us on Gitter