I'm trying to measure the 2D horizontal ground displacement between two Landsat-8 scenes. This problem has been well addressed using sub-pixel correlation software outside of Earth Engine, so I thought it would be interesting to try it with the "displacement" tool in Earth Engine.
So I load up two B8 scenes, spanning an earthquake (in which the ground has displaced by ~10 m along a fault rupture). I then run displace on the two scenes, and look at the x and y components of displacement. The problem is, I don't retrieve anything that looks remotely like what I expect (from correlating these two scenes with other software, such as MicMac or COSI-Corr).
My code is here: https://code.earthengine.google.com/78dd2883df36d3b4983d01b338019e34
I'm not sure on the details of what "displacement()" is doing? From the explanation here: https://developers.google.com/earth-engine/register ... it sounds like the offset is calculated for every pixel across the image (though I'm not sure about that... it runs suspiciously fast). And is "displacement()" optimized for sub-pixel work? Also, when I change the parameters, like maxOffset and patchWidth, it makes very little difference to the result. It looks to me like there's some significant downsampling going on somewhere.
It would be incredible if EE could manage computations like these... if anyone has any thoughts on this, I'd be pleased to hear.