Auxiliary objects¶
Rig relatives¶
The sub-objects in this section are used in input, projected and calibrated cameras to represent the relative position and orientation of a camera relative to a reference one.
For a secondary camera \(s\), its absolute position is a function of the absolute position of the reference camera \(r\).
Let:
\(T_r\) and \(R_r\) be the translation vector and rotation matrix that convert from the reference camera image CS to world coordinates,
\(T_s\) and \(R_s\) be the translation vector and rotation matrix that convert from the local secondary camera image CS to world coordinates and
\(T_{rel}\) and \(R_{rel}\) be the relative translation and rotation matrix for the secondary camera,
then \(T_s = T_r + R_r T_{rel}\) and \(R_s = R_r R_{rel}\).
The vector \(T_{rel}\) is the position of the secondary camera in the image CS of the reference camera. The matrix \(R_{rel}\) may be interpreted as a base change from a secondary camera image CS to the reference camera image CS. The image CS used here is right-down-front, which is not the image CS normally used in Omega-Phi-Kappa angles.
Relative rotations are given as Euler angles \((\alpha, \beta, \gamma)\) in degree. The angles define the rotation matrix \(R_{rel} = R_x(\alpha)R_y(\beta)R_z(\gamma)\).
Input rig relatives¶
Input rig relatives contain the a priori knowledge about the relative translation and rotation of secondary cameras. Since these values are supposedly coming from a sensor database, the units are always meters and degrees.
Input rig relatives
Properties
Type |
Description |
Required |
|
---|---|---|---|
translation |
Input camera rig translation relative to the reference camera. |
✓ Yes |
|
rotation |
Input camera rig rotation relative to the reference camera. |
✓ Yes |
|
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Rig relative rotation¶
Input camera rig rotation relative to the reference camera.
Rig relative rotation
Properties
Type |
Description |
Required |
|
---|---|---|---|
angles_deg |
|
Euler angles in degree (see convention here). |
✓ Yes |
sigmas_deg |
|
Measurement error (standard deviation) in degrees. |
✓ Yes |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Rig relative translation¶
Input camera rig translation relative to the reference camera.
Rig relative translation
Properties
Type |
Description |
Required |
|
---|---|---|---|
values_m |
|
Relative translation of the secondary sensor in the image CS of the reference sensor in meters. |
✓ Yes |
sigmas_m |
|
Measurement error (standard deviation) in meters. |
✓ Yes |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Example:
{
"translation": {
"values_m": [
-0.015,
0.015,
0.0
],
"sigmas_m": [
0.001,
0.001,
0.001
]
},
"rotation": {
"angles_deg": [
0,
0,
0
],
"sigmas_deg": [
0.05,
0.05,
0.05
]
}
}
Projected rig translation¶
Projected rig relatives only contain the relative translation as the relative rotation stays the same as the input. The difference between the projected rig translation and input rig translation is that the projected translation uses units of the processing CRS.
Projected rig translation
Properties
Type |
Description |
Required |
|
---|---|---|---|
values |
|
Relative translation in processing CRS units. |
✓ Yes |
sigmas |
|
Measurement error (standard deviation) in processing CRS units. |
✓ Yes |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Example:
{
"values": [
-0.015,
0.015,
0.0
],
"sigmas": [
0.001,
0.001,
0.001
]
}
Calibrated rig relatives¶
Calibrated rig relatives contain the optimised relative translations and rotations in processing CRS units.
Calibrated rig relatives
Properties
Type |
Description |
Required |
|
---|---|---|---|
translation |
|
Relative translation in processing CRS units |
✓ Yes |
rotation_angles_deg |
|
Euler angles in degree (see convention here) |
✓ Yes |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Example:
{
"translation": [
-0.015,
0.015,
0.0
],
"rotation_angles_deg": [
0,
0,
0
]
}
Coordinate reference system definition¶
This sub-object defines a coordinate reference system (CRS) along with an optional geoid height. The CRS may be defined as either a WTK2 string or some shorthand identifier with well known authority codes.
The geoid height is an alternative way of specifying the datum of a vertical CRS for which no geoid model is available. More concretely, this value is a constant height over the ellipsoid of the underlying geographic CRS. The surface defined by this value shall be used as the zero height surface for approximating conversions between ellipsoidal and gravity related heights. Note that this only makes sense if the CRS defined is compound.
Three dimensional CRS are preferable (3D compound, 3D geographic, 3D projected or 3D engineering CRS). 2D engineering CRSs are not accepted.
Whenever the declared CRS is 2D, a 3D promoted equivalent shall be used for 3D coordinate conversions. In this promotion the Z axis of the coordinates shall be interpreted as an ellipsoidal height over the ellipsoid of the underlying geographic CRS in the same units as the X, Y axes. For example, given the 2D CRS with code EPSG:6434 (NAD83(2011) / Connecticut (ftUS)), its 3D promoted equivalent will have a Z axis in ftUS representing ellipsoidal heights over the ellipsoid used by NAD83(2011).
CRS¶
Coordinate reference system
CRS
Properties
Type |
Description |
Required |
|
---|---|---|---|
definition |
|
One of: |
✓ Yes |
geoid_height |
|
Constant geoid height over the underlying ellipsoid in the units of the vertical CRS axis. |
No |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Examples:
{
"definition": "EPSG:4326"
}
{
"definition": "GEOGCRS[\"NAD83(2011)\",DATUM[\"NAD83 (National Spatial Reference System 2011)\",ELLIPSOID[\"GRS 1980\",6378137,298.257222101,LENGTHUNIT[\"metre\",1]]],PRIMEM[\"Greenwich\",0,ANGLEUNIT[\"degree\",0.0174532925199433]],CS[ellipsoidal,3],AXIS[\"geodetic latitude (Lat)\",north,ORDER[1],ANGLEUNIT[\"degree\",0.0174532925199433]],AXIS[\"geodetic longitude (Lon)\",east,ORDER[2],ANGLEUNIT[\"degree\",0.0174532925199433]],AXIS[\"ellipsoidal height (h)\",up,ORDER[3],LENGTHUNIT[\"metre\",1]],USAGE[SCOPE[\"Geodesy.\"],BBOX[14.92,167.65,74.71,-63.88]],ID[\"EPSG\",6319]]"
}
{
"definition": "EPSG:4170+ESRI:115807",
"geoid_height": 47.12
}
Geolocation¶
This sub-object is used in input cameras and control points and represents a geolocated measurement with an error estimate. It contains a coordinate reference system and the coordinates and standard deviation of the measured position.
CRS¶
Coordinate reference system
CRS
Properties
Type |
Description |
Required |
|
---|---|---|---|
definition |
|
One of: |
✓ Yes |
geoid_height |
|
Constant geoid height over the underlying ellipsoid in the units of the vertical CRS axis. |
No |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Geolocation¶
Geolocation information
Geolocation
Properties
Type |
Description |
Required |
|
---|---|---|---|
crs |
Coordinate reference system |
✓ Yes |
|
coordinates |
|
3D coordinates of a point using the same axis convention as declared by the CRS, i.e., the X, Y axes are not always Easting-Northing. |
✓ Yes |
sigmas |
|
Standard deviation of a measured position. For geographic CRSs, all units are meters. For Cartesian CRSs, the units are given by the 3D promoted definition of the axes (see the specification of the coordinate reference system above for the definition of the promotion). |
✓ Yes |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |
Examples:
EPSG
{
"crs": {
"definition": "EPSG:4265+5214",
"geoid_height": 52.12
},
"coordinates": [
45.7345725,
7.3205342,
583
],
"sigmas": [
5,
5,
10
]
}
WKT
{
"crs": {
"definition": "GEOGCRS[\"WGS 84\",ENSEMBLE[\"World Geodetic System 1984 ensemble\",MEMBER[\"World Geodetic System 1984 (Transit)\"],MEMBER[\"World Geodetic System 1984 (G730)\"],MEMBER[\"World Geodetic System 1984 (G873)\"],MEMBER[\"World Geodetic System 1984 (G1150)\"],MEMBER[\"World Geodetic System 1984 (G1674)\"],MEMBER[\"World Geodetic System 1984 (G1762)\"],MEMBER[\"World Geodetic System 1984 (G2139)\"],ELLIPSOID[\"WGS 84\",6378137,298.257223563,LENGTHUNIT[\"metre\",1]],ENSEMBLEACCURACY[2.0]],PRIMEM[\"Greenwich\",0,ANGLEUNIT[\"degree\",0.0174532925199433]],CS[ellipsoidal,3],AXIS[\"geodetic latitude (Lat)\",north,ORDER[1],ANGLEUNIT[\"degree\",0.0174532925199433]],AXIS[\"geodetic longitude (Lon)\",east,ORDER[2],ANGLEUNIT[\"degree\",0.0174532925199433]],AXIS[\"ellipsoidal height (h)\",up,ORDER[3],LENGTHUNIT[\"metre\",1]],USAGE[SCOPE[\"Geodesy. Navigation and positioning using GPS satellite system.\"],AREA[\"World\"],BBOX[-90,-180,90,180]],ID[\"EPSG\",4979]]"
},
"coordinates": [
35.6762,
139.6503,
40
],
"sigmas": [
0.02,
0.02,
0.05
]
}
Rigid transform with scaling¶
This sub-object contains a rigid transformation with rotation, translation, and scaling. The Euler angle convention for the rotation is the same as the one for the rig relative rotation described above.
Rigid transformation with scaling¶
Definition of a rigid transformation with rotation, translation, and scaling. Transforms input points p to output points p’ via p’ = scale * rotation * p + translation.
Rigid transformation with scaling
Properties
Type |
Description |
Required |
|
---|---|---|---|
rotation_deg |
|
Rotation as Euler angles in degree (see convention here) |
✓ Yes |
translation |
|
Translation in units of the processing CRS. |
✓ Yes |
scale |
|
Scale |
✓ Yes |
extensions |
|
JSON object with extension-specific objects. Extensions follow the naming convention VENDOR[_(team❘product)]_extname |
No |