GFZ / arosics

AROSICS - Automated and Robust Open-Source Image Co-Registration Software
https://git.gfz-potsdam.de/danschef/arosics
Apache License 2.0
136 stars 26 forks source link

Registering Landsat 8 to Sentinel-2 #50

Open dxanthosis opened 6 days ago

dxanthosis commented 6 days ago

arosics version: v1.11.0 Python version: 3.11.9 Operating System: windows 11

Hello. I have been trying to coregister Landsat 8 bands (30m) to Sentinel-2 band (10m). So far, I have been using the default parameters and mostly changing the grid resolution and window size. I do not want to resample Landsat 8 to match Sentinel-2 resolution.

All the results show higher RMSE values after shift correction and many tie points were filtered out with SSIM. Inversely, i tried using Sentinel-2 as the reference (as per your example) and it shows similar rmse before and after shift correction, which I think is understandable due to the Global Reference Image.

What parameters should I use when registering Landsat 8 bands using Sentinel-2 band as the reference?

danschef commented 5 days ago

I would recommend to stick to the default window size (256x256) which should work fine for Landsat-8/Sentinel-2. For the grid resolution, I would set a value which lets you end up with less than 1000 tie points. This should be absolutely enough, a denser grid is not needed.

To find out why the SSIM filtering filters out so many tie points, it would be useful if you could post your exact call of AROSICS and the output of COREG_LOCAL.view_CoRegPoints() after computing the tie points as documented here. Calling this methof with hide_filtered=False provides you a visualization which tie points were filtered by each filtering technique.

dxanthosis commented 5 days ago

Actually, from visual inspection and calculation, I see increasing accuracy (decreasing rmse) when I set align_grids to False when registering Landsat 8 to Sentinel-2. Before, I set it to True and the output is the one I previously explained to you. Is that correct?

I also have set align_grids to True when I registered bands with higher spatial resolution to Sentinel-2 and it achieved good results.

Is this the right way? To set align_grids to False when target image resolution is lower, and vice versa?