Complex interpolation of TOPS SLC data

Hi everyone,

For coherence tracking applications, I need to oversample my TOPS SLC image pair.

What I did for now is to coregister SLC images such as I have my master and slave in I/Q format. It can easily be seen by making a simple interferogram.

Then I oversample the I and Q images.

Doing so, we observe issues related to the phase ramp inherent to the TOPSAR acquisition mode. Is there a way in SNAP to let the user performs a complex interpolation of TOPS SLC images ?

Thanks in advance,

Quentin

Hi Quentin,
I don’t think you can oversample the I/Q bands of the TOPS SLC image directly. Generally to interpolated a TOPS SLC image, you need to deramp and demodulate the image first, then interpolate the deramped/demodulated image, and reramp and remodulate the interpolated image at the end. Currently there is no such operator in SNAP. We will suggest ESA to add this function in future.

Regards,

Jun

1 Like

Hi Jun,

Thanks for your response.

You’re right : you can’t interpolate I/Q of TOPS SLC images directly. As you mentioned you have to deramp/demodulate image first.

However, in some process (such as TOPS coregistration), features such as a proper complex interpolation have to exist somewhere inside SNAP. One idea would be to “simply” export this feature and make it available to users. Or at least having the option to deramp images.

In the s1tbx, in s1tbx-op-sentinel1 -> src -> main -> java -> org.esa.s1tbx.sentinel1.gpf -> experimental -> BackGeocodingOp, such a function already exists :

line 1142 :

    private void performInterpolation(final int x0, final int y0, final int w, final int h,
                                  final Rectangle sourceRectangle, final Tile slaveTileI, final Tile slaveTileQ,
                                  final Map<Band, Tile> targetTileMap, final double[][] derampDemodPhase,
                                  final double[][] derampDemodI, final double[][] derampDemodQ,
                                  final PixelPos[][] slavePixPos, final int subswathIndex, final int sBurstIndex,
                                  final SlaveData slaveData, final String polarization) throws OperatorException

Best regards,

Quentin