Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Also, do note that all images are purged from a camera around midnight in the cameras configured timezone.

GeoImageInfo

GeoImageInfo is an extension of ImageInfo. Like Image info, it is used to identify an image on the camera, but it also contains gps coordinates for that image. GeoImageInfo is not necessarily available for all images in a sequence. If interpolation is deactivated in the configuration, only the images taken by the master have gps data associated with them, and in case of a sensor failure, it may be that only some images in a sequence have coordinates available, or none at all.

GeoImageInfo has the following structure:

Code Block
{
  "first": "<serial-of-remote>",
  "second": [
    {
         "altitude": number,
        "imageId": "string",
        "lat": number,
        "lon": number,
        "time": "2024-05-14T14:11:16.839Z",
        "uploadCount": number
      
    },
    .
    .
    .
  ]
}

Configuration

Most properties of a bmetry solution must be configured through the master. To make a camera the master of a solution, activate the bmetry peripheral in its peripheral configuration:

...

response body: ImageInfos mapped to their respective remotes.

Code Block
200 OK
[
  {
    "id": "string",
    "remotes": ["string"],
    "start": "20240117T122423.156Z",
    "end": "20240117T122503.091Z",
    "state": "string"  // EXPERIMENTAL! Shows either VALID or INVALID. Currently, a valid sequence has consists of at least 70% of the expected images, and has no more than 10% of its images missing at the end (per remote).
  }
]

Read metadata on image info of all images in a given sequence

...

request body: None

response body: A list of Contains info of all images in the relevant sequence, mapped to their remote.

Code Block
200 OK
[
  {
    "first": "string",
    "second": [
      {
        "imageId": "string",
        "time": "2024-01-17T16:02:28.582Z",
        "uploadCount": 0
      }
    ]
  }
]

Read geo image info of all images in a given sequence

path: sequence/{sequenceId}/geoimages/{code}

{sequenceId}: ID of the sequence to retrieve the ImageInfo of.

{code}: Portal code of the master of the solution.

request body: None

response body: Contains only the images of the sequence with geocoordinate available.

Code Block
200 OK
[
  {
    "first": "string",
    "second": [
      {
        "altitude": 0,
        "imageId": "string",
        "lat": 0,
        "lon": 0,
        "time": "2024-05-14T14:11:16.839Z",
        "uploadCount": 0
      }
    ]
  }
]

Retrieve metadata image info on all images captured by a solution in a given timespan

...

Code Block
200 OK
[
  {
    "first": "string",
    "second": [
      {
        "imageId": "string",
        "time": "2024-01-17T15:48:45.580Z",
        "uploadCount": 0
      }
    ]
  }
]

Retrieve geo image info of all images captured by a solution in a given timespan

path:geoimage/{code}/{since}/{until}

{code}: Portal code of the master of the solution.

{since}: Start time of the retrieval window, ISO 8601 standard (e.g. 2024-01-17T15:48:45.580). Will be interpreted as UTC.

{until}: End time of the retrieval window, ISO 8601 standard. Will be interpreted as UTC.

request body: None

response body: Contains only the images that have geocoordinates available.

Code Block
200 OK
[
  {
    "first": "string",
    "second": [
      {
        "altitude": 0,
        "imageId": "string",
        "lat": 0,
        "lon": 0,
        "time": "2024-05-14T14:11:16.839Z",
        "uploadCount": 0
      }
    ]
  }
]

...

path: sequence/{sequenceId}/upload/{code}/{maxUploadCount}

optional path extension: /{imageWidth}

{sequenceId}: ID of the sequence to upload.

...

{maxUploadCount}: Images that were already uploaded more times than this number will be excluded. Pass -1 to upload all.

{imageWidth}: An optional parameter specifying image width in pixel. If provided, all images will be scaled to this width (preserving aspect ratio) prior to upload. Intended to be used for prototype mappings of images before a final upload request.

request body: None

response body: Returns a list of images that will be uploaded.

...

path: image/upload/{code}/{since}/{until}/{maxUploadCount}

optional path extension: /{imageWidth}

{code}: Portal code of the master of the solution that should upload images.

...

{maxUploadCount}: Images that were already uploaded more times than this number will be excluded. Pass -1 to upload all.

{imageWidth}: An optional parameter specifying image width in pixel. If provided, all images will be scaled to this width (preserving aspect ratio) prior to upload. Intended to be used for prototype mappings of images before a final upload request.

request body: None

response body: Returns a list of images that will be uploaded.

...

path: /bmetry/image/upload/{code}

optional path extension: /{imageWidth}

{code}: Code of the master of the solution that captured the images.

{imageWidth}: An optional parameter specifying image width in pixel. If provided, all images will be scaled to this width (preserving aspect ratio) prior to upload. Intended to be used for prototype mappings of images before a final upload request.

request body: List of the image ids to upload, mapped to the serials of the remote that captured them:

...