Relative heights to absolute heights in DEM generation?

Hello everyone!!

I have been looking for this question along the forum and I have found several people asking for this topic (the best example in here) but I haven´t found a clear answer for it (I apologise if I’m duplicating the topic).
So, my main question is, can I use SNAP 3.0 to convert relative heights to absolute ones? What I have to use and do if SNAP can be used to this purpose? Or maybe, on the other hand, I have to use other type of software?

I have read in the linked topic that I attach before that the idea to make this conversion it’s to have a known altitude point and change the altitude for the rest of points based on this one. I do understand this in theory but I don’t know how to put it in practise, any suggestion?

Thanks for your time.
Best regards,
Eduardo Ramos.

Well, finally I have solved my question. If anyone has this same question in the future, I have to say that the elevation map that SNAP computes is correct, I mean, the altitudes already are absolute heights (not relative), Google Maps has the possibility of giving heights for a given coordinate, I checked my elevation map comparing with the data of Google Maps and are very similar.

Best regards.


Thank you!
Could you please give the steps that you did to get correct DEM using SNAP. Actually, I am trying to build a DEM using two S1 SLC but I am not getting a good result. The temporal and perpendicular baselines of my data are: 12 days and 62m.

@ABraun Need your suggestion.

I have created 3 InSAR DEM (of various baselines) from Sentinel-1A. I used the standard procedure prescribed in SNAP forums to generate DEMs (Used Phase to Elevation). I then exported the elevation-vv of 3 DEMs and elevation of 1 DEM (I used SRTM 1 sec) as GeoTIFF. I loaded all the 4 DEMs in qgis 3.0. I used profile plugin tool. Took a random crossection and got the graph.
You have said earlier about various InSAR errors and the limitation of Sentinel-1A satellite. So the elevation got from the InSAR DEMs are relative elevation.

The study area is Uttarakhand state, India.

For the profile plot, the pink line is SRTM 1 second DEM.
Violet, Red, Blue are InSAR DEMs obtained from Sentinel-1A.

My query is 1. how to convert the relative elevation to absolute elevation ? ( I would like to compare the terrain profile of Sentinel generated DEMs and other openly available DEMs)
Also i am searching for contour map of my study area. Access to it is getting delayed.

  1. Is there any other method to convert the relative to absolute elevation ?

Provision of any links to follow-up is very useful. Thank You ! :slight_smile:

if you used “phase to elevation” based on SRTM 1Sec, the offset shouldn’t bee this large actually. What you can do is create a scatter plot between each S1 DEM and SRTM and try to find out their mathematical relationship (ideally expressed by a linear equation). You could then use the equation to correct the S1 DEMs accordingly.

e.g. something like elevation_corrected = 0.34421 * S1DEM - 23.5381

You can create this scatter plot in SNAP already after you terrain corrected the datasets including the SRTM reference. The resulting product should have both S1DEM and SRTM and allow you to calculate the scatter plot.
Maybe if you set pins at sufficient locations, you could also use the correlative plot view to retrieve the formula directly from SNAP. It requires point data (with elevations of SRTM) and a raster (your S1 elevations):

Thank you for the reply. Will try it out and let you know of the results

I have the selected points of the SRTM 1 arc second as shape file and the elevation_vv as raster. I tried numerous ways to import and use. But the co-relative plot is not working. I checked for tutorials in youtube and also in forum. Not much information available on how to use the co-relative plot. Kindly guide me !

can you send me a shapefile with the S1 elevations so I can check?

points.dbf (1.5 KB)
points.prj (145 Bytes)
points.sbn (324 Bytes)
points.sbx (124 Bytes)
points.shp (716 Bytes)
points.shx (276 Bytes)

Link for elevation (SRTM 1 arc second DEM ) file. Forum said it is too big so uploaded in my drive.

Link for elevation_vv (DEM from Sentinel-1A) file. The files are in TIFF format

thank you for providing the data

I just tested it and it technically works:

  1. import the shapefile into the S1DEM (it is called points) then
  2. Open the raster
  3. Open the correlative plot
  4. Select “Use ROI mask”
  5. Select “points” as point source and “Elevation” as the attribute
  6. Select “Show regression line”.

The green line is the regression line, the blue one is the bisector.

As you see, the R² is very low because there is no clear correlation between the actual elevation (from the attribute) and the InSAR elevations from the raster. This has two reasons:

  1. there are not enough points for a stable regression
  2. your InSAR DEM is of quite bad quality, probably because of decorrelation (too much time between the images). It doesn’t reflect the topograpy at all and is basically just a ramp.

The regression works if there is a general under or overestimation of elevations or trend in your InSAR DEM. But I’m afraid no regression can fix an InSAR DEM of this quality:

You can select another image pair with shorter temporal baseline. But if there is much vegetation in your study area, you cannot do much about decorrelation, especially with 6 or 12 day repeat pass pairs.

Thank you very much for the analysis and your time towards my query :slight_smile: . I shall try it and see. My study area is highly mountainous and also has a vast coverage of vegetation. I am well aware of the your explanations given to various topics in this forum. I shall try with more points and and also with shorter baselines ( i shall try S1A and S1B combination and let you know)

@ABraun I searched both in vertex (ASF) and Copernicus for Sentinel-1B data for my study area. I got just 10 - 18 data products.

I selected the 21-01-2017 and 14-02-2017 data product.The data has a temporal gap of 24 days and the baseline is Followed the steps mentioned in forum and generated DEM and converted 112.73 m. The elevation and elevation_vv into TIFF format. Loaded them in QGIS 3.0 and use the profile plot tool to generate the profile. The output was surprising.

The below is the profile plot. I have extensively read your replies to various posts in this forum. The red line is the SRTM 1 arc second DEM and the blue line is the InSAR DEM from Sentinel-1B.

  1. First query, the study area of mine has limited data products of 10 - 18 only in 2016 and 2017 for sentinel-1B. I would like to know what happened to 2018 and 2019. ?

  2. Why is there a huge difference between the profiles generated from Sentinel-1 A and this Sentinel-1B. ?

  3. Is the Sentinel-1B generated DEM gives the absolute elevation ? coz the profile coincides at many places.

I am yet to try the co-relative plot which you have said earlier for the sentinel-1B case. :slight_smile:

Good job. It doesn’t matter very much if it is Sentinel-1 A or B. You can even combine Sentinel-1A and B in one pair to reduce the temporal baseline to up to 6 days. What is decisive is the perpendicular baseline which should not be too small. Values over 100 meters as in your example are often more suitable than very short ones because they are more sensitive to topographic variation. Furthermore it is important that there is no rain during the acquisitions because this leads to atmospheric disturbance of the phase. Lastly, images from the dry season contain less soil moisture and vegetation features, which lead to phase decorrelation.

If you use phase to elevation, a external DEM (at best SRTM 1ArcSec) is used to put the unwrapped phase into a vertical context that makes sense. Your unwrapped phase can still contain trends or ramps which superimposing the actual topography but this can be prevented by the selection of suitable images as described above.

As for the availability of data in 2018 and 2019: Sentinel has a nearly global coverage so there should be images, maybe of other tracks. But according to the acquisition plan some regions are observed at shorter intervals than others.

1 Like

Thank you very much for your reply and explanation.

  1. I tried searching products for sentinel-1B. The below screenshot will explain it. The products shown show random dates in 2016 and 2017. If i specify 2019 or 2018 specifically, it doesn’t show any product from S1B. I tried with london as location and checked it with S1B. it shows a huge range of products from 2016 to 2019.

The below screenshots are location of my area and the products display. Maybe i have found a bug or something in scihub coperniucs website.

( footprint:“Intersects(POLYGON((78.55954070056039 29.851872503900594,79.58576290542942 29.851872503900594,79.58576290542942 30.36907664656094,78.55954070056039 30.36907664656094,78.55954070056039 29.851872503900594)))” ) AND ( (platformname:Sentinel-1 AND filename:S1B_* AND producttype:SLC AND sensoroperationalmode:IW))

The screenshots are in reverse order. Bottom to up.

I have got a product of matching 6 day interval between S1A and S1B. Will try it out and let you know about the results.

  1. The co-relative plot of the S1B data.

the R square has come to 0.60 which i feel is a huge value considering the my study area is highly mountainous and full of vegetation cover.

After this, how should i convert it, into the absolute elevation ? :relaxed:

yes, I agree that applying this regression makes sense. Maybe you can include some more values from above 3500 meters, because they are a bit underrepresented yet. But I’d say applying this regression already fixes the general shift of your data closer to the absolute elevation.

It can be that only Sentinel-1A images are made in some areas but as you will see, combining A and B is totally allowed (just make sure you have a suitable perpendicular baseline).

1 Like

thank you for the suggestion. Will try it out :slight_smile:

This time, i have tried with least temporal time pass (S1B-S1A pair of 6 days interval). I have taken two pairs and considered it.

  1. The first pair is 14022017-20022017 (S1B as master - S1A as slave) and generated the DEM with SRTM 1 arc second. They had a temporal interval of 6 days and baseline of 112.21 m. Converted it into TIFF format and loaded in QGIS 3.0 and used the profile plot tool.

Here, the red line indicates the SRTM 1 arc second DEM and the blue line indicates the InSAR DEM generated from S1B-S1A pair. It is seen that they follow the similar profile but with a huge offset in heights.

  1. Similarly, took an another pair and generated as the above process. 21012017 - 27012017 (S1B as master - S1A as slave) having a temporal gap of 6 days and baseline of 115.94 m.
    Used the profile plot too.

The red line is SRTM 1 arc second DEM and the blue line is the InSAR DEM generated from S1B-S1A pair.
Here in this profile, the height offset is high and also it doesn’t look similar to the SRTM DEM.

My query is

  1. For the first profile plot, the profile is follows a similiar trend with SRTM DEM. The second plot doesn’t follow any trend of SRTM DEM ? what maybe the reason.

  2. For the first plot, how to convert the InSAR DEM heights to absolute and see how it fares with SRTM DEM ?

  3. In my previous post, S1B-S1B pair gave a good R square(0.637) and the profiles overlapped at various places. I feel the Sentinel-1A has some issues.

I have been regularly reading the forum of various posts. Have noted the errors which you have said in various posts as replies. Tried the best possible way given here to generate DEM. Still i feel i need to improve the DEM a lot.

Will also try it again with another S1B-S1A pair and do the correlative plot for the 2 pairs.

most of the quality is already determined in the interferogram creation step. If the atmosphere introduces noise to the phase or if the fringe patterns are not well because of temporal decorrelation, you won’t get much better in the subsequent steps either. Sometimes, even if the perpendicular and temporal baselines are similar, the result can be different - it’s a bit luck to get a suitable scene pair with ideal conditions.

If you check the “elevation” checkbox during the terrain correction step, you get a product with the InSAR heights and the SRTM heights. Is the profile plot to plot their values against each other to see the trend between both. If the points are concentrated along a line, you can used it to find the linear regression equationto convert the InSAR DEM to the SRTM heights. Something like DEM_cor = InSAR*1.3 + 45

  1. In my previous post, S1B-S1B pair gave a good R square(0.637) and the profiles overlapped at various places. I feel the Sentinel-1A has some issues.

I have no opinion on that, maybe somene wants to comment?

1 Like

Thank you very much for your reply :slight_smile: !

Dear @ABraun , I also need your suggestion please…
My final dem is full of negative and wrong elevation values both in the dem generated from HV and other dem (elevation) included during terrain correction.The places by the sea are very different as shown in the image in the following. When I checked teh same place in Google earth elevation on taht point is 2 meters whereas in here it is 62 meters in Elevation _HV band and -14 m in elevation band. I have not used any mask for low coherence area becasue everywhere is vegetation and this is where I want to get dem. Do you think this is also becasue chosing wrong pair of S1 images? Although I had 12 days temporal and 153 meters base line…Kind Regards