Skip to main content

A package for converting ASF-derived Sentinel-1 burst SLC products to the ESA SAFE format

Project description

burst2safe

Utility for converting ASF-derived Sentinel-1 burst SLC products to the ESA SAFE format.

This is still a work in progress, and we recommend waiting until the release of version 1.0.0 for use in production environments!

Usage

To use the tool, install it via pip:

pip install burst2safe

Or conda:

conda install -c conda-forge burst2safe

Then, run the burst2safe command line tool using the following structure:

burst2safe --orbit 32861 --bbox 53.57 27.54 53.78 27.60 --pols VV VH

Where:

  • --orbit is the absolute orbit number of the Sentinel-1 data.
  • --bbox is the bounding box of the area of interest in the format minlon minlat maxlon maxlat.
  • --pols is the polarization of the Sentinel-1 data. Options are VV, VH, HV, and HH.

For more control over the burst group, you can also provide specific burst granule IDs to be merged into a SAFE file using the following structure:

burst2safe S1_136231_IW2_20200604T022312_VV_7C85-BURST S1_136232_IW2_20200604T022315_VV_7C85-BURST S1_136231_IW2_20200604T022312_VH_7C85-BURST S1_136232_IW2_20200604T022315_VH_7C85-BURST

This search is equivalent to the previous search. To be eligible for processing, all burst granules must:

  1. Have the same acquisition mode
  2. Be from the same absolute orbit
  3. Be contiguous in time and space.
  4. Have the same footprint for all polarizations.

The tool should raise an error if any of these conditions are not met.

The output SAFE file will be created in the current directory.

Strategy

burst2safe combines and reformats individual bursts into a SAFE file following the procedure described in the Sentinel-1 Product Specification Document In this document, ESA describes how to create an Assembled Sentinel-1 Level 1 product from individual Sentinel-1 Level 1 SAFEs. We use this same strategy to combine ASF-extracted burst SLC products into a SAFE file that should be compatible with any SAR processor currently capable of using Sentinel-1 Level SAFEs. For in-depth technical details of the implementation, we refer you to the Sentinel-1 Product Specification document above. However, it is important to know that ESA recommends merging Sentinel-1 data/metadata components using three primary strategies:

Include

A given data/metadata component is the same for all data slices, and any value can be used (i.e., polarization).

For Include components, the value associated with the earliest burst is always used.

Concatenate

A given data/metadata component is a series of time-ordered fields that can be combined into a single list (i.e., ground control points).

For Concatenate components, the fields are merged and subset to the start/stop times of the included bursts. Where present line sub-fields have also been updated.

Merge

A given data/metadata component must be recalculated using a process unique to each component (i.e., platform heading).

For Merge components, we have made the best effort to follow the merging instructions outlined in the product specification. While we hope to eventually correctly reconstruct all merged fields, there are some components for whom the implementation is unclear. In these cases, we have set the values of these fields to NULL ('') so that downstream processors raise errors instead of using incorrect values. If any fields we have omitted in this way cause your application to fail, let us know so that we can prioritize its development!

Omissions and Nulls

In some cases, we have not created certain datasets or metadata components because the creation process is unknown to us or is irrelevant for assembled products. This includes datasets such as all datasets in the SAFE preview directory the SAFE report PDF included with each SAFE file.

All full accounting of omitted datasets and fields can be found below:

  • Annotation
    • Noise
      • No intentional omissions or nulls.
    • Calibration
      • No intentional omissions or nulls.
    • RFI
      • RFI annotation XMLs are currently omitted, but we plan to add this soon.
    • Product
      • generalAnnotation/productInformation/platformHeading set to ''.
      • imageAnnotation/imageInformation/azimuthPixelSpacing
        • calculated as average of Level 1 SLCs, not slices.
      • imageAnnotation/imageInformation/imageStatistics/outputDataMean / outputDataStdDev
        • calculated using np.mean/np.std on valid data.
      • swathTiming/burstList/burst/byteOffset components are set to ''.
  • Measurement GeoTIFFs
    • Invalid data as denoted by swathTiming/burstList/burst/firstValidSample and lastValidSample are set to zero. This done by the ASF extractor, not this tool.
    • TIFF tags that are not GeoTIFF tags are omitted. See Product Specification Table 3-8 for full list.
  • Preview
    • All preview datasets and the preview directory are omitted.
  • Support
    • s1-product-preview.xsd, s1-map-overlay.xsd, s1-quicklook.xsd and are omitted.
  • Manifest
    • metadataObjects associated with support datasets are omitted.
  • SAFE report
    • The SAFE report PDF is omitted.

Other Known Compatibility Issues

This tool may not work for SAFEs created with Sentinel-1 IPF version <= v3.19. In the product annotation files, the height sub-field of GeolocationGridPoint components was not available prior to IPF v3.19. This field is currently used to concatenate geocontrol points for the measurment GeoTIFFs, and thus the tool may fail if these sub-fields are not present.

License

burst2safe is licensed under the BSD 2-Clause License. See the LICENSE file for more details.

Contributing

Contributions this project are welcome! If you would like to contribute, please submit a pull request on the GitHub repository.

Contact Us

Want to talk about burst2safe? 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 burst2safe's discussion page

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burst2safe-0.2.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

burst2safe-0.2.0-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file burst2safe-0.2.0.tar.gz.

File metadata

  • Download URL: burst2safe-0.2.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for burst2safe-0.2.0.tar.gz
Algorithm Hash digest
SHA256 286c8a101bce75928680400ec7b70c5a36175886b0177ddd5b68a0d1d2f17d5c
MD5 792fbd924a475ac1e32422ef1c34b770
BLAKE2b-256 dc9e81aea0a970d7891d05b71c8abe0969259756ccf61f48793e568e3aad9bd3

See more details on using hashes here.

File details

Details for the file burst2safe-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: burst2safe-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for burst2safe-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 331177a1265cf0be941b63170a565af21b8fae5061344ef8246d4c33cbcb60f0
MD5 c7e8f92ff8265946271dabf9646b4604
BLAKE2b-256 ded6f8993454e8c6936a369955f24602425ffee4f4507729a0340d6fa30a85d6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page