Documentation menu

Kavel 10 oblique

Oblique aerial imagery from Kavel 10, delivered as flat imagery folders plus per-camera direct-referencing orientation CSVs.

Footprints are not delivered. They are computed here by projecting each image's four corners onto a horizontal ground plane, so the orientation values below have to be right — an error in Kappa or the principal point moves the footprint, not just the metadata.

Folder layout#

<dataset bucket>/
└── 05_Luchtfotografie/
    ├── 07_Oblieke_Luchtfotografie/          imagery, FLAT
    │   ├── 12345_678.jpg
    │   └── 12345_679.jpg
    └── 08_Direct_Referencing_Orientaties/   orientations
        ├── CM011129.csv                     one CSV per camera serial
        └── CM011130.csv

Both paths are fixed — there are no alternative spellings.

Imagery must sit directly in 07_Oblieke_Luchtfotografie. The folder is listed one level deep only, so anything in a subfolder is invisible and every photo in it is skipped without the run failing. This is the most common way a Kavel 10 delivery ends up with far fewer photos indexed than expected.

Images themselves are never downloaded — only their names and sizes are read from the bucket listing — so a large delivery costs nothing extra to index.

The orientation CSVs#

Every *.csv directly inside 08_Direct_Referencing_Orientaties is read and the rows are concatenated, so one file per camera serial is the expected shape. An empty or missing folder fails the run.

SeparatorComma
EncodingUTF-8 with BOM — this is what the delivery tooling writes, and it is read as such
Header rowRequired; columns are addressed by name
Extra columnsTolerated and ignored

Every column below is mandatory. A missing one fails the run rather than defaulting.

ColumnTypeMeaning
ImageNametextPhoto name without the extension — .jpg is appended
DescriptiontextCamera direction; see below
CameraXnumberEasting, in the dataset's CRS
CameraYnumberNorthing
CameraZnumberHeight, same vertical datum as ground_height (NAP metres)
OmeganumberDegrees
PhinumberDegrees
KappanumberDegrees, measured from the object X-axis
FocalLengthnumberMillimetres
PixelSizenumberMicrometres
ImageColsintegerImage width in pixels
ImageRowsintegerImage height in pixels
PrincipalPointXnumberMillimetres; see the sign note below
PrincipalPointYnumberMillimetres
DatetextISO date, YYYY-MM-DD
UTC_TimetextISO time. Interpreted as UTC

Camera direction#

Description must be exactly one of these four strings. Anything else is skipped with a message.

DescriptionSet name
Oblique ForwardForward
Oblique RightRight
Oblique BackBack
Oblique LeftLeft

Principal point sign#

PrincipalPointX / PrincipalPointY are delivered with the opposite sign to the Vexcel calibration report — where the report gives the left cone +6.680 mm, the CSV carries -6.680. Ingest negates them on read, which is the sign that places the left and right footprints correctly.

If you are validating a delivery against a calibration report, expect the signs to differ. Delivering the report's sign instead pushes the left and right footprints roughly 125 m off; forward and backward are unaffected either way, because their offset is zero.

Kappa#

Kappa is measured from the object X-axis, not the image axes. Ingest converts it to the stored convention itself.

Deliveries indexed before this convention was corrected are rotated 90° in the stored kappa, and older tooling compensated by rotating the pixels when building the zoom images. That compensation must not be applied to current deliveries.

Footprints and ground height#

Each image's four corners are projected onto a horizontal plane at ground_height. A photo whose corner rays point at or above the horizon has no ground intersection and is skipped with a message — the run continues.

ParameterRequiredDefault
ground_heightno15.0

ground_height is in the same vertical datum as CameraZ. Because the plane is flat, terrain relief is not modelled: on strongly varying terrain the footprint is an approximation, and setting ground_height near the mean ground level of the block gives the best result.

Coordinate reference system#

Nothing is reprojected. CameraX/Y/Z are used as delivered and stamped with the dataset's SRIDs, and computed footprints inherit the same. Deliver in the dataset's configured CRS — see Coordinates.

What you get back#

Indexed oblique photo records carrying the computed footprint, camera position, full interior orientation and capture time, grouped into one set per camera direction. Zoom images for the viewer are generated separately, after indexing.

Common failures#

SymptomCause
Run fails immediately08_Direct_Referencing_Orientaties is missing or contains no *.csv
Far fewer photos indexed than deliveredImagery is in subfolders of 07_Oblieke_Luchtfotografie rather than directly inside it
A whole camera missingIts Description value is not one of the four exact strings
Some photos skipped near the block edgeCorner rays did not meet the ground plane — check ground_height against CameraZ
Left and right footprints ~125 m outPrincipal point delivered with the calibration report's sign instead of the CSV convention
KeyError on a column nameA mandatory column is missing or spelled differently — none of them are optional