Adding Spatial Entities to a Project

Introduction

You can use the WebUI to add new spatial entities. Load the project’s page first and select the “Catalog” section. Then click on the “Add” dropdown to display the list of entities available for creation.

Once you select the desired entity type from this list, the page will prompt for additional information. 

Point Cloud

This entity stores a raw point cloud. This is how point clouds are uploaded into the system for later processing.

First go to the catalog page, select your project and click on "Add Object".

Once you select “Point Cloud” from the “Add Object” button, you will see the following options:

image.png


Item Name

A readable name for the new entity

Capture Date

An optional field containing the original capture date

Horizontal Datum

Horizontal datum used in the point cloud

Vertical Datum

Vertical datum used in the point cloud

Projection

Projection used by the point cloud

Horizontal Units

Horizontal unit type used in the point cloud

Vertical Units

Vertical unit type used in the point cloud

 Once you have provided values to these fields, click on “Choose Files”. This will prompt a file selection dialog where multiple files can be selected for uploading. The following file types are currently supported:

  1. Text Files (ASCII) with comma or space separated values.
  2. LAS files
  3. LAZ files
  4. ZIP archive files containing compressed Text, LAS or LAZ files.

Click on “Create” to begin the upload process. You can track the upload operation from the “Pending” section in the project’s page.

Ortho-Imagery

This entity stores a set of images, typically aerial imagery.

Once you select “Ortho-Imagery” from the “Add Object”, you will see the following options:

image.png


Item Name

A readable name for the new entity

Capture Date

An optional field containing the original capture date

Horizontal Datum

The horizontal datum used in the world registration files

Projection

The projection used by the world registration files

Horizontal Units

The horizontal unit type used in the world registration files

 Click “Choose Files” to select which files to upload as the Ortho-Imagery set. Each image in the set is expected to have a matching world registration file. The following table lists the supported image formats and the expected world file extension for the format:


Image Format Extension

Expected World File Extension

.JPG

.JGW

.PNG

.PGW

.BMP

.BPW

.TGA

.TAW

.TIF

.TFW

 You can also select multiple archive ZIP files, which should contain the image and matching world registration files.

Click on “Create” to begin the upload process. You can track the upload operation from the “Pending” section in the project’s page.

Block Model

This entity stores a raw Block Model. This is a comma-separated ASCII text file, where each row represents a block in the model.

Once you select “Block Model” from the “Add Object” button menu, you will see the following options:

image.png


Item Name

A readable name for the new entity

Capture Date

An optional field containing the original capture date

CSV Header

See the paragraph following this table for an explanation of what CSV Header does.

Horizontal Datum

The horizontal datum used in the block model

Vertical Datum

The vertical datum used in the block model

Projection

The projection used by the block model

Horizontal Units

The horizontal unit type used in the block model

Vertical Units

The vertical unit type used in the block model

 The “CSV Header” field allows defining how each column in the block model will be interpreted. In this field you may enter a line that contains all headers for the block model, separated by commas. For each header, a column definition row will appear in the entity dialog. For instance, if the supplied CSV Header is “XC,YC,ZC,XL,YL,ZL,AU,CU”, the following fields will appear in the dialog:

image.png

image.png

Each entry in the “Column Definition” can be used to tell the system how the values in that column should be processed. There are two fields to provide in each case. The first field is to select the type that will be used to handle the field. The available types are:


Ignore

Skip this column when processing the block model

Set

The values in this column belong to a set with a limited number of elements that appear many times over in the block model.

Value

The values in this column will be interpreted as numbers. This setting should be used for grades and any other numeric quantity.

Block Centroid X

X coordinate of the block’s centroid

Block Centroid Y

Y coordinate of the block’s centroid

Block Centroid Z

Z coordinate of the block’s centroid

Block Origin X

X coordinate of the block’s origin

Block Origin Y

Y coordinate of the block’s origin

Block Origin Z

Z coordinate of the block’s origin

Block Dimension X

Block’s dimension along the X axis

Block Dimension Y

Block’s dimension along the Y axis

Block Dimension Z

Block’s dimension along the Z axis

 When providing which columns will provide Block coordinates, you must choose whether to use the Block Centroid or the Block Origin. Attempting to use both in the same block model will be considered an input error.

The second field in the Column Definition allows to select how the Level of Detail (LOD) system will handle the column values when creating a lower frequency representation of the data. The possible options are listed in the following table:

Average

Higher frequency data is averaged to produce lower frequency data

Min

Lower frequency data is set to the minimum value of the local higher frequency data

Max

Lower frequency data is set to the maximum value of the local higher frequency data

Add

Lower frequency data is the sum of the high frequency data. This works well for columns that represent counters.

Multiply

Lower frequency data is the multiplication of the high frequency data.

 Click on “Choose File” to select the ASCII text file containing the comma-separated values for the block model. It is possible to upload a ZIP archive that contain the text file.

Click on “Create” to begin the upload process. You can track the upload operation from the “Pending” section in the project’s page.

Mesh

The Mesh entity stores a raw mesh. Currently, only the FBX and OBJ mesh formats are supported.

Once you select “Mesh” from the “Add Object” button, you will see the following options:

image.png


Item Name

A readable name for the new entity

Capture Date

An optional field containing the original capture date

Horizontal Datum

Horizontal datum used in the point cloud

Vertical Datum

Vertical datum used in the point cloud

Projection

Projection used by the point cloud

Horizontal Units

Horizontal unit type used in the point cloud

Vertical Units

Vertical unit type used in the point cloud

 The coordinates for vertices in this mesh will be assumed to already be in the project’s coordinate space. For this reason, the system does not request information for the coordinate system of the raw data.

Click on “Choose File” to select the OBJ or FBX file for the mesh. It is possible to supply a ZIP archive that contains the FBX/OBJ files.

Click on “Create” to begin the upload process. You can track the upload operation from the “Pending” section in the project’s page.

Indexed Mesh

The Indexed Mesh entity is the result of applying the project’s spatial index to a raw Mesh entity. Indexed Meshes can be visualized and combined with other forms of spatial data.

Once you select “Indexed Mesh” from the “Add Object” button, you will see the following options:

image.png


Item Name

A readable name for the new entity

Source Mesh

Shows a list of available raw Mesh entities. From this list, you can select which raw Mesh will be used to create the Indexed Mesh.

Translate XYZ

These fields allow translating the mesh position by the specified amounts along each coordinate axis

Scale XYZ

These fields allow scaling the mesh by the specified amounts along each coordinate axis. A value of 1.0 represents the original scale

Rotate XYZ

Euler rotation angles for each coordinate axis.

Rotation Order

Euler rotation angle sequence.

 Click on “Create” to begin the indexing process. You can track the upload operation from the “Pending” section in the project’s page.

Once the processing is complete, you can view the new entity by clicking on the “View” button in the entity’s row inside the Catalog section for the project. Alternatively, you may create a View entity that uses the newly created entity as a source dataset.

Indexed Point Cloud

The Indexed Point Cloud entity is the result of applying the project’s spatial index to a raw Point Cloud entity. Indexed Point Clouds can be visualized and combined with other forms of spatial data.

Once you select “Indexed Points” from the “Add Object” button, you will see the following options:

image.png


Item Name

A readable name for the new entity

Source Mesh

Shows a lists of available raw Point Cloud entities. From this list, you can select which raw Point Cloud will be used to create the Indexed Point Cloud.

 Click on “Create” to begin the indexing process. You can track the upload operation from the “Pending” section in the project’s page.

Once the processing is complete, you can view the new entity by clicking on the “View” button in the entity’s row inside the Catalog section for the project. Alternatively, you may create a View entity that uses the newly created entity as a source dataset.

Voxel Point Cloud

This entity converts a series of spherical point cloud captures into a single volumetric voxel model. 

Once you select “Voxelized Points” from the “Add” menu, you will see the following options:

image.png

image.png


Item Name

A readable name for the new entity

Capture Device

An optional string to identify capture device

Capture Date

An optional field containing the original capture date

Horizontal Datum

Horizontal datum used in the point cloud

Vertical Datum

Vertical datum used in the point cloud

Projection

Projection used by the point cloud

Horizontal Units

Horizontal unit type used in the point cloud

Vertical Units

Vertical unit type used in the point cloud

Translate XYZ

These fields allow translating the mesh position by the specified amounts along each coordinate axis

Scale XYZ

These fields allow scaling the mesh by the specified amounts along each coordinate axis. A value of 1.0 represents the original scale

Rotate XYZ

Euler rotation angles for each coordinate axis.

Rotation Order

Euler rotation angle sequence.

 Once you have provided values to these fields, click on “Choose Files”. This will prompt a file selection dialog where multiple files can be selected for uploading. Each file must contain a sequence of comma-separated XYZ values, where the first entry contains the coordinates of the scanning device (a LiDAR device for instance) and the remaining points are the points that were captured from that location.

Click on “Create” to begin the upload and voxelization process. You can track the upload operation from the “Pending” section in the project’s page.

Voxel Terrain

The Voxel Terrain entity represents volumetric terrain. It features a continuous surface, so it is ideal for rendering terrain surfaces. Also, since the entity is fully volumetric, it can be used as an operand in complex volumetric queries like detecting volume changes from one dataset to another.

It is possible to create Voxel Terrain entities from point clouds and heightmaps. Voxel Terrain entities can also have Ortho-Imagery sets associated with them. These sets can be supplied by the user (like aerial photography) or computed by the Voxel Farm system (like detail normal maps).

To create a new Voxel Terrain entity, click on “Voxel Terrain” from the “Add Object” button. You will see the following options:

image.png


Item Name

A readable name for the new entity

Source

Shows a list of available raw Point Cloud and Heightmap entities. From this list, you can select which entity will be used to construct the Voxel Terrain. It is possible to select more than one entity here.

Include

Allows to select which point classes should be used. By default, all points will be used to construct the terrain. This setting is used only when the source is a Point Cloud.

Ortho-Imagery

Shows a list of available Ortho-Imagery entities. If an Ortho-Imagery entity is provided, it will be processed into the Voxel Terrain dataset and later it can be visualized on top of the Voxel Terrain surface. It is possible to select more than one entity here.

Detail Recovery – Use point cloud colors

Applicable when creating a Voxel Terrain from a raw point cloud that contains RGB color information per point. If this option is checked, the import process will create an ortho-imagery set on-the-fly using point colors and it will apply it to the Voxel Terrain.

Detail Recovery – Generate terrain normals

Requests the import system to create another Ortho-Imagery set associated with the Voxel Terrain. This set will contain high-frequency elevation detail captured as a normal map.

 Click on “Create” to begin the voxelization process. You can track the upload operation from the “Pending” section in the project’s page

Once the processing is complete, you can view the new entity by clicking on the “View” button in the entity’s row inside the Catalog section for the project. Alternatively, you may create a View entity that uses the newly created entity as a source dataset.

Voxel Block Model

The Voxel Block Model entity is the processed version of the raw Block Model entity. Voxel Block Models can be visualized in the system, dynamically queried, and combined with other spatial entities in the project.

To create a new Voxel Block Model entity, click on “Voxel Block Model” from the “Add Object” button. You will see the following options:

image.png

image.png


Item Name

A readable name for the new entity

Source

Shows a lists of available raw Block Model entities. From this list, you can select which raw Block Model will be used to create the Voxelized Block Model.

Translate XYZ

These fields allow translating the mesh position by the specified amounts along each coordinate axis

Scale XYZ

These fields allow scaling the mesh by the specified amounts along each coordinate axis. A value of 1.0 represents the original scale

Rotate XYZ

Euler rotation angles for each coordinate axis.

Rotation Order

Euler rotation angle sequence.

 Click on “Create” to begin the voxelization process. You can track the upload operation from the “Pending” section in the project’s page

Once the processing is complete, you can view the new entity by clicking on the “View” button in the entity’s row inside the Catalog section for the project. Alternatively, you may create a View entity that uses the newly created entity as a source dataset.

Program

The Program Entity stores a Python program in the project.

There are three different types of programs.

  1. Voxel Generator: These can be later used in Voxel Generator entities to create new types of volumetric objects. For more information on this type of programs refer to the Voxel Generator Programs section.
  2. Report: These programs run over a region of space and can collect information about the spatial data in the region, analyze it and output relevant facts about it. For more information on this type of programs refer to the Report Programs section.
  3. View: This type of program can create a custom combination of datasets and decide how they will be represented on-screen. For more information on this type of programs refer to the View Programs section.

To create a new Program entity, click on “Program” from the “Add” menu. You will see the following options:


Program Name

A readable name for the new entity

Type

Type of Program. Can be set to “Voxel Generator”, “Report” or “View”

Code

Python code for the Program Entity.

View

The View entity stores information about a View. Views are pre-configured mashups of several spatial datasets, which allow team members to quicly share visualizations.

Views are an essential component of the spatial platform. In order to see how to create new Views, please check out the following section:

Report

The Report entity stores information about a report. Report entities hold the results of running a custom report program over a scope of multiple spatial datasets.

In order to see how to create new reports, please check out the following section:

Data Export

The Voxel Farm platform offers a user friendly mechanism to extract data out of the system using standard formats. The Export entity is used to trigger an export job and to hold the results for later downloading.

To create a new Voxel Generator entity, click on “Voxel Generator” from the “Add” menu. You will see the following options:


File Name

A readable name for the new entity, will also be used as file name when the results are downloaded to a local machine

Region

Select one of the regions available in the Project as the scope where the Report will run. Visit the Working with Regions section to see how to define a new region.

Type

Select one of the following available types of data to export:


  • Mesh - Exports a surface as an OBJ mesh file
  • Points - Export a point cloud using CSV
  • Raster - Exports ortho-imagery using TIFF and TFW

Resolution

Depending on which type was selected, the export operation allows to export data at 1:1 density, or it can produce lower resolutions of the data.

Source

Depending on which type of export operation was selected, this component allows to select the dataset that will provide the information to be exported

Click on “Create” to begin the voxelization process. You can track the upload operation from the “Pending” section in the project’s page

Once the processing is complete, you can download the exported data by clicking on the "Download" button next to the entity name in the Project Catalog.