Release notes¶
These are the stable releases of Pix4Dengine SDK. They follow semantic versioning.
Version 1.4.2¶
What’s new¶
- More camera models in the camera database.
- Improvements in documentation and examples.
Bug fixes¶
- Fix orthomosaic gain compensation that resulted in seam lines between tiles in merged orthomosaic TIFF images for some datasets.
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_METHODto 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_tokenhas 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 theautomarkingdocumentation). - 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
pipelineAPI 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.algomodule for standard photogrammetry algorithms and their configuration options. pix4dengine.optionsmodule API:AlgoOption.CameraCalibration.REMATCH_STRATEGYis removed as broken in favour of using solelyAlgoOption.CameraCalibration.REMATCH;AlgoOption.CameraCalibrationis deprecated in favour ofpix4dengine.algo.calib.AlgoOption;AlgoOption.Densificationis deprecated in favour ofpix4dengine.algo.dense.AlgoOption;AlgoOption.Meshis deprecated in favour ofpix4dengine.algo.mesh.AlgoOption;AlgoOption.Orthois deprecated in favour ofpix4dengine.algo.ortho.OrthoAlgoOption;AlgoOption.Indexis deprecated in favour ofpix4dengine.algo.ortho.IndexAlgoOption;ExportOption.CameraCalibrationis deprecated in favour ofpix4dengine.algo.calib.ExportOption;ExportOption.Densificationis deprecated in favour ofpix4dengine.algo.dense.ExportOption;ExportOption.Meshis deprecated in favour ofpix4dengine.algo.mesh.ExportOption;ExportOption.Orthois deprecated in favour ofpix4dengine.algo.ortho.OrthoExportOption;ExportOption.Indexis deprecated in favour ofpix4dengine.algo.ortho.IndexExportOption;StandardExport.Reportis deprecated in favour ofpix4dengine.exports.ReportFormat;StandardExport.CameraCalibrationis deprecated in favour ofpix4dengine.exports.CameraCalibParam.
pix4dengine.pipelinemodule API:- Argument
projectinPipeline()is made optional and deprecated; - Argument
projectis added toPipeline.run(); - Argument
projectinpipeline_from_template()is deprecated; - Argument
projectinEngineTask()is made optional and deprecated; - Argument
projectis added toEngineTask.run().
- Argument
- Argument
projectis added topix4dengine.task.Task.run().
Compatibility issues¶
- New requirements on structure of scripts that use Pix4Dengine SDK (more information here).
- The broken
REMATCH_STRATEGYcalibration option is removed in favour of using solely theREMATCHoption.
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_STRATEGYcalibration 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_STRATEGYoption is removed in favour of explicit re-matching configuration through theREMATCHoption. - Fixed the issue with inconsistent default DTM export configuration: the
DTM_TIFF_MERGEDoption was enabled by default while theDTM_TIFFoption 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_TRIANGLESmesh 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_configtopix4dengine.create_project. This can be used to set a camera configuration on the project. - Added options
ExportOption.Mesh.LOD_SLPKandExportOption.Mesh.LOD_OSGBto generate SLPK and PSGB mesh LOD exports respectively. - Added options
AlgoOption.Mesh.LOD_NUM_LEVELSandAlgoOption.Mesh.LOD_TEXTURE_QUALITYto set number of LOD levels and mesh texture quality respectively. - Added
pix4dengine.get_auth_tokenandpix4dengine.login_with_tokenfunctions to generate an authorization token and use it to login respectively.
Compatibility issues¶
- The redundant option
AlgoOption.Mesh.GEN_3D_TEXThas 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_TEXThas 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_pathproperty with path of processing core log file. - Added
pix4dengine.pipeline.pipeline_from_template()function. - Added
pix4dengine.geotagmodule.- Class
pix4dengine.geotag.Geotag. This can be used inpix4dengine.create_project()to geo-reference images in a project. - Classes
ExternalGeolocationFormatandpix4dengine.geotag.ExternalGeolocation. These supersede the deprecatedpix4dengine.constants.ExternalGeolocationFormatandpix4dengine.constants.ExternalGeolocationrespectively.
- Class
- Added
pix4dengine.cameramodule for camera and camera DB access and manipulation. pix4dengine.optionsmodule API:- New options
AlgoOption.Ortho.MOSAIC_RELATIVE_RESOLUTIONandAlgoOption.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.scalehas been deprecated and removed from examples and documentation. pix4dengine.constants.ExternalGeolocationFormatandpix4dengine.constants.ExternalGeolocationhave been deprecated. Usepix4dengine.geotag.ExternalGeolocationFormatandpix4dengine.geotag.ExternalGeolocationrespectively.
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.Meshoptions 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
coordsysAPI. The changes incompatible with the previous release are listed in the “API changes” section.
API changes¶
pix4dengine.create_project()function:- Argument
images_diris renamed toimage_dirs. You have to adapt only if you use the keyword argument; - Argument
processing_proxyis removed; - Argument
templateis removed; - Argument
callbacksis replaced byon_startandon_success; - Argument
recursive_input_searchis added.
- Argument
- The
pix4dengine.processingproxymodule is removed:- The
ProcessingProxyclass is removed and an object of it cannot be passed tocreate_project(),login_seat(),logout_seat(),Pipeline()andEngineTask()anymore; - The
Pipelineand theEngineTaskclasses moved to thepix4dengine.pipelinemodule.
- The
pix4dengine.constants.processing.ProcessingTemplatesis removed. The templates it defined are superseded by those inpix4dengine.pipeline.templates.pix4dengine.utils.processingproxy.Callbacksandpix4dengine.task.Task.Callbacksare removed. Functions taking aCallbacksobject have to be now given theon_start,on_successandon_errorcallables 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.optionsmodule API:AlgoOption.Ortho.MOSAIC_RELATIVE_RESOLUTIONandAlgoOption.Ortho.MOSAIC_ABSOLUTE_RESOLUTIONoptions are added;AlgoOption.Ortho.DTM_RESOLUTIONis replaced byAlgoOption.Ortho.DTM_RELATIVE_RESOLUTIONandAlgoOption.Ortho.DTM_ABSOLUTE_RESOLUTION;AlgoOption.Index.RESOLUTIONis replaced byAlgoOption.Index.RELATIVE_RESOLUTIONandAlgoOption.Index.ABSOLUTE_RESOLUTION;AlgoOption.CameraCalibration.MATCH_TIME_MULTI_CAMERAchanged type frominttobool, its meaning is the same;AlgoOption.Densification.PCL_IMAGE_SCALEchanged its type and allowed values to make them consistent with their meaning;AlgoOption.CameraCalibration.MATCH_STRATEGYis removed. The equivalent pipeline configurations can be set using the newAerialCalibMatchandFreeFlightCalibMatchtemplates;AlgoOption.Mesh.RESOLUTIONoption is removed. The equivalent pipeline configurations can be set using the newMeshNormalRes,MeshHighResandMeshLowRestemplates;AlgoOption.CameraCalibration.SKY_SEGMENTATIONis obsolete and removed.
pix4dengine.coordsysmodule 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.Marknow 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
.dxfexports 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_seatandpix4dengine.logout_seatfunctions - Setting the maximum number of CPU cores to use is done when instantiating a
Pipeline - The
pix4dengine.settingssub-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.