Meaning with number of tile rows and columns in phase unwrapping

Hi

Actually I did not want to pen a new topic for this question but I did not find any post that explain this topic properly, so I think it would be nice to have it here.

I have bistatic TanDEM-X data and I want to make DEM. As I am interested only to a glacier that’s why I used subset area and make interferogram and then I used Goldstein filtering (windows size=5). my tiff image size is 5606*8252.

Then I used Snaphu export and I chose below numbers for tiles:

Number of tile rows:10

Number of tile columns:10

But it gave me below error:

Tile overlap is small

Then based on your suggestion, I reduced the number of tile lines and rows to 5:

Number of tile rows:5

Number of tile columns:5

but again same error (Tile overlap is small) although I had feeling that

Unwrapping tile at row……

Are going slower …

I did not wait for result and then I tried 3:

Number of tile rows:3

Number of tile columns:3

but again same error (Tile overlap is small) although I had feeling that

Unwrapping tile at row……

Is even slower that (5) and the number of them were less…

That’s why I did not kill running and were waiting and then it was done:

I got below unwrapped result that it has obviously some problems…

For last try I used this:

Number of tile rows:1

Number of tile columns:1

And it worked…


its result:

Now actually I have many questions:

  1. What are these ‘Number of tile rows and columns’ are doing?
  2. One of my friend put ‘Number of tile rows and columns:10’ and she got result but I had to reduce it to 1…why while we are using same steps but for one of us is working with ‘Number of tile rows and columns:10’ and for another person is not working?
  3. How we know which number is the best for ‘Number of tile rows and columns’? I do not know what is standard for ‘Number of tile rows and columns’?
    Sorry for many questions but actually, I read questions related to this in STEP forum but I did not find my answer.

What value did you set for overlap?

Unwrapping is an iterative process, even running it twice with identical configuration can lead to differences because of the random seeding component.
Tiles help to reduce unwrapping errors, but the edges need high overlap to be merged seamlessly.
Have you seen this explanation: SNAPHU Unwrapping - #421 by ABraun

Thanks for reply @ABraun .

I found this explanation

That it explained:

With the tile option, it runs the SNAPHU optimization on each tile separately, which uses less memory and time than doing the optimization on the full interferogram. At the end, it takes the unwrapped phase from each tile and uses the overlap with adjacent tiles to estimate an overall offset for each tile relative to the other tiles and prepare a final unwrapped phase for the full interferogram.

And then you mentioned:

Tiles help to reduce unwrapping errors, but the edges need high overlap to be merged seamlessly.

So, I think if we have more tiles (I mean 10 in 10 tiles instead of 5 in 5 tiles), then it means our unwrapped result will be more accurate because it takes the unwrapped phase from smaller tile…is not it? So, then if we have error for any of this tiles, then that error would be for a smaller tiles in comparison with bigger tiles?

  1. So, just imagine an interferogram is 3000*4000, so then based on SNAPHU Unwrapping - #421 by ABraun,

How we can know ‘number of tile rows and colums=10’ is better or ‘number of tile rows and colums=5’? is there any way to find optimized number?

  1. Regarding your question:

What value did you set for overlap?

I put it as ‘zero’ because it was suggested by SNAP defaults.

But then why it worked with ‘number of tile rows and columns=1’ and with overlap 0? But did not work with ‘number of tile rows and columns=10’ and with overlap 0?

I think I still do not get what this overlapping is doing……

  1. As you can see I got result with 1 in 1 tiles and overlap zero but how can I know this result is OK? So, maybe if I tried 10 by 10 tiles and 100 overlap then I got better result!!! How can I which result is better? more tiles or less tiles?

When using tiles, overlap is needed in the final step:

With zero overlap, as you saw, there can be artifacts along edges of adjacent tiles. The final step computes a “fudge factor” for each tile to improve agreement in the overlap areas.

With zero overlap, the presence of visible edges does provides some insight into the uncertainties, and may be acceptable for some applications. Applications that rely on edge-finding often find tile edges that aren’t obvious in a screen image.

The OS’s supported by SNAP all provide tools to monitor resource usage. These can help you determine a suitable number of tiles.

**Thanks for reply @gnwiii **

With zero overlap, as you saw, there can be artifacts along edges of adjacent tiles.

Yes but this is in a case that you give tiles more than one (I mean 2,3,5,…10) with overlap zero like here that I used 3 by 3 tiles and zero overlap:

but if you give tiles 1 by 1 and with overlap zero, then there is not artifacts along edges. As you can see in my result here:

The final step computes a “fudge factor” for each tile to improve agreement in the overlap areas.

With zero overlap, the presence of visible edges does provides some insight into the uncertainties, and may be acceptable for some applications. Applications that rely on edge-finding often find tile edges that aren’t obvious in a screen image.

What do you mean with edge-finding? Edge of any tiles or edge of whole unwrapped result?

The OS’s supported by SNAP all provide tools to monitor resource usage. These can help you determine a suitable number of tiles.

Sorry, what do you mean with OS? How it can help to find a suitable number of tiles.

Anyway, my interferogram is ‘2803 by 4126’ and I applied:

10 by 10 tiles and row and column overlap 50

5 by 5 tiles and row and column overlap 100

But both gave me below error:

WARNING: Tile overlap is small (may give bad results)

Then I used:

1 by 1 tiles and row and column overlap 0,

Then it worked but now I do not know can I trust to this result or not? why it did not work with 10 by 10, 5 by 5 but worked with 1 by 1? More tiles means more trust-able result?

Overlap is the number of pixels at the edge of each tile which are added beyond the size of the tile. This is indicated by the red square in my example which is larger and contains part of th enext tile. This increases the chance that the transition between two tiles is smooth and seamless instead of creating phase jumps.

No tiles (1x1) means no overlap is needed, but the more complex your topography, the higher is the chance that unwrapping a large raster becomes unsolvable. The fringes are integrated iteratively during the unwrapping and sometimes this creates errors. If your computer manages to unwrap a single tile (1x1) and the result looks file (you have to tell if you are happy with it), even better.
But creating tiles makes sense for computers with less capacities and complex topography because the chance of errors for small rasters is reduced.
Imagine what unwrapping does: the continuous (ambiguous) phase signal is converted to an absolute surface. The algorithm has to start at one point and eventually gets back to until the entire raster is unwrapped. Depending on the shape of fringes, the amount of noise, and the size of the rasters, this can lead to problems or unwanted trends. Unwrapping small tiles reduces the chance that errors add up over the entire raster. In the end, these tiles are merged together and the overlap areas help to make this without seamlines.

1 Like

Edge finding can be used to draw lines where there are large gradients (the “edges”), but, as in your 3x3 0-overlap example, tile-based calculations may introduce a step change at tile edges.

Tiles are generally needed when the system capacity won’t permit processing the entire scene, or to allow parallel computation on multi-processor systems. OS is the “Operating System”, in your case, Windows. You should look for Windows documentation to learn about the tools it provides to help you understand the resource demands of a process. Most systems these days can have multiple CPU “cores” as well as ways to run multiple threads in each core. Tiles let you
take advantage of multiple cores, but using tiles introduces overhead, including the extra step to reduce artifacts at tile edges.

1 by 1 tile avoids the need to employ “fudge factors” to get rid of edges. Most people only use tiles when the system can’t complete the task with a single tile in reasonable time, and then they try to use the smallest number of tiles that provides reasonable performance.

1 Like