Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sentinel-1 RTC - step changes in terrain correction / projection #404

Open
harryC-space-intelligence opened this issue Jan 23, 2025 · 6 comments

Comments

@harryC-space-intelligence

We have found several instances of a sudden and persistent shift in the precise geolocation of Sentinel-1 RTC data.

Example - area of the Philippines, shift occurs towards the end of 2024

The issue presents itself as a small translation of the image - in this case about 20m (2 pixels) in the y direction. The red dashed line in the plot is fixed between the two images. ( around lat/lon 7.1296108,126.3043144)

Image

We have observed that the shift occurs across whole scenes (i.e. we are sure it is not due to actual ground changes).

To Reproduce

import planetary_computer
import numpy as np
import odc.stac
import pystac_client
import matplotlib.pyplot as plt

catalog = pystac_client.Client.open(
    "https://planetarycomputer.microsoft.com/api/stac/v1",
    modifier=planetary_computer.sign_inplace)

bbox = [126.323,7.130,126.335,7.137]

rtc_items = catalog.search(
    collections=["sentinel-1-rtc"],
    bbox = bbox,
    datetime="2023-01-01/2025-01-01",
    query = {"sar:instrument_mode":{"eq":"IW"},
             "sar:polarizations":{"eq":["VV","VH"]}}
).item_collection()

ds = odc.stac.load(rtc_items,
              bands = ["vv"],
              bbox = bbox,
             )

baseline = ds.isel(time=slice(None,10)).mean(dim="time")

deltas = np.abs( ds.isel(time=slice(10, None)) - baseline ).mean(dim=["x","y"])

deltas.vv.plot(marker=".", lw=0)
plt.title("Average absolute shift in VV compared to first ten images.")

This produces the following plot, which confirmed for us it is a persistent alteration in either radiometric terrain correction or reprojection:

Image

We cannot see any obvious changes to the satellite viewing pattern that would be an underlying cause, and the shift does not appear to be present in the GRD collection.

Consequence

We are monitoring changes in backscatter over time - as such we require precise coregistration of the full timeseries and these shifts can cause false changes to appear across entire scenes.

Solution?

We can't tell exactly what the underlying issue is, but it appears that the processing pipeline for the RTC data may have slightly changed, or the DEM may have been switched.

Ideally, the full collection should have the same pre-processing applied, so that time series analysis can be done precisely down to the pixel level.

@777arc
Copy link
Contributor

777arc commented Jan 23, 2025

Thanks for pointing out this shift, we're diving into it now

@TaylorCorbett
Copy link

TaylorCorbett commented Feb 6, 2025

Our partner CATALYST discovered and fixed an issue with the Sentinel-1 RTC processing pipeline. The pixel shift issue affected scenes after October 2024. All the affected scenes were reprocessed over the weekend and are now corrected. Thank you for surfacing this data issue!

@harryC-space-intelligence
Copy link
Author

Thanks @TaylorCorbett, that's great to hear the issue is both identifiable and fixable. We really appreciate the effort to re-process the data.

I'd like to understand a little more if possible:

  • did CATALYST look for and/or find the issue in any other areas apart from the example I identified above? I've seen alignment shifts elsewhere occurring at different time points - I will look for another example this morning.

  • do we have any indication of what the underlying cause was? Asking in case this could help identify other issue areas from the metadata / acquisition patterns.

@harryC-space-intelligence
Copy link
Author

Here is another example, this time in Kenya around May 2022. lat/lon (-3.808283,38.647986)

Image

A notable difference to the Philippines example is that it coincides with a shift in the Sentinel-1 image footprints - the relative orbit is constant but the location of the slices changes.

To reproduce:

import planetary_computer
import pystac_client

bbox=[
38.641,-3.812,38.656,-3.802
]


rtc_items = catalog.search(
    collections=["sentinel-1-rtc"],
    bbox = bbox,
    datetime="2021-01-01/2023-01-01",
    query = {"sar:instrument_mode":{"eq":"IW"},
             "sar:polarizations":{"eq":["VV","VH"]},
            "sat:relative_orbit":{"eq":57}}
).item_collection()

ds = odc.stac.load(rtc_items,
              bands = ["vv"],
              groupby="solar_day",
              bbox = bbox,
             )
# mask out a few spots of no-data 
ds = ds.where(ds>0)

baseline = ds.isel(time=slice(None,10)).mean(dim="time")
deltas = np.abs( ds.isel(time=slice(10, None)) - baseline ).mean(dim=["x","y"])

deltas.vv.plot(marker=".", lw=0)
plt.title("Average absolute shift in VV - Kenya")

The plot produced currently looks like

Image

My question is now essentially - is this the same issue as the Philippines example? And if so, does this get us any closer to proactively identifying all the instances of the issue?

@gmorin
Copy link

gmorin commented Feb 7, 2025

Hi @harryC-space-intelligence,

Thanks for finding those issues. We have been investigating each of them and this is what we have found so far:

  • During our initial investigation into the issue raised on Jan 23rd 2025, we tested several different location. We found that those tested areas had similar behavior to what was identified in the original Philippines AOI (a shift occurring around late October 2024).
  • The underlying cause was a bug that was introduced during a system update. That bug was limited in scope to only affecting images collected after late October 2024 and has since been rectified with all affected data reprocessed as @TaylorCorbett mentioned.
  • We do not believe that the issue you have identified here in Kenya is the same as in the Philippines. We ran your script on a sample of ~100 random AOIs across the world and did not see this issue replicated in those areas. Therefore, this issue doesn't appear to be systematic like the previous one.

I hope this answer your questions. We are taking a deeper dive into the issue you have identified for the Kenya's AOI to try to identify the root cause. I will update you as soon as we know more.

@harryC-space-intelligence
Copy link
Author

@gmorin Thanks for the info - and good to hear also that the issue we see in Kenya is more limited in scope. Will be interesting to understand what's behind it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants