Algorithms and utilities for Synthetic Aperture Radar (SAR) sensors. Enables cloud-native SAR processing via Xarray and Dask.
This Open Source project is sponsored by B-Open - https://www.bopen.eu.
Sarsen is a Python library and command line tool with the following functionalities:
Overall, the software is in the beta phase and the usual caveats apply.
Current limitations:
Non-objectives / Caveat emptor items:
The typical side-looking SAR system acquires data with uniform sampling in azimuth and slant range, where the azimuth and range represents the time when a given target is acquired and the absolute sensor-to-target distance, respectively. Because of this, the near range appears compressed with respect to the far range. Furthermore, any deviation of the target elevation from a smooth geoid results in additional local geometric and radiometric distortions known as foreshortening, layover and shadow.
The geometric terrain correction (GTC) corrects the distortions due to the target elevation. The radiometric terrain correction (RTC) also compensates for the backscatter modulation generated by the topography of the scene.
The easiest way to install sarsen is in a conda environment. The following commands create a new environment, activate it, install the package and its dependencies:
conda create -n SARSEN
conda activate SARSEN
conda install -c conda-forge dask proj-data sarsen
Note that the proj-data
package is rather large (500+Mb) and it is only needed to handle input DEM whose
vertical coordinate is not on a known ellipsoid, for example SRTM DEM with heigths over the EGM96 geoid.
The sarsen
command line tool corrects SAR data based on a selected DEM and may produce
geometrically terrain-corrected images (GTC) or radiometrically terrain-corrected images (RTC).
Terrain-corrected images will have the same pixels as the input DEM, that should be resampled
to the target projection and spacing in advance, for example using
gdalwarp
.
The following command performs a geometric terrain correction:
sarsen gtc S1B_IW_GRDH_1SDV_20211217T141304_20211217T141329_030066_039705_9048.SAFE IW/VV South-of-Redmond-10m_UTM.tif
Performing geometric and radiometric terrain correction is more demanding, but it is possible to produce the RTC of a full GRD product at a 10m resolution in one go (and it takes approx 25 minutes on a 32Gb MacBook Pro):
sarsen rtc S1B_IW_GRDH_1SDV_20211217T141304_20211217T141329_030066_039705_9048.SAFE IW/VV South-of-Redmond-10m_UTM.tif
The python API has entry points to the same commands and it also gives access to several lower level algorithms, but internal APIs should not be considered stable:
The following code applies the geometric terrain correction to the VV polarization of "S1B_IW_GRDH_1SDV_20211217T141304_20211217T141329_030066_039705_9048.SAFE" product:
>>> import sarsen
>>> product = sarsen.Sentinel1SarProduct(
... "tests/data/S1B_IW_GRDH_1SDV_20211223T051122_20211223T051147_030148_039993_5371.SAFE",
... measurement_group="IW/VV",
... )
>>> gtc = sarsen.terrain_correction(
... product,
... dem_urlpath="tests/data/Rome-30m-DEM.tif",
... )
The radiometric correction can be activated using the key correct_radiometry
:
>>> rtc = sarsen.terrain_correction(
... product,
... dem_urlpath="tests/data/Rome-30m-DEM.tif",
... correct_radiometry="gamma_nearest"
... )
This is the list of the reference documents:
The main repository is hosted on GitHub. Testing, bug reports and contributions are highly welcomed and appreciated:
https://github.com/bopen/sarsen
Lead developer:
Main contributors:
See also the list of contributors who participated in this project.
B-Open commits to maintain the project long term and we are happy to accept sponsorships to develop new features.
We wish to express our gratitude to the project sponsors:
Copyright 2016-2022 B-Open Solutions srl
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.