I have a couple of satellite images, each about 1 km square, of the same rock climbing area. One is from ESRI Clarity, the other from Google Maps. The Clarity image is projected to UTM and has a UTM grid superimposed, which is extremely convenient for my purposes, but it was taken in winter when a lot of the rock was in shadow or covered with snow. The Google Maps one is much better for showing the features I want to see and locate.
The Google image didn't register correctly when framed on top of the Clarity one, so I thought, OK, this is just because the projection Google is using isn't UTM. I decided to try to handle this by locating control points that I could identify on the two images, and distorting the Google image to make these points match. Surprisingly (to me, at least), it became clear that this could not be done accurately using an affine transformation, i.e., one that sends lines to lines. Below is my best fit with 6 control points and a polynomial fit. On the left is Clarity, on the right is Clarity with Google superimposed as an inset:
It seems to me that the registration of the two images at the edges is rather good. However, some features still seem extremely distorted in one image compared to the other. The easiest to see is the long dark line marked by the arrows, which is the shadow of a natural wall running down the north face of the rock. In the left-hand image, it's the dark line that you see if you trace out the red arrow and then continue on in the same direction. In the right-hand image, it's a little harder to see at this scale, but it's the same idea.
Now the two lines are not parallel at all. They differ by about 10 degrees. This is not just because I distorted the image with some goofy polynomial fit that might oscillate in an unrealistic way. In fact, the rotation of this feature is even more severe in the original Google maps image -- more like 20 degrees.
How should I interpret this? My guess is that ESRI made an effort to correct for perspective and the motion of the satellite as it scanned over the landscape, while Google did not, or didn't do it thoroughly enough. This might not be a problem in most cases, but this rock sticks up about 200 meters above the surrounding landscape and has steep walls. This would explain why I'm able to make things mesh fairly well on the surrounding terrain with a relatively gentle curvilinear transformation, but I still get crazy disagreement in the central area of steep terrain.