pdf版本的中英文对照版帮助文档V1.9版本已整理完成,并仔细核查,可作为案头资料。
获取方式:https://www.jianshu.com/p/0ce47773a84e
在线分享一样不停歇,致力于打造最大的Smart3D建模交流社群,欢迎各路大神加入!
PS:一直在想什么才是最好的教程,当通篇阅读了两遍Smart3D软件自带的英文帮助文档后,觉得自己之前整理的目录糟糕透了,于是一口气把它给翻译了(之前一直没找到中文版,老外对国内市场还是不够重视啊)作为标准教程。
6.SDK二次开发指南(ccmasterkernel’s documentation)
本用户手册与ContextCapture Master Kernel SDK有关
作为ContextCapture Master Kernel SDK的一部分,ccMasterKernel是一个以编程方式访问ContextCapture Master所有功能的python模块。此模块代替用户界面,用于完整的项目创建、编辑和监控。
提醒:本文件中的信息如有更改,恕不另行通知,并按“原样”提供。Bentley对本材料不作任何形式的保证,包括但不限于对适销性和特定用途适用性的暗示保证。Bentley不对本文所包含的错误或与使用本材料有关的任何直接、间接、特殊、附带或后果性损害负责。
版权:Bentley Systems
6.1概述(Overview)
作为ContextCapture Master Kernel SDK的一部分,ccMasterKernel是一个以编程方式访问ContextCapture Master所有功能的python模块。此模块代替用户界面,用于完整的项目创建、编辑和监控。
ccmasterkernel模块允许在一个简单的方式,通过Python脚本开发定制的基于ContextCapture的应用程序,自定义和/或自动3D重建过程。
API模块(应用程序编程接口)允许控制ContextCapture主项目(CCM文件)中使用的所有项:
项目(Project):创建、保存、编辑、选项设置、树结构管理。
块(Block):(Excel,XML导入以及导出(KML),XML,非约束的照片),分割,提取,照片/ 照片组(PhotoGroup)创建和编辑包括相机的三维属性和位置/旋转,控制点(三维位置、照片测量),连接点的创建和编辑。
AT(空中三角测量/ Aerotriangulation):组件,定位模式,设置,任务提交,监测/控制,导出空三报告。
重建(Reconstruction):空间框架(SRS,兴趣区域,瓦片分块),重建约束,参考三维模型,(导入导出retouches,匀色,处理设置,导出瓦片分割为kml。
生产(Production):控制所有参数(用途,格式,选项,范围和定义),任务提交,监测/控制。
工作队列监测。
应用设置(Application Settings):许可检查,软件的版本控制,在线更新。
二次开发API包括各种工具和数据交换(属性树,几何)测量运算。
6.2安装(Installation)
从更新9(update 9)开始,python将被打包为一个wheel包。您可以在sdk/dist安装目录下找到*.whl文件。需要python 3.6 x64版本支持。
烈建议使用virtualenv和pip安装此软件包。
但是,仍然有一个ContextCapture SDK命令提示快捷方式,您可以使用它来创建virtualenv并在其中安装ccmasterkernel。
6.3 升级指南(Migration guide)
从更新9(update9)开始,包名不再是ccmasterkernelpy,而是*ccmasterkernel。您需要更新脚本,才能是你老的脚步可以在新版本下运行。如果不想全部更改,可以做如下替换:
把老命令
import CCMasterKernelPy
替换为:
import ccmasterkernel as CCMasterKernelPy
作为一个小技巧
6.4教程
此简单脚本创建新的CCM项目,导入XML块定义,并保存项目:
import ccmasterkernel
project=ccmasterkernel.Project()
project.setName('my project')
project.setProjectFilePath('D:/DATA/my project/my project.ccm')
project.importBlocks("'D:/DATA/block.xml")
project.writeToFile()
几个完整的示例将与包一起安装在python安装示例/目录中。
automaster.py
此脚本读取照片目录创建一个完整的重建(Reconstruction),它遵循整个工作流程(航空三角测量、重建和生产),并介绍了任务监控。
module_info.py
此脚本演示如何通过Python模块General面板的信息:许可证和功能、支持的生产(production)格式和选项等。
dump_project.py
此脚本从现有CCM项目中提取各种数据信息。
import_and_extract.py
此脚本演示了Aerial块导入、块提取和块导出的示例。
import_and_split.py
此脚本演示了Aerial块导入、块分割和块导出的示例。
import_txt.py
此脚本根据自定义文本块格式创建块
reconstruction_settings.py
此脚本在现有CCM项目中使用自定义设置创建新的重建。
6.5 API参考手册
6.5.1模块信息
获取模块的基本信息,无许可也可以访问。
version()→ str
Returns 软件版本.
edition()→ str
Returns 软件规格(eg. Expert, Ultimate).
isLicenseValid()→ bool
Returns True 许可有效.
如果许可无效,可以通过lastLicenseErrorMsg()获取许可详细信息
lastLicenseErrorMsg()→ str
Returns 许可错误的信息.
6.5.2项目(Project)
Project选项管理与ContextCapture处理的场景相关的所有数据。
6.5.3块(block)
一个Block区块项目包含了一系列影像和属性,包括传感器尺寸、焦距、主点、透镜畸变以及位置和旋转等姿态信息,基于这些信息,可以建立一个或多个重建项目。
Block的定义如下:
照片(Photos):导入或添加的照片及其相关的照片组属性和照片姿态(通过航空三角测量或导入计算)。通过块的照片组(photogroup)访问照片
点云(PointClouds):导入的点云及其关联属性
控制点(Control points):手工输入或导入。控制点是可选的。参见类:'ccmasterkernel.controlpoint'
连接点(Tie points):由ContextCapture自动提取或导入。还可以输入用户连接点以帮助进行航空三角测量。
块类型(BlockType):例如“Aerial”,可选选项
Reconstruction列表(List of reconstructions):基于Block
创建Block的示例:
6.5.4照片(Photos)
管理照片集和关联的属性。通过照片组访问块的照片。
照片被分为一组或多组照片。均匀的一组照片,所有照片都是用同一个具有相同内部方向(图像尺寸、传感器尺寸、焦距等)的物理相机拍摄的。
如果照片是根据拍摄时使用的相机按子目录组织的,则ContextCapture可以自动确定相关的照片组
6.5.5空三(Aerotriangulation)
航空三角测量从输入块(Block)开始,生成具有计算或调整属性的新块。
航空三角测量可考虑当前摄像机位置(例如,从GPS初始化)或地理参考控制点。
6.5.6连接点(TiePoints)
一个连接点对应于两张或多张不同照片中的像素,其中这些像素表示场景中同一物理点的投影。ContextCapture可以在航空三角测量过程中自动生成大量的连接点。但是,用户连接点也可以预先输入,以帮助进行航空三角测量。
6.5.7点云(PointClouds)
管理点云集和关联属性
6.5.8重建(Reconstruction)
一个重建项目(Reconstruction)管理着一个三维重建框架(包含空间坐标系,建模区域,瓦片设置,处理设定等),基于一个重建项目可以建立一或多个生产任务。
Reconstruction的定义包含以下属性:
空间参考(Spatial framework):定义空间参考系统(SRS)、感兴趣区域(ROI)和瓦片切割方式。
重建约束(Reconstruction constraints):允许使用现有的三维数据来控制重建并避免重建错误
参考三维模型(Reference 3D model):是重建沙盒,它以本机格式存储一个三维模型,随着生产进度逐步完成。该参考三维模型是应用了修饰和重建约束的模型,并从中派生出需要完成的生成。通过InternalTile对象访问参考三维模型
重建设置(Reconstruction settings):处理选项设置,设置几何精度级别(高或最高)和其他重建设置。
Production列表(List of productions)
6.5.9生产(Production)
生产项管理三维模型的生成,包括错误反馈、进度监控和有关底层重建更新的通知(例如,修饰)。
6.5.10几何对象(Geometry)
MasterKernel中使用的基本几何类型的定义
6.6编码指引(API programming guid)
6.7空间参考系统(Spatial Reference System)
地理参考项目需要通过选择空间参考系统(SRS)来定义制图系统。可以为管道中的各个步骤定义不同的SRS。例如,重构(空间框架)级别和生产级别都接受SRS的定义。
可以使用任何已知的SRS定义,包括epsg定义、proj.4声明或包含已知文本(wkt)的.prj文件名。
寻找空间参考系,请访问:www.spatialreference.org
EPSG编码:
支持大多数EPSG定义,包括EPSG投影制图系统和EPSG地理系统。使用语法“epsg:code”输入epsg代码(例如“epsg:32651”)
示例:
ProjectionCode
ECEF (Earth-Centered, Earth-Fixed)EPSG:4978
WGS84 (World Geodetic System 1984)EPSG:4326
WGS84 / UTM Zone 31NEPSG:32631
PROJ4
Proj4声明允许定义自定义投影系统(例如“+proj=utm+zone=11+datum=wgs84”)。另见项目4一般参数。
WKT规范支持(Well known text)
OpenGIS坐标系的众所周知的文本格式(WKT)可以在一个附加的.prj文件中提供。在这种情况下,输入投影文件路径作为SRS定义(例如“c:/projects/myprojection.prj”)。

其他定义(Other definitions):
ContextCapture在工作流的某些步骤中支持其他类型的SRS定义
ENU(East-North-Up):可以使用语法“ENU:lat,lon”(例如“ENU:41.57231,2.26157”)输入本地ENU定义。
Bing Maps瓦片系统(Bing Maps Tile System):Bing地图坐标系统可用于重建空间框架(例如“Bing地图:15”)。另请参阅msdn.microsoft.com。
6.8生产格式和选项(Production formats and options)
建议的输出格式和选项取决于重建特性和生产目的。
输出格式通过ProductionDriver对象进行管理,并在ProductionDriverManager中注册。
获取支持的Production格式驱动:
ProductionDriver对象是在具有短名称的生产对象(如obj、osgb)上指定的。
每个ProductionDriver都有自己的实现并接受自己的选项。ProductionDriver对象可以返回受支持选项的元描述。
获取obj驱动程序的选项元描述:
每个选项由ID字符串、类型(bool、double、int、string)、可显示名称name和默认值标识。
6.9任务队列监测(Job queue monitoring)
提交航空三角测量作业,以及如何监视作业进度
上一篇:
下一篇:
老教程目录:https://www.jianshu.com/p/d3e5adb19f0c
Smart3D常见问题汇总:https://www.jianshu.com/p/b5ea70da3da7
如果感觉整理的还不错,欢迎点赞、分享
网友评论