Horus
Panorama-only deliveries from Horus.
This template is strict in both directions: every row in the CSV must have a photo, and every photo must have a row. One extra or one missing file stops the run. Read Tolerance before your first delivery.
Folder layout#
<dataset bucket>/
└── panorama/
├── poses.csv any name; the first *.csv found is used
└── jpg/
├── PANO_0001.jpg
└── PANO_0002.jpg
Exactly one layout — there are no alternative folder names. If panorama/ or
panorama/jpg/ is missing, panoramas are skipped and the run still succeeds
with nothing indexed.
Files#
Photos are .jpg lowercase only. .jpeg cannot be delivered under this
template at all. Only files directly inside jpg/ are seen.
The pose CSV#
| Separator | Comma |
| Header row | Required — the first row is consumed and discarded |
| Columns | Positional. Header names are ignored |
| Position | Meaning | Notes |
|---|---|---|
| 0 | Photo name without extension | .jpg is appended |
| 1 | X | Easting, in the dataset's CRS |
| 2 | Y | Northing |
| 3 | Z | Height |
| 4 | Heading | Degrees |
| 5 | Roll | Degrees |
| 6 | Pitch | Degrees |
| 7 | Date | DD-MM-YYYY |
Note the column order: heading, then roll, then pitch — not the pitch-then-roll order most other templates use.
Dates#
Column 7 is a date only, in DD-MM-YYYY, with no time component — every photo in
a delivery is stamped at midnight. Any other format fails the run.
Coordinate reference system#
Nothing is reprojected. Deliver in the dataset's configured CRS — see Coordinates.
Ingest parameters#
| Key | Required | Values | Default |
|---|---|---|---|
height_above_ground | yes | number | — |
anonymisation | yes | already_anonymised, auto_anonymise, or anything else for neither | — |
set_name | no | text | 1 |
Tolerance#
Zero, in both directions:
- A CSV row whose photo is missing → the run fails immediately.
- A photo not listed in the CSV → the run also fails, and nothing is indexed at all, because the check runs before any records are written.
Export the CSV from the same source that produced the folder and don't hand-edit either.
Common failures#
| Symptom | Cause |
|---|---|
| Run fails naming one photo | The CSV and folder disagree — fix that row or that file |
| Nothing indexed despite a full folder | One extra photo the CSV doesn't list; the run aborts before writing anything |
| Run succeeds with zero photos | panorama/ or panorama/jpg/ is missing or named differently |
| Photos not found at all | Delivered as .jpeg — this template accepts only .jpg |
| Dates a month out | Column 7 delivered as MM-DD-YYYY instead of DD-MM-YYYY |