Sentinel-1 Interferograms – Command Line Tools

There are many ways to access Sentinel-1 interferograms for users comfortable working at the command line. Below are steps and options to explore.

Find Interferograms via the CMR Search API

Sentinel-1 Interferogram (BETA) products are integrated with the ESDIS Common Metadata Repository (CMR), and are searchable via the CMR Search API. Visit the CMR Search API documentation for details and available search parameters.

The CMR collection concept IDs for Sentinel-1 Interferogram (BETA) products are:

  • C1379535891-ASF — Sentinel-1 All Interferometric Products (BETA)
  • C1379522387-ASF — Sentinel-1 Full Resolution Wrapped Interferogram and DEM (BETA)
  • C1379535600-ASF — Sentinel-1 Unwrapped Interferogram and Coherence Map (BETA)

For example, this search returns a list of all “Sentinel-1 All Interferometric Products (BETA)” products over Pasadena, CA since Jan 1, 2018:

https://cmr.earthdata.nasa.gov/search/granules.csv?collection_concept_id=C1379535891-ASF&temporal=2018-01-01T00:00:00Z,&point=-118.1445,34.1478&page_size=50

 

The download URL for each product can be extracted from CMR search results and downloaded via command line tools like cURL and Wget.

Get Interferograms via cURL and Wget

Visit How To Access Data With cURL and Wget for instructions on downloading products with cURL and Wget, including how to provide your Earthdata Login credentials via a .netrc file.

Get Interferograms via AWS CLI, Boto 3, and GDAL

Sentinel-1 Interferogram (BETA) products are stored in Amazon Web Services’ Simple Storage Service (AWS S3). In addition to obtaining files via HTTP download, ASF makes these products available for download via AWS tools such as the AWS CLI, the Python Boto 3 library, and GDAL’s vsis3 utility.

Configuring Temporary Security Credentials

Users can obtain a temporary AWS access key from ASF using their Earthdata Login credentials. The temporary key is then used to obtain data while the access key is valid. Temporary access keys are obtained by invoking the following URLhttps://grfn.asf.alaska.edu/door/credentials

Enter your Earthdata Login credentials when prompted. If accessing via cURL or Wget, you can provide your credentials via a .netrc file as described at How To Access Data With cURL and Wget.

The “Credentials” block of the response includes an Access Key, Secret Key, and Session Token for a temporary S3 session, along with the session’s expiration date. The “PolicyDocument” block describes the AWS permissions granted for the session, including the name of the S3 bucket where Sentinel-1 Interferogram (BETA) products are stored.

Authentication for the AWS CLI and other tools can be configured by setting the following environment variables:

$ export AWS_ACCESS_KEY_ID=ASIAIXR2XDAYKFSAE2VQ
$ export AWS_SECRET_ACCESS_KEY=heAgBidhHAjEhRrtxCItpvJYQF8qMQVIaWSvF1qS
$ export AWS_SESSION_TOKEN=FQoDYXdzEGMaDAcgUNixqCXpy…<remainder of security token>

 

This python script is an example of requesting credentials and formatting the necessary export commands.

AWS CLI

The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services that introduces a set of simple file commands for efficient file transfers to and from Amazon S3.

NOTE: You must configure temporary security credentials before using Boto.

AWS Command Line Interface Documentation
Using Temporary Security Credentials with the AWS CLI
s3 Command Reference
s3api Command Reference

$ aws s3 ls s3://grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard
2018-04-22 21:21:16 32402145 S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.full_res.zip
2018-04-22 21:21:11 39487496 S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.unw_geo.zip
2018-04-22 21:20:58 496855659 S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip

$ aws s3 cp s3://grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip .
download: s3://grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip to ./S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip

Boto 3 Python Library

Boto is the Amazon Web Services (AWS) SDK for Python, which allows Python developers to write software that makes use of Amazon services like S3.

NOTE: You must configure temporary security credentials before using Boto.

Boto 3 Documentation
Credentials Configuration
S3 API Reference

>>> import boto3
>>> s3 = boto3.client(‘s3’)
>>> s3.list_objects_v2(Bucket=’grfn-content-prod’, MaxKeys=2)[‘Contents’][
{
‘Key’: ‘S1-IFG_RM_M1S1_TN005_20170920T004032-20170710T004002_s3-resorb-397c-v1.1.3-standard.full_res.zip’,
‘StorageClass’: ‘GLACIER’,
‘ETag’: ‘”f2b2d9b77157e2f4be2d9811700e5908-2″‘,
‘Size’: 164511413,
‘LastModified’: datetime.datetime(2018, 2, 20, 18, 16, 7, tzinfo = tzlocal())
},
{
‘Key’: ‘S1-IFG_RM_M1S1_TN005_20170920T004032-20170710T004002_s3-resorb-397c-v1.1.3-standard.unw_geo.zip’,
‘StorageClass’: ‘GLACIER’,
‘ETag’: ‘”2a9e191d8727af0836c19b050c8c8e2f-3″‘,
‘Size’: 299567035,
‘LastModified’: datetime.datetime(2018, 2, 20, 18, 16, 7, tzinfo = tzlocal())
}
]>>> s3.head_object(Bucket=’grfn-content-prod’, Key=’S1-IFG_RM_M1S1_TN005_20170920T004032-20170710T004002_s3-resorb-397c-v1.1.3-standard.full_res.zip’)
{
‘Metadata’: {},
‘ResponseMetadata’: {
‘HTTPHeaders’: {
‘date’: ‘Wed, 25 Apr 2018 18:35:07 GMT’,
‘etag’: ‘”f2b2d9b77157e2f4be2d9811700e5908-2″‘,
‘content-type’: ‘application/zip’,
‘x-amz-storage-class’: ‘GLACIER’,
‘last-modified’: ‘Tue, 20 Feb 2018 18:16:07 GMT’,
‘x-amz-id-2’: ‘X9z2Dmd/Ba4D0SRedulBVQEKk5IHsgRYAkaHi+9iGedW6NQZsT1Qk43b8ztonDT3GA6XpBlprcQ=’,
‘accept-ranges’: ‘bytes’,
‘server’: ‘AmazonS3’,
‘x-amz-request-id’: ‘6B9E0C3BD197BBDA’,
‘content-length’: ‘164511413’
},
‘HostId’: ‘X9z2Dmd/Ba4D0SRedulBVQEKk5IHsgRYAkaHi+9iGedW6NQZsT1Qk43b8ztonDT3GA6XpBlprcQ=’,
‘HTTPStatusCode’: 200,
‘RetryAttempts’: 0,
‘RequestId’: ‘6B9E0C3BD197BBDA’
},
‘ETag’: ‘”f2b2d9b77157e2f4be2d9811700e5908-2″‘,
‘ContentType’: ‘application/zip’,
‘ContentLength’: 164511413,
‘AcceptRanges’: ‘bytes’,
‘LastModified’: datetime.datetime(2018, 2, 20, 18, 16, 7, tzinfo = tzutc()),
‘StorageClass’: ‘GLACIER’
}

Geospatial Data Abstraction Library (GDAL)

GDAL is a translator library for raster and vector geospatial data formats.

NOTE: You must configure temporary security credentials before using GDAL.

GDAL Documentation
Virtual File Systems — AWS S3 Files
Virtual File Systems — Zip Archives
Raster Utility Programs

$ gdalinfo /vsizip/vsis3/grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard/merged/filt_topophase.unw.geo.vrt
Driver: VRT/Virtual Raster
Files: /vsizip/vsis3/grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard/merged/filt_topophase.unw.geo.vrt
    /vsizip/vsis3/grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard/merged/filt_topophase.unw.geo
Size is 5084, 6062
Coordinate System is:
GEOGCS[“WGS 84”,
    DATUM[“WGS_1984”,
        SPHEROID[“WGS 84”,6378137,298.257223563,
            AUTHORITY[“EPSG”,”7030″]],
        AUTHORITY[“EPSG”,”6326″]],
    PRIMEM[“Greenwich”,0,
        AUTHORITY[“EPSG”,”8901″]],
    UNIT[“degree”,0.0174532925199433,
        AUTHORITY[“EPSG”,”9122″]],
    AUTHORITY[“EPSG”,”4326″]]Origin = (-105.581388888888895,33.450277777777778)
Pixel Size = (0.000277777777778,-0.000277777777778)
Corner Coordinates:
Upper Left  (-105.5813889,  33.4502778)  (105d34’53.00″W,  33d27′ 1.00″N)
Lower Left  (-105.5813889,  31.7663889)  (105d34’53.00″W,  31d45’59.00″N)
Upper Right (-104.1691667,  33.4502778)  (104d10′ 9.00″W,  33d27′ 1.00″N)
Lower Right (-104.1691667,  31.7663889)  (104d10′ 9.00″W,  31d45’59.00″N)
Center      (-104.8752778,  32.6083333)  (104d52’31.00″W,  32d36’30.00″N)
Band 1 Block=5084×1 Type=Float32, ColorInterp=Undefined
Band 2 Block=5084×1 Type=Float32, ColorInterp=Undefined

$ gdal_translate -of GTiff /vsizip/vsis3/grfn-content-prod/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard.zip/S1-IFG_RM_M1S1_TN158_20180422T130337-20180410T130310_s1-resorb-70ec-v1.2.1-standard/merged/filt_topophase.unw.geo.vrt out.tif
Input file size is 5084, 6062
0…10…20…30…40…50…60…70…80…90…100 – done.

Get Interferograms from Long-Term Storage

Sentinel-1 Interferogram (BETA) products older than 60 days may be transitioned to long-term storage. Files in long-term storage are not immediately available for download.

The storage status of a file (available, archived, or retrieving) can be checked by invoking https://grfn.asf.alaska.edu/door/status/<file_name> :

$ wget -O- -q https://grfn.asf.alaska.edu/door/status/S1-IFG_RM_M1S1_TN100_20180112T133507-20171231T133440_s1-resorb-697d-v1.1.3-standard.zip
{
  “status”: “archived”
}

 

Invoking the download URL for archived products will initiate the retrieval process and return a HTTP 202 ACCEPTED response:

$ wget -O- -q https://grfn.asf.alaska.edu/door/download/S1-IFG_RM_M1S1_TN100_20180112T133507-20171231T133440_s1-resorb-697d-v1.1.3-standard.zip
Your requested data are being fetched from long-term storage. Please try again later.

$ wget -O- -q https://grfn.asf.alaska.edu/door/status/S1-IFG_RM_M1S1_TN100_20180112T133507-20171231T133440_s1-resorb-697d-v1.1.3-standard.zip
{
  “status”: “retrieving”
}

 

The status URL can be monitored until the file’s status transitions to “available”. This usually takes a few minutes, but can take several hours when requesting a large number of files.

$ wget -O- -q https://grfn.asf.alaska.edu/door/status/S1-IFG_RM_M1S1_TN100_20180112T133507-20171231T133440_s1-resorb-697d-v1.1.3-standard.zip
{
  “status”: “available”,
  “expiration_date”: “2018-05-02 00:00:00”
}

 

Files with a status of “available” are immediately available for download via their download URL.

This python script is an example of using these tools to download a file from long-term storage.

Sentinel-1 Interferograms – Get Interferograms

Register for an Earthdata Login Account

A NASA EOSDIS Earthdata Login account is required for downloading data from the Alaska Satellite Facility. Visit the Register for an Earthdata Login Profile page to create an account.

Get Interferograms via Vertex

Sentinel-1 Interferogram (BETA) products can be browsed in Vertex from the “Missions” tab under “Beta Products”.  

Bulk downloads via python script or metalink files are not supported for Sentinel-1 Interferogram (BETA) products.

Get Interferograms via Earthdata Search

Sentinel-1 Interferogram (BETA) products can be located in Earthdata Search by entering “sentinel-1_insar” in the search bar. For more information, visit the How to Search using Earthdata Search documentation.

Get Interferograms from Long-Term Storage

Sentinel-1 Interferogram (BETA) products older than 60 days may be transitioned to long-term storage. Users attempting to access these files will see a brief delay while they are retrieved and made available for download. This usually takes a few minutes, but can take several hours when requesting large numbers of files. Users can choose to be emailed when all of the files they have requested are available for download.