Warp Operator: Banding problem

Following on problems discussed in this topic, with the newest S1TBX I still found some banding-problems after coregistration and applying the warp operator on the same data. When forming an interferogram and coherence band, the tiles show up as bands in the image. The banding consists of a phase jump per tile and a varying coherence per tile. I supposed it has something to do with border problems due to the tiling, but it seems related to (for what I can see) only Envisat.

I’ve been processing in debug mode to see where it goes wrong. In the Warp Operator (WarpOp) the original tile is resampled based on the calculated Coregistration Polynomial, using JAI. It considers this piece of code:

            // create source image
            final Tile sourceRaster = getSourceTile(srcBand, targetRectangle);

            if (pm.isCanceled())
                return;

            final PolynomialModel warpData = warpDataMap.get(realSrcBand);
            if (!warpData.isValid())
                return;

            final RenderedImage srcImage = sourceRaster.getRasterDataNode().getSourceImage();

            // get warped image
            final RenderedOp warpedImage = JAIFunctions.createWarpImage(warpData.getJAIWarp(), srcImage,
                                                                        interp, interpTable);

However, as far I could see at first sight, the tiles are not increased to avoid border problems. This means that interpolation at the borders could be problematic. So considering that this could be the problem, I’ve tried to solve the problem by increasing the sourceRaster by using a larger rectangle and by adding information about how to deal with data outside the image (BorderExtender), which is also used in CoherenceOp. But as it seems, the warp-function is using the original source image (srcImage). This image has annotations of the size of the original tile, so not the ‘extended’ version. This image is then provided to the warp-function in JAIFunctions via a ParameterBlock. It is unclear to me if the warp-function is able to use data outside the tile or not. If not, then it is likely that tile-borders cause the banding problems.

However, this would also imply that it causes problems for all sensors. But I could not replicate the same problem with other sensors (ERS, TSX, RSAT2). That would mean that this problem is specific to Envisat. To be complete, I’ve used ERS data in an Envisat format (E1/E2), not CEOS, so I suppose they would use the same reader.

Another interesting phenomena is that when testing more pairs of Envisat (same stack), some pairs showed banding, but one interferogram looked good.

I coregistered and resampled (warped) 3 Envisat pairs, which were all showing bands, and 2 ERS-pairs and 3 TSX-pairs (same settings), which didn’t show banding.

What could it be that causes these banding problems with Envisat?

Kind regards,

1 Like