Package: sarsen
SarsenAlgorithms and utilities for Synthetic Aperture Radar (SAR) sensors.
Enables cloud-native SAR processing viaXarrayandDask.This Open Source project is sponsored by B-Open -https://www.bopen.eu.Features and limitationsSarsenis a Python library and command line tool with the following functionalities:provides algorithms to terrain-correct satellite SAR datageometric terrain correction (geocoding)fast mode: to terrain-correct imagesaccurate mode: for interferometric processingradiometric terrain correction (gamma flattening)accesses SAR data viaxarray-sentinel:supports most Sentinel-1 data products asdistributed by ESA:Sentinel-1 Single Look Complex (SLC) SM/IW/EWSentinel-1 Ground Range Detected (GRD) SM/IW/EWreads uncompressed and compressed SAFE data products on the local computer or
on a network viafsspec-depends on rasterio>=1.3accesses DEM data viarioxarray:reads local and remote data in virtually any raster format viarasterio/GDALsupports larger-than-memory and distributed data access and processing viaDaskefficient geometric terrain-correction for a full GRDefficient radiometric terrain-correction for a full GRD.Overall, the software is in thebetaphase and the usual caveats apply.Current limitations:documentation needs improvement. See #6.Non-objectives / Caveat emptor items:No attempt is made to support UTC leap seconds. Observations that include a leap second may
crash the code or silently return wrong results.SAR terrain-correctionThe 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.Radar foreshortening: Terrain surfaces sloping towards the radar appear shortened relative to those sloping away from the radar.
These regions are much brighter than other places on the SAR image.Radar layover: It's an extreme case of foreshortening occurring when the terrain slope is greater than the angle of the incident signal.Radar shadows: They occur when ground points at the same azimuth but different slant ranges are aligned in the direction of the line-of-sight.
This is usually due to a back slope with an angle steeper than the viewing angle.
When this happens, the radar signal never reaches the farthest points, and thus there is no measurement, meaning that this lack of information is unrecoverable.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.InstallThe easiest way to installsarsenis in acondaenvironment.
The following commands create a new environment, activate it, install the package and its dependencies:condacreate-nSARSENcondaactivateSARSENcondainstall-cconda-forgedaskproj-datasarsenNote that theproj-datapackage is rather large (500+Mb) and it is only needed to handle input DEM whose
vertical coordinate is not on a known ellipsoid, for exampleSRTM DEMwith heigths over theEGM96 geoid.Command line usageThesarsencommand 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 usinggdalwarp.The following command performs a geometric terrain correction:sarsengtcS1B_IW_GRDH_1SDV_20211217T141304_20211217T141329_030066_039705_9048.SAFEIW/VVSouth-of-Redmond-10m_UTM.tifPerforming 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):sarsenrtcS1B_IW_GRDH_1SDV_20211217T141304_20211217T141329_030066_039705_9048.SAFEIW/VVSouth-of-Redmond-10m_UTM.tifPython API usageThe 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:>>>importsarsen>>>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 keycorrect_radiometry:>>>rtc=sarsen.terrain_correction(...product,...dem_urlpath="tests/data/Rome-30m-DEM.tif",...correct_radiometry="gamma_nearest"...)Reference documentationThis is the list of the reference documents:the geometric terrain-correction algorithms are based on:"Guide to Sentinel-1 Geocoding" UZH-S1-GC-AD 1.10 26.03.2019the radiometric terrain-correction algorithms are based on:D. Small, "Flattening Gamma: Radiometric Terrain Correction for SAR Imagery," in IEEE Transactions on Geoscience and Remote Sensing, vol. 49, no. 8, pp. 3081-3093, Aug. 2011, doi: 10.1109/TGRS.2011.2120616Project resourcesContributingThe main repository is hosted on GitHub.
Testing, bug reports and contributions are highly welcomed and appreciated:https://github.com/bopen/sarsenLead developer:Alessandro Amici-B-OpenMain contributors:Aureliana Barghini-B-OpenSee also the list ofcontributorswho participated in this project.SponsoringB-Opencommits 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:Microsofthas sponsored the support forGRDproducts and thegamma flatteningalgorithm.LicenseCopyright 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.