美文网首页倾斜摄影与Smart3D(ContextCapture)教程
smart3d教程~二次开发(自动化)~~第六章~~V4.4.9

smart3d教程~二次开发(自动化)~~第六章~~V4.4.9

作者: 三维GIS那点事_王跃军 | 来源:发表于2019-04-14 16:28 被阅读147次

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

如果感觉整理的还不错,欢迎点赞、分享

相关文章

网友评论

    本文标题:smart3d教程~二次开发(自动化)~~第六章~~V4.4.9

    本文链接:https://www.haomeiwen.com/subject/gqrswqtx.html