GLCM products of neighboring tiles are not complementary

Hi guys,
I am generating GLCM products from 3 S1 SLC tiles, which are classified at a later stage, but I’ve noticed that the the results for neighboring tiles are not complementary. Here you have examples of mosaicked GLCMMean (VH) images from 2 different dates:


Do you have any idea what’s causing that? In my graph, I changed the order of processing and put subsetting before the GLCM generation, which slightly improved the result, but still the image in this form is not suitable for classification.

Thanks in advance
Agnieszka

Could it be caused by different incidence angle? Also, different resampling leads to changes in textures. Just guessing.

Here is the processing that I do on each tile and I use the same parameters each time. I did a workaround by first doing preprocessing (Calibration-> Deburst → Multilook → Speckle-Filter → Terrain Correction) and then I merge tiles and generate GLCM. The result is satisfying but the whole process takes longer. Preprocessed images are complementary so I assume that there must be some general statistics of whole scene taken into account while GLCMMean is generated that affect the final result.

GLCM_processing

It could be that one of the two gets resampled in the merging process. Which operator do you use for creating the mosaic and is resampling involved here?

The thing is that before merging tiles (when I execute graph show above which generates me GLCM product) they do not match. Some parameter at the product generation stage makes them not complementary.
For merging I use gdalwarp command which is nested in my code:

`…

command = f’gdalwarp {" ".join(product_tiles)} {tempfile} -srcnodata 0 -co “NUM_THREADS=8” -co ‘“BIGTIFF=YES”’ --config GDAL_CACHEMAX 2000 -wm 2000 -multi’
…`

I think you can tell gdalwarp to use nearest neighbor resampling to avoid pixel averaging through bilinear resampling.