Coregistrating more than two Sentinel-1 SLC IW products

Dear @lveci ,

I have downloaded more than 20 sentinel-1 SLC IW products of the same track.
Using the S1 TOPS coregistration, which i’ve read from the tutorial is the suited one for computing insar procedure with S-1 SLC products, i’m trying to coregister them, but it only allows me to insert and compute it with two images, one master image and one slave image.
My question is if it is possible, or is there another way, to compute the coregistration procedure, using all S1 SLC images and coregistrating the slave images to one master image.
ex. 20 S-1 SLC images to coregistrate.
19 slave images, 1 master image

Thank you :smiley:

2 Likes

Dear Asterios,
Greetings

I have the same question, plz informif you found solution to it.
Me too have downloaded the same S1-IW-SLC image data for InSAR for deformation detection.
I am not able to coregister two images after taking a subset. It shows an error related to GCP’s. Plz update.
Amardeep SIngh Virk
virk_rana@yahoo.com

Try using at least a whole burst in the co-registration.

Dear Asterios and Virk

I am having the same problem and have been trying to coregister several Sentinal-1 SLC IW images with no success. Did you guys find a way? If so, please contact me at "khoshnevis_alireza@yahoo.com", thanks.

Alireza Khoshnevis

S-1 co-registration works in SNAP so either:

  1. you are doing something wrong or
  2. the scene has changed too much between the acquisitions or
  3. some of the products in question are defective.

Are you following the tutorial for S-1 TOPSAR Interferometry?

1 Like

Hey mengdahl,

I think the problem is not with what you suggested. The thing is that if you want to coregister many SLC IW images with the S1 TOPS Coregistration procedure, it is not possible to coregister more than two images at once (as described in the tutorial). You can simply choose one master image and ONE slave image. So it’s only possible to coregister two images. But it’s not possible to use two or more slave images. This only works with the “Automatic Coregistration” process. But that is not executable with Sentinel-1 SLC data. So I hope someone can help.

You can achieve what you need to do by using the batch-processing functionality in SNAP. Or alternatively scripting everything and using the command-line.

Dear Mengdahi,
yes we are using the same tutorial you mentioned, but still the problem is there.
I have different sets of images of 2015, but could not succeed with any pair.
thanks for the replie.

Do you have an image-pair acquired 12 days apart from the same track & over terrain you expect to stay coherent for that period of time?

Hey @virk_rana
does your data stack contain scenes from before March 2015? In this case you still need to perform the EAP correction on your data. The automatic EAP correction was introduced In March 2015, so for all scenes before this date, you still need to perform this manually. Here is the link to ESA’s newsfeed with this information:

https://sentinel.esa.int/web/sentinel/news/-/article/sentinel-1-impact-of-eap-phase-compensation-on-the-interferometric-phase-preservation

Maybe this causes the difficulties with coregistration.
Maryse

2 Likes

Hi @virk_rana ,

Was this problem ever resolved? I have been looking for a way to coregister multiple (4+) S1 SLC scenes (over the same area, track, 12 days apart etc.) for the purposes of multi temporal speckle filtering (MTSF), and while I have been struggling slightly, I have managed using the command line gpt function to get individual polarisations to coregister (by coregistering each scene indivually to the first using back geocoding, and recombining them before the MTSF). It’s a bit of a pain, and makes automation annoying as I have different numbers of scenes across different locations (i.e. making time series in site a, another in site b etc. before people think I’ve been trying to coregister with different areas).

All my scenes are post March 2015, so the EAP correction issue is not an…issue. From what I’m aware, it is possible to use both polarisations when using a MTSF, but since the back geocoding graph requires a single channel to be selected, I have geocoding issues when I stack both channels, meaning there is an offset between VV and VH.

I’m continuing to work on it, but I would appreciate any advice, or the pointing out of obvious errors in my chain below.

I have tried topsar split, deburst and merge (without backgeocoding) then createstack, cross-correlation, warp, MTSF, with terrain correction before and in another attempt after the coregistration step - with no success… just a lot of java null errors

So far, my graphs (I made two to reduce the memory load and overall complication) look like this:

3 times the below, for each polarisation:


followed by the below, reading all 6 products: Read - VV image 1 and image 2; Read (2) VV image 1 and image 3 (selected); Read (3) VV image 1 and image 4 (selected); Read(4) - VH image 1 and image 2; Read (5) VH image 1 and image 3 (selected); image(6) VH image 1 and image 4 (selected) etc.

Thanks,

James

1 Like

I should also address the above reply to you, @asterios_papas

Handling multiple polarizations in backgeocoding has been solved. Where do you get the nulls errors?

You were totally right, I think I was using the same graph xml that I started with for a coherence estimation… It was still strange though - once I managed to coregister all images using backgeocoding (two scenes at a time) I found a lot of banding issues that appeared to be related to phase, which I solved by skipping that step and using create-stack ->cross correlation -> warp after multilooking.

A reason for the null errors was that I was testing on my local machine, with a limit of around 10gb of vmem, and that is why I was splitting up the polarisations.

Sorry for the slow reply,

James

Hi All,

I need to prepare the time-series of interferograms for creating the DEMs. The goal is the vegetation height estimation using S1 SLC images. This task is not very easy.
My boss says that I have to coregister all the 6 images in one stack, split them and create pairs of the interferograms from that. I chose the last date’s image as master and I can coregistrate all the 6 images in one stack … and here my problems start.

  1. If I split them, I have 4 images. Master (the last date) and image from the very first date lost. Ok, I think I have to coregister (or create stack) for pairs which I would choose from these 4 images, but neither coregister, not create stack are able to help me. Coregister shows an error, create stack works, but I can’t create interferogram after it. It doesn’t show any message, just don’t create anything.
  2. I tried to go further with the monster stack. I created the ifg from it, did topo phase removal, Goldstein filter. On this stage I can’t split the stack because of “NodeId error”. So, I exported this to SNAPHU, did unwrapping, but it SNAPHU does work only on the master image. Despite I was able to import it back I can’t obtain any information for my slave images.
  3. I tried to delete images and metadata from my stack manually. It doesn’t work. In any case, I receive results for my master image only.
  4. I tried to work with pairs only. If I would have the same master for each pair I would have the results only for the date of the master image. If I would work with pairs having images from each date as masters I can obtain results for different dates, but my boss told me that is unproper way of working because such pairs would coregistered to the different master and therefore would be uncompareable to each other.
    So, I need to take all the coregistered images from the monster stack somehow, prepare new stack and recieve results for all my dates. I would really appreciate any suggestions. Thanks!

Hi guys, could I ask what the lessons learned are? I’m trying to coregister a year of SLC data (let’s say 30 scenes for each relative orbit). Isn’t there any option to take one master, and coregister at once all remaining 29 scenes to this master? I read here that you need to coregister each scene separately to that master; is that still the general workflow?
And even so, can you specify directly which scene to use as master? It looks like, if I try this, the software determines itself which image will be master and which one will be slave.
Would be easier to build a giant stack and coregister everything at once against one master…

Hi Kristof,

On one side, I would suggest to coregister one by one, as this option is more attractive when you try to do operational works, let’s say you need to coregister a new scene each 6 days. Or when you decide to continue your work by adding one more year of data. On the other side creating giant stacks requires also more powerful computing environments to work.

Depending of the application the selection of master image can matters or not much. For interferometric application it matters, but for amplitude analysis it is not that much relevant. You could select first image as master, and use all the other ones as slave.

This is only my personal point of view, as I said it depends on the desired application.

From a computational perspective one should do one co-registration at a time, sequentially (in batch). Generating monster-graphs uses huge amounts of memory and accessing many files at the same time makes I/O much more inefficient.

@mdelgado and @mengdahl, thanks to both of you for the swift replies. I’m creating time series of coherences, so not sure based on what I should choose the master image.
Although processing power is not too much of an issue here, I agree with your advice and I’ll process each scene separately against the master. With regard to that, I use S1-TOPS coregistration tool. The tool has two “read” functions, but it doesn’t talk explicitly about master and slave. Do I have to assume that the first read will always be the master, and the second one the slave?

In addition, as I’ ve been reading earlier in this thread, it’s still necessary to do the complete coregistration for each subswath separately, and merging them again afterwards?

And finally, let’s say you want to process into different products: coherence, Sigma0 amplitude and Gamma0 amplitude. Coregistration is beneficial for all these products. When is generally a good time? My first thought:

SLC -> TOPRSAR-Split -> Apply precise orbit -> back-geocoding -> write to coregistered image

That output file can then be used for:

-> thermal noise removal -> calibration -> debursting -> multilooking -> TC -> output Sigma0
-> thermal noise removal -> calibration -> debursting -> TF -> multilooking -> TC -> output Gamma0
-> coherence estimation -> multilooking -> TC -> output coherence

Or do I make a mistake somewhere?

Hi @kristofvt,

If you plan to use coherences better not get the master as the first image as mentioned on my last post, as coherence decorrelates with time.

Master is the Read 1 and slave Read 2.

I have put available some scripts that could help you to do so, you only need to change the xml to use in one of the steps. Not sure you needed. It can be found in the thread: Snap2stamps package: a free tool to automate the SNAP-StaMPS Workflow .
If you may want me to help you to customise the processing for your particular case, contact me.

Regarding the procedure you mentioned, at first sight it seems fine to me.

I hope this helps.