Matlab script for determining vertical displacement from snap-stamps ps_insar ascending and descending data

Hey Everybody,

multiple topics have already discussed the vertical or 3D displacement from ascending and descending data combination linked to this formula:

vert_disp = (unwrapped phase * wavelenght*cos(rad(incidence angle)))/ (-4pi )

or this formula:

(unwrapped phase * wavelength) / (-4 * PI * rad(cos(incidence angle)))

including these references:

but from all this information i am trying to make a matlab script that will take the time_series as presented in ps_plot(‘v-do’, ‘ts’) of both the ascending and descending image stack to merge these into vertical displacement based on raster operations.

for this i would like to know which files contain the incidence angle per pixel and also the deformation per pixel over all image pairs. the documentation on this is almost not available so i hope any og you can give me a head start on which matlab files to use for this script.

Thank you!


HI @Gijs

do you have any news about it?

Best regard



You can look in the git i mentioned here:

it includes a readme and in the end i used a simple method do calculate the vertical displacement.
The scripts are a mess since they were made on the fly to finish my thesis but i hope you can extract something from it.

Best regards,

thank you @Gijs - I was not aware of your scripts to convert LOS to vertical displacement.

Did I get it correct that three dates are required 1 ascending and 2 descending?

I am currently not quite sure about what these numbers mean and how the ideal folder structure should look like

Maybe you have an example on the folder structure which underlies the suggested conversion scripts?


for the area i studied (you can read my thesis on it: )

There was 1 ascending track and 2 descending tracks available, so i took the mean displacement of these 3 images for my final results, thats why you see 3 folders. Within these folders there were 2 timeseries of insar images (1 series before the fire and 1 after the fire). I will look into the scripts and see if i can extract the part i used to calculate the vertical displacement and give it to you.

Best Regards,


Hi, sorry for the intrusion.
Did you find the script?


Sorry for the long wait, I am not regularly checking this forum anymore and kinda forgot that i would do this.

So my folder structure looks like this: image
Which is just all the input files for Snap2stamps and the provided output which goes into stamps.
After running step 1-8 of stamps I run the code for extracting the PS points and their values which is located here: StaMPS-Visualizer, SNAP-StaMPS Workflow or in my documentation ( under the header " how to process in StaMPS". I save the points to a csv which is located in the results folder which is the only thing you need.

When you have the points saved as a csv I work through the points using the provided functions to calculate the vertical displacement (**** assuming only vertical displacement, for 3D read:

The functions i used combine 3 tracks because for descending i had 2 available tracks over my study area. With a bit of python skills you can easily change the script to read only 2csvs and combine them in almost the same way.

** note that the incidence angle i used to calculate for my measurements may differ for your study area, explenation regarding how to find this angle are located here: Difference between vertical and LOS displacement

If anyone has any problems doing this please email me, i can help with your coding stuff.

Best regards,


thank you for your answer and please don’t worry. This is an open space for exchange, no one is expected to visit regularly!

I will surely try your script.

Thank for for your contribution.
I am new in SAR data analysis with SNAP. I am studying the vertical displacement (subsidence and uplift) of an area. For most of the tutorial that i have consulted, the InSAR analysis is performed on data from exactly the same orbit. I mean the data (master and slave) downloaded from ASF overlap at 100%. I would like to know it is possible using SNAP to perform InSAR analysis from for example descending and ascending data. In case it is possible, what would be the advantage?

when all images are from the same track, you get the displacement along the line-of-sight (LOS) between the earth and the sensor.
If you want to have vertical displacement, you need images from both ascending and descending tracks. There are lots of approaches to achieve this, some are strightforward, others are more complex. At the moment, none of them is implemented in SNAP.

These things are also discussed in this topic: Difference between vertical and LOS displacement

1 Like


I think you are following my tutorial and to do both ascending and descending you will just have to do all the steps for both tracks separate. In the end you can combine the LOS results using one of the methods @ABraun mentioned above.


thank you for your kind support. I will read and exploit the provided source materials

I have downloaded your thesis. Thank you for your kind support and your hard work. I think we treat similar problems. I am interested in investigating land subsidence evolution following an earthquake that happen in 2007. therefore since there is no available sentinel data up to 2014. I will start from 2015 combining your method and the materials provided by @ABraun

there is ENVISAT data available by ESA which covers your period of interest:
Search for “Single Look Complex” products

waw. that is amazing. thank you very much. your support is very useful to me

I am sorry to bother you again. I am using windows 10 and i don’ t have MatIab licence. I know that the processing of StaMPS should be run in Linux terminal. I have installed ubuntu subsystem in my windows environment. I would like to know if it is possible to run Matlab environment of StaMPS without having full licence of Matlab. Is the licence include in the Matlab environment of Stamps? or shall I separatly buy a Matlab licence to run Matlab script in StaMPS in the subsytem linux of my windows?

StaMPS was developed under Linux, but some scrips are written in Matlab and need the core installation the Signal Processing Toolbox. Currently, there is no way around it.

Thank you for your reply. Instead of Matlab, do you know if it is possible to run the script through python?

no, Matlab scripts cannot be processed with Python.

Hello everyone!
Is it posible to replace Matlab with Octave?