S1TBX expected data type - Multitemporal speckle filter issues

Dear S1TBX developers,

I would like to begin with a request to improve S1TBX help with information about the expected input data type i.e. if the operator is expecting linear scale or db units as well as if the data should be calibrated or not. This issue has been partially covered by this thread Threshold value for Refined Lee Filter? where it was shown that default threshold value in Refined Lee filter works only with the uncalibrated data. Basically, it is up to user to figure this out.

In my case I encountered significantly reduction of Sigma0 ~5dB when using multitemporal speckle filter. Again there is some default threshold (5000) which I am not aware if it applies to calibrated or not calibrated data in normal or db scale… If the data should be uncalibrated it would be disadvantageous for the cross correlation during the image stacking. Furthermore, the linear_to_db operator does not work for an image stack. So my current solution is to first calibrate and subset every image. Then to createStack, apply multitemporal speckle, apply terrain correction and to split stack. Finally, I convert resulting images to db units one by one. This results in 3 processing chains visible below. In image stack I have ~27 images covering more than one year.

I also developed similar processing chain with the unitemporal Refined Lee filter (See chain below)

In “Read(2)” the master image is read.

The results are displayed below with the same value stretch. As you can see the Multitemporal Speckle produces significantly lower values (darker colours). Is this behaviour expected? I would like to renew question from the Bug multitemporal filter report: What is the output of the current implementation of the multitemporal filter?

I would be grateful for any comments!!!

Sincerely yours,

Jan Musial

Yes Jan, you are correct. The edge threshold was introduced by the old refined-lee-filter in which additive speckle noise was assumed. In a later version of refined-lee-filter, multiplicative noise model is used, and this threshold is no longer needed. The new multitemporal filter in the upcoming release will allow you to select any of the speckle filters. The version you are probably currently using only uses boxcar.

How is it that linerTodB is not working for a stack? It should process all selected bands or if none are selected then all bands.

Dear Iveci,

I managed to overcome the problem with the unitemporal speckle processing chain. Apparently “create stack” operator while connecting two source products incorrectly sets the master image, so my slave become a master. As a results the entire processing chain outputs master instead of slave. So the images displayed above are not from the same date.
To overcome this I created two processing chains, one for calibration of every single image, an second for the rest of processing using the ProductSet-Reader operator.

This time the output is correct.

Regarding the “linearTodB” I confirm that it does not work for a stack. At least for SNAP v 2.0.2 running on Ubuntu 14.04.3. I am getting magic “0” error.

Best regards,

Jan Musial