I am trying to get an array of the incidence angle of sentinel 1 GRD across a large number of SAR images downloaded through the sentinel hub python api. I have downloaded the DEM, terrain corrected SAR, and local incidence angle but I can’t figure out a way to remove the influence of the terrain slope from the local incidence angle (without further knowledge of the satellite heading/azimuth). Does anyone have any ideas? I do not mind if the output is wrong as long as the error is systematic - the data is being normalized anyway.
I have the DEM, slope, slope aspect over the region but as the metadata on the satellite positioning and orientation is limited through the sentinel hub api so I am struggling to write a function for this. I would appreciate any help/suggestions or even someone telling me this is dumb aha. I thought about masking out the areas where slope exceeds 3 degrees and then interpolating but that would be far too inaccurate.
Hi @whamitch ,
You should be able to obtain
incidenceAngleMidSwath from the annotation data included in the original SAFE file (see the documentation).
In addition, it sounds like you’re trying to do the radiometric terrain correction (RTC). Using Sentinel Hub, you can actually make a request of RTC data with this example snippet. You can also choose from beta0, sigma0 and gamma0 (see explanation).
There’s also some nice discussion on the step forum:
I hope this would be helpful.
Hi @chung.horng !
Thanks for the reply!
I am actually trying to get the flat earth incidence angle. I have downloaded a huge backscatter dataset (Sentinel1GRD sigma0) using SentinelHub python api. I would like to input the Sentinel1GRD without orthorectification and the flat earth incidence angle into a model. I understand the incidence angles from the satellite are known 29.1° - 46.0° for my IWGRD product, but I would like to find a highly scalable method to generate an array of these values across each SAR image I have downloaded.
I thought that by downloading the local incidence angle and the DEM I could sort of reverse engineer the problem. My idea was that by generating slope and slope aspect I could compute the terrain normal vector and then use this alongside the local incidence angle to drive the satellite line of sight vector. However, I made a mistake. The local incidence angle is calculated through an equation derived from the dot product, and there’s an inherent limitation: it provides the magnitude of the angle between the two vectors but doesn’t give you their exact relative orientations in 3D space. Soooo… long story short I am very stuck haha.
As Chung explained you can obtain the
incidenceAngleMidSwath from the original SAFE file. However, this band is not available through Sentinel Hub APIs. I am not a SAR expert and so are about as stuck as you are, sorry!
I would recommend looking into the workspaces you can utilise in the Copernicus Data Space Ecosystem as this might be more suitable for your application.