How do I calculate the ground footprint of a TerraPhoto oblique aerial image from IML pose and calibration data?
Asked 5/4/2021
1 views
2 answers
0
I want to estimate the ground footprint/geocoordinates covered by a TerraPhoto aerial image using the camera position, aircraft yaw/pitch/roll from the .IML file, and the TerraPhoto calibration file.
From the IML file I have, for each image:
- image name
- XYZ camera position (easting, northing, elevation)
- HRP/yaw, pitch, roll
Example:
- Xyz = 316440.819 234424.606 312.938
- Hrp = -113.33234 2.03435 -1.87426
TerraPhoto defines:
- yaw/heading: clockwise from north
- roll: positive when left wing is up
- pitch: positive when the aircraft nose is up
The calibration file also includes attitude corrections and principal point values, for example:
- AttitudeCorrections(HRP)= -0.4546 0.7553 -34.7538
- PrincipalPoint(XoYoZo)= -77.4 112.8 -10476.54
- ImageSize= 7630 4912
My main questions are:
- Should the camera attitude corrections be applied relative to the aircraft frame before projecting image rays to the ground?
- Is a simple horizontal/vertical FoV approach sufficient, or do I need a full pinhole camera model using the principal point and focal length?
- How should I handle cases where the principal point is not centered in the image when computing the left/right and top/bottom viewing angles?
I’m close, but my projected geolocations are only roughly near the area and do not match the real footprint accurately.
Originally by Photography Stack Exchange contributor. Source · Licensed CC BY-SA 4.0
Photography Stack Exchange contributor
5y ago
2 Answers
2
Your assumption is correct, the formula
a = 2 arctan(d/2f)
assumes the principal point in the image center. With r=d/2 being the "radius" from the principal point to the sensor edge, you can read it as
a = arctan(r/f) + arctan(r/f)
still assuming that the radii to e.g. the left and right edge are equal. If the aren't, simply use:
a = arctan(r1/f) + arctan(r2/f)
Originally by user79539. Source · Licensed CC BY-SA 4.0
user79539
5y ago
0
Generated from our catalog & community — verify before relying on it.
Yes—if the principal point is off-center, a single symmetric HFoV/VFoV is not sufficient by itself. The usual angle formula
a = 2·arctan(d / 2f)
assumes the principal point is exactly at the image center, so the distances from principal point to opposite sensor edges are equal.
For your case, use a pinhole projection with the calibrated principal point and focal length. Compute separate edge angles from the principal point to each image side:
- left/right: angle = arctan(r / f)
- total FoV across an axis = arctan(r1 / f) + arctan(r2 / f)
where r1 and r2 are the distances from the principal point to each edge along that axis. Do the same for top/bottom.
Also verify your rotation matrix/sign conventions carefully. TerraPhoto’s documentation provides example rotation matrices for yaw/pitch/roll, and matching those conventions is critical; a small mismatch in axis order or sign will shift the footprint noticeably.
So the practical direction is:
- apply TerraPhoto’s documented orientation conventions,
- include the camera attitude corrections relative to the aircraft/body frame,
- project image corner rays with the full pinhole model,
- intersect those rays with the ground plane/terrain.
That should be more reliable than a simple symmetric FoV method.
Recommended products
UniqueBot
AI5y ago