4 ms·
Quick geospatial note that's important for accurately geolocating these images: You need a DEM to use RPCs for geolocation. Running things through gdalwarp as
by jofer 2y ago
Quick geospatial note that's important for accurately geolocating these images:
You need a DEM to use RPCs for geolocation. Running things through gdalwarp as was done here will assume no terrain and 0 elevation. That will lead to significant mislocations anytime it's not flat and at sea level, especially given the off-nadir view angle of the data used here.
In other words:
gdalwarp \
-t_srs "EPSG:4326" \
2024-05-25-15-37-54_UMBRA-06_GEC.tif \
warped.tif
Should be:
gdalwarp \
-to RPC_DEM=some_dem.tif \
-rpc \
-t_srs "EPSG:4326" \
2024-05-25-15-37-54_UMBRA-06_GEC.tif \
warped.tif
If you don't want to use a DEM for orthographic corrections, then you should at least include a constant elevation in meters of the scene with RPC_HEIGHT. Otherwise things can be shifted kilometers from where the image actually is.
- singleshot_ 2y agoWhat about the fact these are all pictures of airports? Does that control for "any time it's not flat" or are you talking about really, really flat? Or, given your mention of angles, do you mean flat as in perpendicular to the observer?
- jofer 2y ago"Orthorectified" (i.e. on a map) means both. It's corrected to a perpendicular to the observer view _and_ also corrected for scale distortion due to elevation (the top of a mountain is closer to the sensor and therefore appears larger than the valley beside it). For off-nadir imagery (i.e. not looking straight down) the view angle plays a larger role than the scale distortion part. With that said, raw elevation matters too, especially when the imagery is off-nadir. RPCs describe a view direction + lens distortion / etc. A completely flat surface at elevation will be in a different location than a completely flat surface at sea level. Things will also be a different _size_ as well depending on elevation. Think of the RPC as a vector looking a specific direction (at a single pixel level, that's kind of what it is, though each pixel gets a different one). You're placing a point on the map where that ray intersects the Earth's surface. It intersects at a different point depending on the elevation of the surface. Projected (aka orthorectified) data needs to correct all of that to be able to place imagery on a map accurately. If the airport is completely flat, then using a constant elevation is fine, but you still need to use that elevation and not assume it's at sea level. Otherwise it will be in the wrong place on a map and also a slightly incorrect size.
- marklit 2y agoThanks for clearing that up.