User Guide¶
This user guide explains the key concepts and structure of pix4dvortex and provides high level documentation of its main components and how they can be pieced together to build applications. For detailed documentation of individual API components see the API Reference section.
Introduction¶
pix4dvortex has a modular structure and its main components can be classified as data model, processing algorithms, general utilities and exporters. This structure gives the user a large degree of freedom, enabling them to piece together custom applications from individual building blocks. The downside of this design is that there is not a ready to use photogrammetry processing pipeline as in previous iterations of PIX4Dengine SDK. This guide explains the main concepts and illustrates how to put components together to make custom applications.
Concepts: Data model, algorithms, utilities, exporters¶
Algorithms are functions that implement specific processing steps. They have data inputs and configuration as parameters 1, and return a data object with the results of the processing. There are no side effects to an algorithm execution 2: they operate on the inputs, and produce a new output. Examples include calibration, point cloud densification, mesh generation, orthomosaic generation.
The data model consists of the classes representing inputs and outputs of algorithms. They may also serve as inputs to exporters. Examples include input cameras, calibrated cameras, densified point clouds, spatial reference systems. Most data model classes are serializable to a standard Pix4D format.
Exporters are functions to export data model object to 3rd party standard formats, such as LAS, geotiff, SLPK, Cesium, OBJ.
Utilities are collections of functions and classes that do not fit in the three categories above, but may serve to transform data into data model types that can be passed into algorithms, or implement additional functionality separate from data processing. Examples are coordinate system transformations, geometric types and operations, logging, file IO, authentication/authorization.
The following sections explore these concepts in more detail.
Footnotes
- 1
This is a simplification for the sake of clarity. In reality algorithm functions may have other parameters that don’t fit into these categories, such as logger and progress handler functions. These do not affect the outcome of the processing.
- 2
In actual fact algorithm functions may have well defined and contained side-effects such as writing messages to a logger or collecting usage stats. These do not affect the processing and are explained in more detail in further sections.