Skip to content

Define file and folder structure #23

Description

@JamesSample

We need to agree on a standard file and folder structure for SeaBee data. This needs to be simple enough to be human-readable (e.g. via the MinIO web interface), but structured enough for processing to be automated. Some considerations:

  • We should avoid ID codes or unique identifiers in file paths, as these are not human-readable

  • The system should allow for sensible groupings of data like, for example, the year => mission => flight hierarchy that is currently used. This will make it easier for people to find what they need

  • We need to allow for a range of data types and sources (aerial drones, otters, RGB, MS, HS etc.)

The system used by Sindre for seabirds is pretty straightforward and covers everything we need at present (I think). The system originally proposed by NIVA seems unnecessarily complicated.

As a starting point, how about something like this for the data from each flight:

region_area_yyyymmdd/
├─ annotation/
├─ dem/
├─ gcp/
├─ ground_truth/
├─ orthomosaic/
├─ other/
├─ raw_images/
config.json

Where:

  • region is coarse geographic descriptor (e.g. fylke) and area is more specific (e.g. an island, town or building name).
  • annotation (optional). Contains any relevant annotation not already in the database, such as geopackages etc.
  • dem (optional). Contains elevation datasets generated during orthorectification (DSMs and DTMs etc.).
  • gcp (optional). Ground control points in a standard text format. Note: The format Sindre uses for ODM is slightly different to that used by e.g. Spectrofly for Pix4D. Assuming both are supported by both applications, it would be good to pick one as standard, as then we can easily use ODM to reprocess data from Pix4D etc.
  • ground_truth (optional). Ground truth data.
  • orthomosaic (optional). Georeferenced mosaic images created by ODM or Pix4D. Ideally a single, multi-band GeoTiff
  • other (optional). Anything not included in the other folders (reports, logs etc.)
  • raw_images (required). Images from a single flight (i.e. images that can be orthorectified to produce a single mosaic). This could also include raw images from e.g. the otter, as long as they are to be stitched together
  • config.json (required?). I'm still not certain whether this is useful. However, this file could include settings and metadata to control subsequent processing. For example, it could include the Dronelogbook ID (in which case, additional metadata could be extracted via the API during processing), or it might include publication options (e.g. to control whether a dataset is made publicly available on GeoNode). Thoughts?

The general idea is that researchers could organise their data on MinIO more-or-less as they wish, as long as each flight is organised as illustrated above. For example, on MinIO we might have:

niva/
├─ 2022/
│  ├─ runde/
│  │  ├─ more-og-romsdal_remoy_20220831/
│  │  │  ├─ annotation/
│  │  │  ├─ dem/
│  │  │  ├─ gcp/
│  │  │  ├─ ground_truth/
│  │  │  ├─ orthomosaic/
│  │  │  ├─ other/
│  │  │  ├─ raw_images/
│  │  │  ├─ config.json
nina/
├─ 2022/
│  ├─ rogaland_risavika_20220627/
│  │  ├─ dem/
│  │  ├─ gcp/
│  │  ├─ orthomosaic/
│  │  ├─ other/
│  │  ├─ raw_images/
│  │  ├─ config.json

This is just meant as a starting point for discussion. What do you think, @knl88 @deviirmr @awigeon ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    🏗 In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions