Release notes¶
These are the stable releases of Pix4Dengine SDK. They follow semantic versioning.
Version 1.4.1¶
What’s new¶
- Improved radiometric processing of data taken with MicaSense cameras.
- Added more camera models to the camera database.
Version 1.4.0¶
What’s new¶
- Added support for radiometric correction of DJI P4 Multispectral data.
- Added single token login functionality (all necessary login information contained in one token).
- Improved performance of point cloud densfication algorithm, particularly for large data sets.
- Added option to set the DSM generation method.
- Various documentation improvements.
API changes¶
- Added option
pix4dengine.algo.ortho.OrthoAlgoOption.DSM_METHOD
to set raster DSM creation method. The valid options are"InverseDistanceWeighting"
(default) and"Triangulation"
. - The token-based login system has been modified to work with a single, self-contained
token. Note: this is a backwards incompatible change, introduced to this version exceptionally as a security and usability improvement (see Compatibility Issues below).
- gen_session_token generates a self-contained token from the required login information (credentials, license key).
- login_with_token accepts a single, self-contained token,
as generated by
gen_session_token
.
Compatibility issues¶
The token based login has been modified to deal with a single, self-contained token, and hide implementation details of the authentication method from the user. This change, motivaded by security and usability considerations, results in the following backwards-incompatible changes:
pix4dengine.get_auth_token
has been replaced by the more generic gen_session_token, which generates a self-contained token from the required login information (credentials, license key).- login_with_token has been modified
to accept a single, self-contained token, as generated by
gen_session_token
.
Bug fixes¶
- Fixed software version number in quality report. Pix4Dengine SDK version is now reported.
- Fixed issue where certain image band names caused processing to fail during index calculation.
Version 1.3.0¶
What’s new¶
- Automatic GCP detection with
automarking
, an external Pix4D Python module (more information in theautomarking
documentation). - Added re-optimization algorithm (more information here).
- Standard photogrammetry algorithms are available as stand-alone callable objects and are grouped with the options used to configure them in dedicated modules (more information here).
- Callable objects can be passed in the list of algorithms used to initialize pipelines.
- A revised
pipeline
API that enforces coherency between the algorithms included in the pipeline with respect to the input data (projects) they use and allows executing the same pipeline for different sets of input data. - Support for checkpoints (more information here).
- Enhanced point cloud quality through noise reduction in the point cloud densification algorithm.
- Various documentation improvements.
API changes¶
- Added
pix4dengine.algo
module for standard photogrammetry algorithms and their configuration options. pix4dengine.options
module API:AlgoOption.CameraCalibration.REMATCH_STRATEGY
is removed as broken in favour of using solelyAlgoOption.CameraCalibration.REMATCH
;AlgoOption.CameraCalibration
is deprecated in favour ofpix4dengine.algo.calib.AlgoOption
;AlgoOption.Densification
is deprecated in favour ofpix4dengine.algo.dense.AlgoOption
;AlgoOption.Mesh
is deprecated in favour ofpix4dengine.algo.mesh.AlgoOption
;AlgoOption.Ortho
is deprecated in favour ofpix4dengine.algo.ortho.OrthoAlgoOption
;AlgoOption.Index
is deprecated in favour ofpix4dengine.algo.ortho.IndexAlgoOption
;ExportOption.CameraCalibration
is deprecated in favour ofpix4dengine.algo.calib.ExportOption
;ExportOption.Densification
is deprecated in favour ofpix4dengine.algo.dense.ExportOption
;ExportOption.Mesh
is deprecated in favour ofpix4dengine.algo.mesh.ExportOption
;ExportOption.Ortho
is deprecated in favour ofpix4dengine.algo.ortho.OrthoExportOption
;ExportOption.Index
is deprecated in favour ofpix4dengine.algo.ortho.IndexExportOption
;StandardExport.Report
is deprecated in favour ofpix4dengine.exports.ReportFormat
;StandardExport.CameraCalibration
is deprecated in favour ofpix4dengine.exports.CameraCalibParam
.
pix4dengine.pipeline
module API:- Argument
project
inPipeline()
is made optional and deprecated; - Argument
project
is added toPipeline.run()
; - Argument
project
inpipeline_from_template()
is deprecated; - Argument
project
inEngineTask()
is made optional and deprecated; - Argument
project
is added toEngineTask.run()
.
- Argument
- Argument
project
is added topix4dengine.task.Task.run()
.
Compatibility issues¶
- New requirements on structure of scripts that use Pix4Dengine SDK (more information here).
- The broken
REMATCH_STRATEGY
calibration option is removed in favour of using solely theREMATCH
option.
Bug fixes¶
- Fixed an issue with Python interpreter termination during memory-intensive processing.
- Fixed a memory leak that affected long-running processing sessions.
- The automatic image re-matching strategy applied through the
REMATCH_STRATEGY
calibration option was supposed to disable re-matching for data sets with more than 500 images but failed to do so. To simplify the logic, theREMATCH_STRATEGY
option is removed in favour of explicit re-matching configuration through theREMATCH
option. - Fixed the issue with inconsistent default DTM export configuration: the
DTM_TIFF_MERGED
option was enabled by default while theDTM_TIFF
option was disabled. Both options are disabled by default now. - Fixed the issue with unreadable mesh texture files when a large number of mesh triangles (greater
than the default value) was configured (the
MAX_TRIANGLES
mesh option). - Fixed the issue with processing area calculation when input image names contained spaces.
- Fixed the issue with blurry and incomplete orthomosaic and incomplete DSM when a custom coordinate system is used.
Version 1.2.0¶
What’s new¶
API changes¶
- Added optional parameter
camera_config
topix4dengine.create_project
. This can be used to set a camera configuration on the project. - Added options
ExportOption.Mesh.LOD_SLPK
andExportOption.Mesh.LOD_OSGB
to generate SLPK and PSGB mesh LOD exports respectively. - Added options
AlgoOption.Mesh.LOD_NUM_LEVELS
andAlgoOption.Mesh.LOD_TEXTURE_QUALITY
to set number of LOD levels and mesh texture quality respectively. - Added
pix4dengine.get_auth_token
andpix4dengine.login_with_token
functions to generate an authorization token and use it to login respectively.
Compatibility issues¶
- The redundant option
AlgoOption.Mesh.GEN_3D_TEXT
has been removed.
Bug fixes¶
- Login without specifying a license results in an error when the user has more than one valid license. The error message lists the valid license keys, so the user can decide which one to use. Previously, one of the licenses was selected silently.
- The option
AlgoOption.Mesh.GEN_3D_TEXT
has been removed. It had no effect.
Version 1.1.1¶
What’s new¶
- Added CUDA support (more information here).
- Added support for creating pipelines from pre-defined templates (more information here).
- Added support for specifying image geo-tags without need of an external geo-location file (more infomation here).
- Added support for user-defined cameras (more information here).
- Various documentation improvements.
API changes¶
- Added
pix4dengine.project.Project.logfile_path
property with path of processing core log file. - Added
pix4dengine.pipeline.pipeline_from_template()
function. - Added
pix4dengine.geotag
module.- Class
pix4dengine.geotag.Geotag
. This can be used inpix4dengine.create_project()
to geo-reference images in a project. - Classes
ExternalGeolocationFormat
andpix4dengine.geotag.ExternalGeolocation
. These supersede the deprecatedpix4dengine.constants.ExternalGeolocationFormat
andpix4dengine.constants.ExternalGeolocation
respectively.
- Class
- Added
pix4dengine.camera
module for camera and camera DB access and manipulation. pix4dengine.options
module API:- New options
AlgoOption.Ortho.MOSAIC_RELATIVE_RESOLUTION
andAlgoOption.Ortho.MOSAIC_ABSOLUTE_RESOLUTION
(added in 1.0.0 but omitted from the release notes).
- New options
Compatibility issues¶
- The field
pix4dengine.utils.gcp.Mark.scale
has been deprecated and removed from examples and documentation. pix4dengine.constants.ExternalGeolocationFormat
andpix4dengine.constants.ExternalGeolocation
have been deprecated. Usepix4dengine.geotag.ExternalGeolocationFormat
andpix4dengine.geotag.ExternalGeolocation
respectively.
Bug fixes¶
- Fix geo-referencing of LAS and LAZ point clouds.
- Fix unintended creation of mesh export files when none of the
pic4dengine.options.ExportOption.Mesh
options are set. - Fix issue which impeded obtaining output names of spit LAS files.
- Fix issue where transparent otrho mosaic TIFF output was generated but not listed by
pix4dengine.exports.get_output()
.
Version 1.0.0¶
What’s new¶
- Windows support is added.
- Project names can contain all unicode characters except those forbidden for file names by any of POSIX and Win32.
- Projects with images in multiple directories can be created.
- Images directories can be searched for images recursively at project creation.
- Users holding both an ENGINE-SERVER and an ENGINE-CLOUD license are now allowed to login by
specifying a license key when calling
pix4dengine.login_seat()
. - Added support for radiometric indices with
pix4dengine.options.AlgoOption.Index.INDICES
. - Extended multispectral processing support with additional algorithmic and export options.
- Additions, removals, and other changes to algorithmic options that improve coherency of the configuration given to the photogrammetry pipeline. Changes incompatible with the previous release are listed in the “API changes” section.
- A new concept of processing templates. Templates are now defined in terms of Engine SDK options. They are applied to processing pipelines rather than projects. XML templates (.tmpl files) are not supported any more.
- A revised
coordsys
API. The changes incompatible with the previous release are listed in the “API changes” section.
API changes¶
pix4dengine.create_project()
function:- Argument
images_dir
is renamed toimage_dirs
. You have to adapt only if you use the keyword argument; - Argument
processing_proxy
is removed; - Argument
template
is removed; - Argument
callbacks
is replaced byon_start
andon_success
; - Argument
recursive_input_search
is added.
- Argument
- The
pix4dengine.processingproxy
module is removed:- The
ProcessingProxy
class is removed and an object of it cannot be passed tocreate_project()
,login_seat()
,logout_seat()
,Pipeline()
andEngineTask()
anymore; - The
Pipeline
and theEngineTask
classes moved to thepix4dengine.pipeline
module.
- The
pix4dengine.constants.processing.ProcessingTemplates
is removed. The templates it defined are superseded by those inpix4dengine.pipeline.templates
.pix4dengine.utils.processingproxy.Callbacks
andpix4dengine.task.Task.Callbacks
are removed. Functions taking aCallbacks
object have to be now given theon_start
,on_success
andon_error
callables directly.pix4dengine.pipeline.EngineTask.append_config()
is renamed toupdate_config()
.pix4dengine.process_project()
is removed. Project processing must be done exclusively through the more general task pipeline mechanism, usingpix4dengine.pipeline
.pix4dengine.Project.set_options()
is removed. Options must be set exclusively through processing tasks.pix4dengine.options
module API:AlgoOption.Ortho.MOSAIC_RELATIVE_RESOLUTION
andAlgoOption.Ortho.MOSAIC_ABSOLUTE_RESOLUTION
options are added;AlgoOption.Ortho.DTM_RESOLUTION
is replaced byAlgoOption.Ortho.DTM_RELATIVE_RESOLUTION
andAlgoOption.Ortho.DTM_ABSOLUTE_RESOLUTION
;AlgoOption.Index.RESOLUTION
is replaced byAlgoOption.Index.RELATIVE_RESOLUTION
andAlgoOption.Index.ABSOLUTE_RESOLUTION
;AlgoOption.CameraCalibration.MATCH_TIME_MULTI_CAMERA
changed type fromint
tobool
, its meaning is the same;AlgoOption.Densification.PCL_IMAGE_SCALE
changed its type and allowed values to make them consistent with their meaning;AlgoOption.CameraCalibration.MATCH_STRATEGY
is removed. The equivalent pipeline configurations can be set using the newAerialCalibMatch
andFreeFlightCalibMatch
templates;AlgoOption.Mesh.RESOLUTION
option is removed. The equivalent pipeline configurations can be set using the newMeshNormalRes
,MeshHighRes
andMeshLowRes
templates;AlgoOption.CameraCalibration.SKY_SEGMENTATION
is obsolete and removed.
pix4dengine.coordsys
module API:wkt_to_projected_cs()
is renamed towkt_to_cs_name()
;projected_cs_to_wkt()
is renamed tocs_name_to_wkt()
;get_unit_from_projected_cs()
is renamed tounit_from_cs_name()
;get_unit_from_wkt()
is renamed tounit_from_wkt()
;CoordSys.get_cs()
is replaced byCoordSys.get_cs_name()
andCoordSys.get_cs_wkt()
;CoordSys.set_cs()
is replaced byCoordSys.set_cs_from_name()
andCoordSys.set_cs_from_wkt()
;CoordSys.is_in_meter()
,CoordSys.is_in_foot()
andCoordSys.is_in_us_survey_foot()
are replaced byCoordSys.get_length_unit()
.
pix4dengine.exports.get_expected_ouput()
andpix4dengine.exports.get_available_output()
are replaced byget_output()
.
Compatibility issues¶
pix4dengine.utils.gcp.Mark
now references an image by its absolute path rather than by its file name.
Bug fixes¶
- Geotags of Mavic2 drones were read incorrectly.
- Processing hung after finishing if a non-pix4d user account was logged in.
- Creating a GCP mark for an image added the mark to all images whose file names were substrings of the image file name the mark was created for.
Version 0.2.0¶
Pix4Dengine Server SDK 0.2.0 is a beta release. Forward and backward compatibility are not guaranteed.
What’s new¶
Algorithmic improvements¶
- Radiometry: software compensation of sensor drift in images from FLIR cameras. This improves the quality of orthomosaic images produced. Note that these improvements only apply to merged outputs, not tiled ones.
- Point cloud and mesh: a point cloud outlier filter is provided. Removing noise from the point cloud can reduce or eliminate mesh artifacts.
Other improvements¶
- The Pix4Dengine Server SDK no longer relies on the Pix4Dmapper application.
- The SDK is provided as a Debian package that includes the Pix4D photogrammetry runtime.
Bug fixes¶
- The high resolution mesh could be blurry while the medium resolution was sharp
- The mesh texture could be incorrectly generated on Ubuntu
- The contour
.dxf
exports could have missing contour lines
Compatibility issues¶
- The function
pix4dengine.create_split_projects()
is removed. - The class
pix4dengine.enginewrapper.EngineWrapper()
is removed. Related to this:- Login and logout are managed by the
pix4dengine.login_seat
andpix4dengine.logout_seat
functions - Setting the maximum number of CPU cores to use is done when instantiating a
Pipeline
- The
pix4dengine.settings
sub-module is removed: calls toset_exe_path()
andget_exe_path()
functions must be removed from your code
- Login and logout are managed by the
Version 0.1.0¶
Pix4Dengine server is our new SDK for customers that want to scale, automate and integrate photogrammetry into their business processes.
Features¶
- Highly configurable processing pipeline that supports custom plugins
- Access to the Pix4D photogrammetry algorithms
Remarks¶
- Projects from older Pix4Dmapper versions can be processed and will be automatically converted to the mapper version in used by Pix4Dengine SDK.
- Pipelines are a particularly new feature, their functionality and interface should be expected to change in the future.