Sentinel-2 TCI_10m Level-2 images - slight spatial misregistrations

For Sentinel-2 Level-2 jp2 images
I use gdal_translate to obtain ~ 256x256 jp2 sub-images (for each band) around my location of interest.
But when I examine the resulting TCI_10m images as a time lapse in Irfanview I can see gross vertical shifts of 20 or 30m.
For example between these two successive sub-images:
T32SMJ_20180402T102021_TCI_10m.jp2 (48.7 KB)
T32SMJ_20180404T101019_TCI_10m.jp2 (48.9 KB)

Examining their respective image headers, I can see no obvious reflection in the xml which might be used further down the line to correct for those shifts.

Does this mean I need to do it by hand?

My eventual aim is to automatically extract polygons of pixel values from the band images corresponding to smallish fields - where such arbitrary shifts would adversely effect the results.

I use gdalwarp in a shellscript for that purpose.
Polygons are created in Google MyMaps as kml files.

Hello @gbrelstaff

You’re comparing T32SMJ from S2A Orbit 14505 from the 2nd of April 2018 with the same Tile from S2B Orbit 005625 from the 4th of April 2018.

Reference to the Data Quality Report for that Period identifies that the geolocation performance for S2B was not fully stabilised at that time - but was still within the Mission key performance specification of less than 20m. The S2B geolocation was improved on the 26th of April 2018 folowing an update of the auxiliary data.



S2MPC Operations Manager

Thanks Jan for the clarification.

Here’s a link to the fix I used at

1 Like