Simple REST API for access to massive clouds repositories in the project SPSLidar.
Simple REST API for access to massive clouds repositories in the project SPSLidar.
Point cloud models are spatially indexed using the coordinates of their bounding boxes. Each model has its data organized in a hierarchical structure of data blocks. Each data block represents a region of space and provides an approximated view of model for that region (a sampling or level of detail). Data associated to a data block is encoded in LAZ format.
Point cloud models are spatially indexed using the geographic coordinates of their bounding boxes. At the same time, each model has its data organized in a hierarchical structure of data blocks. Each data block represents a region of space and provides an approximated view of model for that region (i.e., a level of detail as a sampling of the point cloud). Data associated to a data block is encoded in LAZ format, although in the future, alternative formats can be considered.
version:"0.2"
version:"0.2"
title:SPSLidar API
title:SPSLidar API
contact:
contact:
...
@@ -178,12 +177,7 @@ paths:
...
@@ -178,12 +177,7 @@ paths:
-"data"
-"data"
summary:Returns metadata asociated to a data block
summary:Returns metadata asociated to a data block
description:>
description:>
A model is organized into a hierarchical structure of
This endpoint provides the metadata associated to the data block. Data block 0 represents the first LOD of the entire model. Its descendants have ids 0..7 (considering 8 descendants), and in general descendants ids are computed as 8 * <parent_data_block_id> + <num_descendant> where <num_descendant> varies between 0 and 7.
data blocks. Each data block represents a region of space enclosed in a box. This region is subdivided into a fixed number of region (usually 8) that are also represented by data blocks, and so forth.
Each data block represents a level of detail (LOD) of the model in the associated region. In the case of a point model, this is a sampling of the points in the region. Data must not be redundant, i.e. data stored at a given data block must not be replicated in descendants.
This endpoint does not provide the actual data but the metadata (i.e., bounding box, descendant data blocks etc.). Data block 0 represents the first LOD of the entire model. Its descendants have ids 0..7 (considering 8 descendants), and in general descendants ids are computed as 8 * <parent_data_block_id> + <num_descendant> where <num_descendant> varies between 0 and 7.
The data associated to the data block is provided different endpoint, and several formats could be available. By now only LAZ format (for point data) is supported by .../data/{id}/laz endpoint.
The data associated to the data block is provided different endpoint, and several formats could be available. By now only LAZ format (for point data) is supported by .../data/{id}/laz endpoint.
produces:
produces:
...
@@ -252,7 +246,9 @@ paths:
...
@@ -252,7 +246,9 @@ paths:
-"data"
-"data"
summary:Defines the point data of the model in LAZ format
summary:Defines the point data of the model in LAZ format
description:>
description:>
After creating a model, data should be supplied using this endpoint. By now only LAZ format is supported. Internally, the server should open the original LAZ file and build a hierarchy of data blocks of the predefined size also in LAZ format.
After creating a model, data should be supplied using this endpoint. By now only LAZ format is supported. Internally, the server should open the original LAZ file and build a hierarchy of data blocks of the predefined size (see data block metadata) also in LAZ format.
The LAZ data blocks should be normalized, using the normalized coordinates with respect to the bounding box of the model.
consumes:
consumes:
-application/octet-stream
-application/octet-stream
parameters:
parameters:
...
@@ -287,7 +283,7 @@ definitions:
...
@@ -287,7 +283,7 @@ definitions:
Workspace:
Workspace:
type:object
type:object
description:Workspace containing one or more georreferenced point clouds
description:Workspace containing one or more georreferenced point clouds. Only a few should workspaces should exists (e.g., Iberian archaeology sites, civil engineering projects, etc.), since many workspaces would reduce the usefulness of the system.
properties:
properties:
name:
name:
type:string
type:string
...
@@ -304,7 +300,7 @@ definitions:
...
@@ -304,7 +300,7 @@ definitions:
Model:
Model:
type:object
type:object
description:Georreferenced model (normally a point cloud)
description:Georreferenced model (normally a point cloud). Models can overlap in space and time (evolution of a model over time or several models of the same site in different resolutions).
properties:
properties:
name:
name:
type:string
type:string
...
@@ -326,7 +322,7 @@ definitions:
...
@@ -326,7 +322,7 @@ definitions:
-bbox
-bbox
example:
example:
name:CastilloSCatalina
name:CastilloSCatalina
description:|
description:>
Model of Castillo de Santa Catalina (Jaén).
Model of Castillo de Santa Catalina (Jaén).
Captured with Leica RTC360 laser scanner
Captured with Leica RTC360 laser scanner
date:"2019-05-03T12:10:00Z"
date:"2019-05-03T12:10:00Z"
...
@@ -340,7 +336,11 @@ definitions:
...
@@ -340,7 +336,11 @@ definitions:
DataBlock:
DataBlock:
type:object
type:object
description:>
description:>
Medatada associated to a data block. The bounding box of the data block is in normalized coordinates with respect to the bounding box of the entire model.
A model is organized into a hierarchical structure of data blocks. Each data block represents a region of space enclosed in a box. This region is subdivided into a fixed number of region (usually 8) that are also represented by data blocks, and so forth.
Each data block represents a level of detail (LOD) of the model in the associated region. In the case of a point model, this is a sampling of the points in the region. Data must not be redundant, i.e. data stored at a given data block must not be replicated in descendants.
This object does not provide the actual data, but its associated metadata (bounding box, size of the LOD, ids of descendant datablocks). The bounding box of the data block is in normalized coordinates with respect to the bounding box of the entire model. The ids of the descendant data blocks would not be really necessary, since they can be computed from the id of the parent (see description in /workspace/{workspaceName} /model/{modelName}/data/{id} endpoint) but they are provided for convenience.