三维数据集

2024-09-13

三维数据集(精选7篇)

三维数据集 篇1

医学影像解剖学是医学影像学专业学生必修的一门专业基础课程, 它建立在医学成像技术和人体解剖学这两门课程联合的基础上。该课程主要介绍X射线摄影、CT、MRI、核医学、血管造影等基本检查方法以及常用影像诊断相关的解剖内容。通过学习该课程, 学生能够了解临床上常见的影像检查技术并且掌握各种成像技术所显示的人体各部位器官结构的形态及位置关系, 为今后学习影像诊断学和进入临床学习工作打下坚实基础[1]。在影像解剖学教学中, 通常强调利用教科书中的插图、图谱和断层标本来帮助学习, 并以多媒体教学方式为主。但这些资料只能提供二维图像, 一个部位一般由几十幅图像组成, 学生需要很好的空间想象能力, 才能在脑海里建立起某个解剖结构较为完整的空间概念。而老师在教学中也会发现采用二维图像的教学往往很难将某些解剖学结构阐述清楚。与二维图像相比, 三维重建图像具有较好的直观性, 解剖结构的空间位置一目了然, 它既可优化老师的教学过程, 还可帮助学生直观地理解并记忆各种影像解剖结构。随着数字图像技术的不断进步, 目前已有多种图像三维重建的方法, 如激光三维扫描、通过CT、MRI或虚拟人切削断面进行重建等[2]。本文基于3D-DOCTOR软件, 介绍胸部CT图像数据集的三维重建, 并简要阐述其在影像解剖教学中的应用。

1 材料和方法

1.1 材料

选择南通大学附属医院影像科某正常人胸部的CT数据集, 断层扫描层厚为1 mm, 共256层。窗宽800, 窗位-750。

1.2 三维重建方法

运行3D-DOCTOR 4.0 (美国) 软件, 按以下4个主要步骤进行重建。第1步建立3D影像。选择“New Stack”命令, 将连续2D影像图片全选后导入, 将其保存为“chest.Stack”文件。第2步刻度校准。将X、Y像素, Z层厚, Unit的参数分别设置为“0.2”、“0.2”、“3”、“mm”。第3步定义对象并对每个对象建立对象边界。为了区分重建的结构, 红色描绘骨骼, 蓝色描绘肺 (见图1) 。第4步进行表面重建并进行观察和测量。利用软件提供的“Complex Surface”功能, 快速进行表面重建。

1.3 教学应用

将重建后的胸部三维模型应用于我校07级影像专业学生的影像解剖教学, 课后收集教师及学生的学习感受和对方法应用的评价。

2 结果

在计算机辅助下, 完成了正常人胸部CT图像的三维重建, 结果显示重建图像结构逼真, 立体感强, 能准确反映重建结构的解剖形态和毗邻关系, 该图像具有胸廓骨结构、肺组织所有的外形特征。通过选择不同的感兴趣部位, 可以分别显示骨骼、肺等各结构的三维形态, 也可以清楚直观地再现胸廓整体的三维结构 (见图2) 。另外, 通过变化参数的设置, 可以任意角度旋转、切割。从不同角度及解剖面进行观察和测量, 了解各器官的平面和空间的位置关系。

A:胸部骨结构三维重建;B:肺组织三维模型;C:骨结构及肺组织三维模型

3 讨论

通过医学图像的三维重建, 可以很方便地建立医学影像学图像与人体解剖学形态之间的联系, 其应用不仅能提高影像解剖学的教学水平, 同时还在手术规划与模拟、提高诊疗水平和医学研究中发挥着重要作用。临床上普遍利用影像中心的图像工作站, 对患者CT和MRI数据集进行三维重建从而获得人体结构的三维图像。但该方法用于影像解剖学教学的难度较大。本实验采用基于PC机的医学图像三维重建软件3D-DOCTOR 4.0。该软件获得了美国食品与药品管理局 (FDA) 的认证, 具有占用内存小, 重建速度快等优点。对于灰度图像, 利用阈值分割可半自动化地提取目标边缘。在序列二维图像目标勾画的基础上, 用短短的几分钟就可以重建目标的三维表面, 实现立体渲染, 快速而方便地显示3D图像。同时3D-DOCTOR基于向量的编辑工具, 可以方便地完成图像的处理、测量以及定量分析。因此, 利用基于PC机的医学图像三维重建软件, 提高了三维图像重建在影像解剖学教学中应用的可操作性, 能够极大地方便师生双方的教与学过程。

影像解剖学是影像专业学生的必修课, 学习的目的是让学生掌握人体结构的正常表现和病变, 为影像诊断学的学习打下坚实的基础。现代医学影像学的检查手段多样, 图像数据量大, 尤其是MRI能从冠状面、矢状面及横断面呈现, 切面灵活, 这也成为影像解剖学教学的重点和难点。要对各种成像模式的特点与不足有比较深刻的理解, 才能综合同一种病变的不同成像模式的图像表现, 给出正确的影像诊断。这就要求老师在影像解剖学教学时, 应注意对学生的各种影像学检查图像与人体解剖学形态之间空间关系构建能力的训练。传统的影像解剖教学以影像解剖图谱、多媒体教学为主。它能提供学生直观的影像图像, 例如CT、X线、MRI等, 然而该教学方法只能使学生局限在二维的思维空间中, 看到的记住的也只是各种正常组织结构或病变的二维图像, 学生无法直接获得关于目标的完整的三维视见。3D-DOCTOR软件能够将二维图文变为三维动态影像, 变抽象概念为形象生动的动画, 用简单动态变化过程来帮助理解复杂的影像征象, 培养了学生的平面—立体—平面的换位思考, 充分地提高了学生自主学习和探索知识的积极性, 提高了学生的课堂参与意识和主动性。另外, 基于PC机的医学图像三维重建软件的应用, 学生可以不受学习时间和学习进度的限制自主地进行影像解剖学的学习, 从而满足个性化学习的需求。

三维可视化模型在影像解剖学教学中有着明显的优势[3,4,5], 但是它也存在着明显的不足。例如前期工作量巨大;图像分割的工作需要人工干预, 效率较低等。受制于上述原因, 三维重建技术在影像解剖学教学中主要发挥辅助作用, 还不能完全代替人体标本与实物图谱。因此, 在教学工作中应有机地结合传统教学手段与三维重建技术应用, 充分发挥各自的优势, 共同提高影像解剖学课程的教学质量。

参考文献

[1]黎海涛, 王健, 陈思浩.如何提高医学影像学课堂教学质量的体会[J].局解手术学杂志, 2007, 16 (3) :20.[1]LI HT, WANG J, CHEN SH.How to improve the teachingquality of medical imaging[J].Journal of Regional Anatomy andOperative Surgery, 2007, 16 (3) :20.Chinese

[2]陈胜华, 谭建国, 彭田红.三维重建技术在解剖学教学中的应用[J].基础医学教育, 2011, 13 (3) :291-292.[2]CHEN SH, TANG JG, PENG TH.Applying of three dimensionalreconstruction techniques in anatomy teaching[J].Basic MedicalEducation, 2011, 13 (3) :291-292.Chinese

[3]鞠梅.解剖CAI教学存在的问题与对策思考[J].四川解剖学杂志, 2004, 12 (2) :156-157.[3]JU M.The existence question and countermeasure ponder in CAIanatomy teaching[J].Sichuan Journal of Anatomy, 2004, 12 (2) :156-157.Chinese

[4]李鉴轶, 赵为东, 张美超.医学影像资料三维重建及在解剖学教学中的应用[J].解剖学研究, 2007, 29 (2) :154-155.[4]LI JY, ZHAO WD, ZHANG MC.The three-dimensional recon-struction and application of medical imaging in anatomy teaching[J].Anatomy Research, 2007, 29 (2) :154-155.Chinese

[5]胡罢生, 张雪林, 周锋.多层螺旋CT扫描三维重建后逐层显示解剖结构及临床意义[J].中国临床解剖学杂志, 2006, 24 (1) :47-49.[5]HU BS, ZHANG XL, ZHOU F.Clinical significance of MSCTscanning and three-dimensional reconstructing revealing anatomi-cal structures from skin to bone[J].Chinese Journal of Clini-cal Anatomy, 2006, 24 (1) :47-49.Chinese

基于数据集的数据交换技术研究 篇2

(1)以往的研究的重点主要放在数据交换实现的过程,而忽略了数据才是数据交换的真正核心,没有关注数据交换中资料数据的采集、传输、存储、审核、管理、驳回、整理、展示和追踪过程。

(2)以往的数据交换文件仅仅是一个文件,并不能描述数据模型的结构信息,对于用户来说,不可见,所以无法对交换文件进行管理。

所以,本文采用了一种数据集元模型来实现数据库间的数据交换。通过对本课题的研究将数据集的思想引入到数据交换当中,研究数据集的定义、管理、应用等技术,并将数据集应用于数据交换过程的各个环节。设计出一种基于XML的数据映射规则,便于数据模型映射的管理,实现异构数据库间的数据交换。实现异构数据库之间数据的动态迁移,保证数据的一致性。

1基于数据集的数据交换基本框架

在数据交换过程中,每次交换的数据,从开始提取数据,到质量检查、数据审核、数据提交、数据撤销、数据查询等,始终都是一个完整的整体,我们把一次交换的一组数据称为一个数据集。由于数据集具有可定制、易扩展、可撤销的优势,可以便于数据按照某主题进行维护,可以形成树状的、多层次的、多角度的数据集组织结构。

基于数据集的数据交换是指通过建立源头数据库和目标数据库之间的数据模型的映射关系,以数据集为交换单元,根据元数据模型[2],实现从源头数据向目标数据的集成。在数据交换过程中引入了数据集的概念,对数据集提出规范的、统一的描述。分别对结构化数据、半结构化数据和非结构化数据提出数据集的定义和表示方法,满足数据集的一致性和完整性约束。在数据交换的整个生命周期中,便于数据集的管理和使用。基于数据集的数据交换过程见图1。

数据集定义:数据交换以数据集为粒度控制,建立数据集描述元模型。对数据集的名称、相关的数据表及查询条件、相关的文件等信息进行定义。根据主题对数据集进行管理,按照时间、名称、单位等主题查找数据集,查看数据集的内容,检查数据集的完整性、一致性。同时方便数据集的浏览、修改和删除。

数据提取:根据数据集的定义,提取数据源中的数据,同时根据数据质量约束集中的规则对数据集进行质量检查,有质量问题的数据需要整改。由于XML文件的跨平台性,提取的数据集将以XML的方式存在。

数据转换:根据数据映射中生成的映射关系,将提取出的数据集进行数据变换。

数据传输:将经过变换后的数据集提交给数据加载服务器。

数据加载:从图2中可以看出数据加载是数据交换的聚集点,需要提供数据加载调度功能,按照数据优先级顺序进行数据加载。在数据加载前进行数据质量检查,对于质量不满足的数据不能加载到目标数据库中。

数据查询:由于采用了基于数据集的数据交换,在数据提取中以及加载的数据,可以通过查询方式获取数据,便于数据的跟踪和管理。

数据质量控制:数据质量控制贯穿整个数据交换的始终。定义一个质量约束元模型,将各种数据检查条件以规则的形式存储并管理起来,质量控制的可扩展性。具体的规则包括:实体间约束条件,例如外键约束、一致性约束;实体内约束条件,例如标准格式约束、合法值约束、主键约束。

数据撤销:通过审核发现有质量的数据,可以对目标数据库中的数据进行撤销。

2 关键技术

2.1 数据映射元模型

数据映射字典用来在两个结构不同的数据模型之间建立实体以及数据项的对应关系,数据交换系统根据这样的对应关系可以实现源数据集到目标数据集的转换,从而实现了不同数据源的数据迁移。

完成数据映射包括以下内容:

(1) 映射描述规则建立。建立一组数据映射规则,也就是针对实体、数据项等数据集合,给出相应的映射运算操作,在此规则上,设计数据映射元模型。

(2) 检查实体依赖关系。数据模型之间的实体之间,存在数据依赖关系,为保证数据交换的参照完整性。可以根据实际的应用需要,设置是否检查实体间的这种依赖关系。如果要检查依赖关系,那么建立数据模型间的映射关系的时候,当选择一个实体后,通过检查所选实体与其他实体间的依赖关系,会自动将所选实体所依赖的各个实体加入到源实体集合,或者目标实体集合中。实体依赖关系的检查选项,默认情况下是不对依赖关系进行检查。

(3) 建立数据映射关系。映射关系的建立要经过下面几个步骤:选择源实体和目标实体,选择其映射关系类型,建立模型间实体和属性间的数据对应关系[3]。

(4) 保存映射关系。对于数据映射的结果需要设定规范的格式,便于数据交换程序使用。由于数据集采用XML格式的形式,那么映射关系文件使用XSLT格式。

(5) 映射关系的管理域维护。对已存在的映射关系进行更新、删除、查看等操作。

可以从不同的角度描述两个数据模型之间映射关系。以源实体为主体,即一个源实体实例如何对应到目标实体中。图2给出了这种对应关系。

在图2中表达的是一个源实体实例,对应多个目标实体。一般情况下,目标实体中一个属性对应一个源实体属性,我们称源属性为目标属性的值。但并不是所有的目标属性都对应到源属性,这包括自动取值的属性,我们称为自动值属性,如各种ID值。自动值属性是通过软件自动生成的不重复的值,如在Oracle 可以通过sequence产生,在Access中可以自动生成整数值。除自动值属性外,还有目标实体之间的对自动值属性的引用属性也不需要映射到源属性。

一个源实体的实例,可能映射到同一个目标实体的多个实例中,为了区分同一个目标实体的不同实例,需要给每一个实例取一个名字,我们称为别名或变量名或实例名。在源实体的映射中,如果一个目标实体只有一个实例,则不需要为实例另取名字,目标实体名即为实例名。实例名只在一个源实体的映射定义范围内有效。

在映射过程中还需要为每一个目标实体指定一个关键字,一个关键字由一个或多个属性组成,这个关键字用来在目标实体范围内唯一确定一个实例。自动值属性不能做为关键字属性,但对自动值属性进行引用的属性可以做为关键字属性。

在实际应用中,源实体可能并不是对应一个数据表,而是对应多个数据表组成的一个视图或一个查询。当源实体中有自动值属性时,源实体中的自动值属性不能映射到目标实体中。

根据以上映射规则,我们制订了映射字典,用来描述两个模型的映射关系。数据映射字典采用XML格式进行描述[4],其XML模式如图3所示。

映射字典中的XML标记定义如下:

(1) 标记MapDictionary。映射字典的根标记。

(2) 标记Maps。用来表示映射集合。它有一个或多个子标记Map。

(3) 标记Map。描述两个模型间的映射。标记Map有一个属性type,用来描述映射的方式。本项目的映射描述采用”lr”即从左到右方式,表示从源模型到目标模型的映射。其它方式有”rl”表示从右到左,即从目标模型到源模型的映射。

标记Map有三个子标记:Name、TargetModel、Entities,其中Name表示源模型名称,TargetModel表示目标模型的名称,Entities用来表示一组源实体。

(4) 标记Entity。描述一个源实体的映射。这是映射字典中最关键的一个元素。

Entity有一属性:

Name:表示实体的名字。

Entity有4个子标记:Attributes、Sselected、Tselected、TargetEntity,见相应的说明。

(5) 标记Attributes。定义源目标的属性名列表,属性名之间用逗号分开。标记Attributes的值可由映射工具自动生成。

(6) 标记Sselected。当源实体是一个查询时,用一描述从源实体提取实例的查询语句。缺省时,表示select * from 源实体名。

(7) 标记Tselected。表示从目标实体中反向提取源实体实例的查询。不可缺省。标记Tselected的值可由映射工具自动生成。

(8) 标记TargetEntity。表示一个目标实体的实例。标记TargetEntity有5个属性:

name:表示目标实体的实体名。

alias:表示目标实体的实例名。当alias缺省时,实例名与实体名name相同。

cname:表示目标实体的中文名称。

delete="Y":表示删除映射实例集时,是否删除该实例。

update="Y":表示如果按关键字查找,存在与着关键字相同的实例时,是否更新这个已经存在的实例。

标记TargetEntity只能出现在标记Entity下,一个Entity下可以一个或多个TargetEntity标记。

当Entity下有多个TargetEntity标记,而且TargetEntity表示的实例之间有引用关系时,被引用的实例一定要排在引用它的实例之间。实际上,TargetEntity标记之间的排列顺序代表了实例的创建顺序。

(9) 标记Attribute。用来描述一个目标属性。标记Attribute有5个属性:

name:表示目标属性的属性名。

cname:表示目标属性的中文名称。

datatype:表示目标属性的数据类型,其中“C”表示字符类型,“D”表示日期类型,“N”表示数值类型。

value:表示目标属性的值。目标属性的值有三种定义方式

方式1:源属性名,是出现在标记Attributes中的属性列表中一个属性名,表示以该属性的值作为本属性值。

方式2:“*”表示该属性是一个自动值属性。

方式3:“目标实例名.属性名”,表示该属性值是对前面TargetEntity实例中的一个属性值的引用。目标实例名必须是TargetEntity的name或alias,而且在当前源实体范围内是唯一的。

isKey:取值“T”时表示该属性为关键字。缺省或取值不为T,则表示不是关键字。

2.2 数据集元模型

数据集元数据针对某一业务主题定义和组织对应的数据,业务主题可以根据应用主题进行组织,例如可以按照单位组织数据集,还可以按照井的状态,按日期等多种方式组织数据集。可以形成树状的,多层次的、多角度的数据集组织结构。业务主题可以由公共数据主题统一定义和管理,在这个数据主题集合里,各个应用系统依照集合中的各个数据主题来设置与自身数据内容之间的匹配关系,同时在数据集的定义中包含数据的“源头”和“目标”位置等信息。

数据集分为两层次:数据集模板和数据集实例。

数据集模板提供对一个或多个源数据表的数据查询条件,该查询条件可以是一个查询模板或能反映主题含义的查询。例如:在数据集模板中,可以指定对完成井数据表的查询,但不一定指定井号,指出需要指定的井号后才能进行数据查询。数据集模板不指定从哪一个数据库中提取数据,也不指定目标数据库是哪一个。在数据集模板中,还可以指定数据集是结构化数据还是非结构化数据、半结构化数据,非结构化数据是以文件形式提交到数据中心的。

数据集实例则是在数据集模板的基础上,进一步细化查询条件,保证可以准确地获取源数据。在数据集实例化时,根据井号进行查询后得到具体实例集。由于直接得到数据实例集合,因此在数据集实例中,要指定源数据库和目标数据库。

查询条件是由一组查询组成,每一个查询占一行,结尾可以用分号结束。单个查询的格式如下:

查询名[:查询表达式][:关键字表];

查询名必须是映射字典中定义的一个源实体名。

查询表达式是一个SQL语句,可以是对一个或多个源表的查询。

关键字用来对数据集模板进行实例化,关键字的格式为:

key(字段1=关键字中文名,字段2=关键字中文名,..)

指定关键字后,在数据集实例化时,要求用户给出关键字的值。

例如,以下是一个查询:

az01:select jh,jwzb from az01:key(jh:井号);

在实例化的时候,可以用“井号”提示用户输入jh的值,例如:徐深23,然后将此值作为约束加入到查询中,这样实例化后的查询条件变成:

select jh,jwzb from az01 where jh=’ 徐深23’

当查询表达式省略时,默认为:

select * from 查询名;

当出现联合查询时,查询名与表名不同。对单表查询,建议查询名与表名一致。

以下是几个合法的查询例子:

(1) az01:select jh,jwzb from az01:key(jh=井号);

(2) az01::key(jh=井号);

(3) az01;

3 实现示例

基于数据集的数据交换技术已经应用于大庆油田的实际项目建设中。对于勘探开发生产数据在规范的业务流程控制下,将油田业务范围内的五个专业分公司中涉及的静态数据集成到数据中心,建立满足静态基础资料数据采集、传输、存储、审核、管理和应用的静态数据交换平台。

在该交换平台中,采油厂作为数据的需方,主要负责数据的接收、审核和应用,服务公司作为数据的供方,主要负责数据的提交工作,数据交换所涉及的各方在交换平台的支持下各尽其责,保证交换的数据齐全、准确、及时,从而达到数据在油田各个部门实现共享的目的,收到了很好的效果。

4 结束语

基于数据集的数据交换已经在实际中得到了应用。由于这种数据交换能够跟踪和管理数据在各个不同时期的状态,提供了数据在流转过程中查询的效率,但是对于一些特殊的数据项类型[5],如Blob等大字段还需经过一些特殊处理,将映射格式标准化,是今后工作的重点之一。

摘要:在数据交换技术的发展中,数据交换技术的实现往往作为研究的重点,而忽略了数据交换过程中数据才是核心。在数据交换过程中数据的生命周期的研究成为重点。因此,介绍了一种以数据集为中心的数据交换模式,采用元数据来记录数据信息在数据交换的整个生命周期中的流转状态。分析了数据交换技术,其关键是如何保持数据的完整性和一致性。设计了基于XML中间件的数据映射规则,满足源数据和目标数据的完整性。将数据集引入到数据交换中。

关键词:数据集,数据交换,元数据

参考文献

[1]靳强勇,李冠宁,张俊.异构数据集成技术的发展和现状.计算机工程与应用,2002;11:112—114

[2]葛科,周伯生,周建国.基于元模型的软件开发与管理集成研究.计算机工程与应用,2001;12:27—30

[3]王守信.基于模型驱动的数据映射技术研究.大庆:大庆石油学院,2005

[4]文必龙,王守信,文义红,等.一个基于XML Schema的数据交换模型.大庆石油学院学报,2004;2:65—68

三维数据集 篇3

1 基于三维配准的口腔三维测量数据融合技术

本文给出的基于三维配准的口腔三维测量数据融合技术, 以曲面曲率为依据作为ICP抽样选点的策略, 根据计算所得的三维曲面曲率来提取三维特征点[8]。本文方法所用的三维特征点是三维数据上局部区域内所有三维点构成的曲面上曲率较大的点, 直观来说就是由口腔三维点云的角点和边界上的点组成的特征点。提取这些点需要计算各三维点处的曲面曲率, 其中曲率的求解需要计算曲面法向量。我们运用协方差分析估计曲面法向量, 根据曲面的法向量提取三维特征点。

将基于三维曲面曲率计算提取的三维特征点, 将其应用于口腔数据的ICP配准流程中, 口腔数据的具体拼接流程如文献[9]所描述。

2 实验结果与分析

我们以石膏牙模为例, 在口内测量环境下对模型进行测量, 从不同视角不同位置获取三维点云数据。同时具有邻近的部分牙齿, 整体约两颗牙齿的测量范围, 获得如图1 (a) 、图1 (b) 所示的两组相邻的部分点云数据测量结果。由于模仿测量视场大小受限, 不同视角下邻近的部分牙齿存在相互不可见部分。图1 (a) 、图1 (b) 邻近的部分牙齿的三维描述具有一定的公共部分, 并且空间上不在同一坐标系。利用本文给出的方法对数据进行拼接融合, 得到如图1 (c) 的拼接结果, 且两视角的拼接精度小于0.005mm。图1 (d) 所示为一、二视角的拼接融合结果。利用本文方法对部分口腔扫描数据依次进行拼接融合, 就得到如图1 (e) 所示, 得到的完整下部口腔待修复拼接融合结果。

3 小结

由于口腔测量空间有限, 而且现有口内微型测量系统视场狭小, 单视角视场内只有平均两颗牙齿的测量范围, 本文给出基于三维配准的口腔三维测量数据融合技术, 实现被测牙齿的大范围甚至全周覆盖。本文以石膏牙模为对象, 验证了提出方法的有效性。口腔三维测量数据融合为口腔数据进一步数字化修复提供了基础。

参考文献

[1]崔海华.微小型数字化口腔测量关键技术研究及应用[D].南京:南京航空航天大学, 2012.

[2]张长东.口腔修复嵌体造型关键技术研究[D].南京:南京航空航天大学, 2013.

[3]Pages J, Salvi J, Garcia R, et al.Overview of coded light projection techniques for automatic 3D profiling[C]//Proceedings-IEEE International Conference on Robotics and Automation, 2003:133-138.

[4]Huang P S, Zhang C, Chiang F P.High-speed 3-D shape measurement based on digital fringe projection[J].Optical Engineering, 2003, 42 (1) :163-168.

[5]Tsai M J, Hung C C.Development of a high-precision surface metrology system using structured light projection[J].Measurement, 2005, 38 (3) :236-247.

[6]高凤娇, 宋昌江.基于ICP算法的人体三维点云数据的拼接技术[J].自动化技术与应用, 2014, 33 (8) :39-42.

[7]解则晓, 徐尚.三维点云数据拼接中ICP及其改进算法综述[J].中国海洋大学学报 (自然科学版) , 2010, 40 (1) :99-103.

[8]郭琰.面向三维变化检测的遥感图像立体匹配及三维配准技术研究[D].哈尔滨:哈尔滨工业大学, 2011.

三维数据集 篇4

1、地质建模数据数字化方法

地质建模数据在计算机中主要通过图形数据和属性数据来进行表达, 因此地质建模数据的数字化主要体现为属性数据录入、地质图件的数字化和地质遥感影像数据的提取三个方面。

地质遥感数据是结合现代遥感技术来分析地质规律, 从而获取地质数据。从遥感影像中提取有用的数据, 传统方法可以通过计算机数据处理、人工目视判读和两者结合来实现, 伴随人工智能和一些准则的确立, 运用正向、反向、精确或不精确的推理方式进行解析从而做出决策, 使得自动判译遥感图像的专家系统成为可能, 因此专家系统的使用将成为实现提取矿山遥感数据的重要方法之一。地质图件在计算机中有矢量和栅格两种存储方式, 由于矢量结构比栅格结构更具有数据存储量少、数据严密、精度高、易于表达拓扑关系和输出图形美观等特点, 所以对纸质的二维地质图件往往要经过数字化后将其存储在计算机中。对数据量较小且精度较高的图形, 也可以采用键盘的输入方式, 将数据存储到一定格式的文件中, 然后采用Arcgis、CAD等软件或编程的方式将其转化为图形;对数据量较大的图形, 可选用手扶跟踪数字化仪或扫描的方法来进行矢量化, 但由于手扶跟踪数字化方法带来的工作量非常繁重, 因此矿山的二维纸质图件一般采用扫描矢量化的方法进行数字化。

2、地质建模数据的来源

三维地质建模流程依赖于对大量有价值地质资料的收集, 资料的充分是搭建地质模型的重要条件。经过对矿区现有电子资料和纸质资料的搜集和整理, 不难发现, 此矿区自五十年代以来, 有许多地质单位相继在本区开展过地质勘查工作, 搜集的纸介质和电子资料具体分为: (1) 普查地质报告; (2) 详查地质报告; (3) 储量核实报告; (4) 潜力评价报告; (5) 勘查地质报告; (6) 生产探矿资料; (7) 涉及物探、化探、区域及外围等报告等。

由于无法直接观测地质体, 往往获取的样本数据是不充分、零星和随机的;加上地质形态的复杂性导致构建准确的地质建模难度很大。为确保三维地质模型的准确性, 本次着重利用地质图件来提取多源地质数据, 从而更多的原始数据充实三维地质建模。

在三维地质建模中, 地质图件是非常重要的成果资源, 它反映了地质人员对一个地区地质条件和地质历史发展的认识, 通过对这些地质图件数据的提取, 可获取三维空间地质数据, 从而为三维地质建模准备更多的原始数据。

本工作主要采用三种地质图件:1) 平面地质图, 平面地质图是充分反映矿区地貌特征、地理位置和交通情况等图件, 是进行矿产开采的重要的参考资料。通过对平面地质图的数据提取 (如X坐标、Y坐标和Z坐标等) , 可将二维图像中的点坐标转化为三维坐标, 进而进行坡度、坡向和高程等分析, 因此可为地面工程的布置、矿井下的设计和矿产预测等提供依据。2) 地质剖面图, 地质剖面图是对地质对象 (地层、岩体和断层等) 在垂直方向进行描述的图件, 也是研究地质对象走向重要图件之一。将地质剖面图和反映地质对象在水平方向变化的图件 (如平面地质图和中段地质平面图等) 配合使用, 可获得地质对象在三维空间的分布情况。3) 中段地质平面图, 中段地质平面图是将同一中段标高上的研究对象 (地质、矿产现象) , 结合一定算法投影到平面上而编制的地质图件。将不同标高处的研究对象分别制作中段地质平面图, 可为研究垂直及水平方向的地质体变化情况提供资料依据, 因此中段地质平面图是进行深部找矿的重要图件。

3、勘探工程资料的数字化

三维地质建模数据主要来源于勘探工程数据、勘探线数据 (虚拟探槽数据) 和地面高程数据。

勘探工程数据是通过勘探线位置数据表进行绘制;地质勘探工程资料进行数字化, 包括了提取样品化验数据、孔测斜数据、地质编录数据和开孔数据等数据, 按照相关纸介质或电子表格数字化可直接获得数据;地表建模主要通过提取地形地质图所获得, 对数据提取的传统方法包括自动矢量化和手工矢量化, 一方面地形地质图往往无法满足自动矢量化要求清晰度高、二值化等特点, 由此导致矢量化后的线条连续性差、光滑度不够;另一方面由于地形地质图面积较大, 传统手工矢量化无法达到高效率的标准, 因而这两种方法都达不到本工作的要求。为有效提高了数字化效率, 进行了基于Auto CAD的二次开发实现地质图矢量化功能, 这种方法不仅可将矢量化后的文件以.DXF进行存储, 而这种格式符合大多数GIS软件图形数据转化功能的要求, 而且这种方法能够生成符合要求的矿图图例符号。为进一步提高矢量化的速度, 本阶段在满足了工作精度要求的前提, 在Auto CAD2006基础上进行二次开发, 并将提取的数据保存到相应的文件中。

(1) 三维地质建模数据库。 (2) 三维地质建模数据模型, 利用对矿床资料的收集, 对主要地质对象分别建模, 包括:断层模型、地层模型、地质界面模型和矿体模型等。这些模型的构成数据都可以用二维表格进行表示, 断层建模数据二维表包括X坐标、Y坐标、Z坐标和点名称 (W_Name) 等;地层建模数据包括点关系表和三角网关系表, 其中点关系表包括X坐标、Y坐标、Z坐标和点名称 (W_Name) 等, 三角网关系表包括三角形三顶点ID (PID1、PID2和PID3) 、颜色属性 (COLOUR) 等;由于地质界面模型和矿体模型的数据模型构成方式和断层建模数据类似, 就不再进行描述。 (3) 三维地质建模数据库的建立, 矿床三维地质建模对象主要包括地层、矿体、地质界面、断层和块体, 由于所要求的存储空间不大, 考虑课题进展的便捷性, 本课题采用的数据库平台为Access2007。由于地质建模资料表格的数据结构是线性的, 它们可一对一地直接转换为Access2007中关系模型的逻辑结构即二维关系表来表示 (称为数据表) ;也可直接在软件中 (如Datamine、Vulcan等) 对地质对象圈定建模, 然后将数据导入Access2007中。

参考文献

三维数据集 篇5

产品的装配工作在产品的开发过程中占有重要地位, 装配技术将直接影响产品性能、研制周期、生产成本等, 正引起越来越多的企业的重视。目前, 在产品的开发过程中, 设计阶段基本上实现了利用CAD系统设计出产品的模型, 但是在装配领域仍然主要以二维装配工艺文件和图纸为主。基于此, 研究如何采用全三维模型来完成从产品设计到最后的装配全过程成为热点, MBD技术在这种背景下应运而生。MBD (Model Based Definition基于模型的定义) 技术是一个用集成的三维实体模型来完整表达产品定义信息的方法体[2], 它将产品的所有信息都通过三维模型表现出来, 从而使MBD成为产品设计、制造、装配等的唯一数据来源, 它的特点是企业将不再发放二维图纸, 所有的数据都来自于三维模型, 改变了以往的二维图纸定义尺寸、公差配合等, 而三维几何模型为辅助参考的产品生产模式, 是制造业未来的发展趋势。

MBD技术最早应用于航空制造业, 美国波音公司在研制波音787、洛克马丁公司在研制JSF战斗机X-35过程中都采用了MBD技术[3], 缩短了研制周期67%, 降低了生产成本50%。目前, 关于MBD的数据集, 有很多不同的概念。在国外, 波音公司基于自己的产品建立一套飞机的MBD数据集的规范[5]。而在国内, 随着国产大飞机项目的展开, 越来越多的人开始关注MBD数据集的概念以及应用。卢鹄、韩爽等提出了产品定义数据集的概念, 并且结合MBD给出了产品模型的数据结构[6]。这些研究重点关注了零件的MBD理念和相应的组成, 以及将MBD技术应用到产品的设计和制造领域。冯廷廷、李汝鹏等人利用Delmia软件中的DPE模块设计出用于飞机装配的工艺模版[7];这些研究都试图将MBD应用于装配领域, 但没有给出装配MBD数据集的具体组成, 无法明确支持M B D技术在装配领域的应用。本文针对上述情况, 通过定义了一个完整的装配MBD数据集的概念, 给出了该数据集的详细组成, 设计了相应的表达方式并给出了具体的应用过程, 结合一个示例产品将装配数据集应用到产品的装配过程中。

1 装配MBD数据集的建立

1.1 装配MBD数据集的概念

定义装配MBD数据集:以MBD概念和技术为依托, 在产品装配设计阶段、装配工艺规划阶段和现场装配指导阶段等过程中用到的所有信息的集合。

与传统的装配建模相比, 产品的装配数据集既有相同点又有不同点:二者都涉及到产品的装配信息如何在计算机中表达, 但是传统的装配建模更加关注的是产品本身结构信息的表达, 更多的是面向装配工艺规划和仿真目的;而装配数据集则是为装配全过程服务, 作为唯一的数据源来规范装配相关的活动, 最后在实物零件的装配过程中得到实例化和应用。

装配MBD数据集涵盖的装配活动过程包括:

在装配设计阶段, 设计人员根据产品功能需求设计产品的功能结构, 根据功能结构结合具体的产品几何和装配约束关系形成EBOM (Engineering Bill Of Material工程物料清单) ;

在装配工艺设计阶段, 工艺人员在已经有的几何结构的基础上, 根据产品的装配要求, 调整零部件的层次结构, 并设计产品的装配序列、装配路径等信息;

在现场装配指导阶段, 采用可视化的方法将这些信息显示到三维场景中, 帮助工人了解产品的结构与装配关系, 对装配关键要求给与提示, 通过三维装配动画, 理解整个产品的装配序列、装配路径以及具体的装配过程, 更好更快地完成产品装配, 提高装配效率。

1.2 装配MBD数据集的构成

装配数据集包含信息众多, 本文借鉴Delmia中PPR (Process-Product-Resource) 的组织方式, 将这些信息分为三类:产品信息 (Product信息) 、过程信息 (Process信息) 、资源信息 (Resource信息) 。装配数据集的构成如图1所示。

Product信息主要描述产品本身及其组成零部件的信息。装配结构信息包含整个产品的三维模型以及零件与零件之间的关系信息;装配关系信息描述了产品中零件与零件之间的配合关系;而管理信息提供了管理产品所需要的信息。

Process信息描述的是产品具体装配过程中用到的信息。装配规划信息描述的是整个产品的装配序列和装配路径, 过程信息主要是在装配过程中用到的详细装配步骤信息;而Process信息下面包含的产品信息指的是参与仿真的零件或者子装配体, 这些信息是由Product来提供的, 同理, Process用到资源信息也是有Resource提供的。

Resource信息描述的是在装配过程中使用到的工艺装备等资源信息。工艺装备是指在装配过程中为了完成一定的工艺而采用的专门的设备, 这些设备往往体积庞大、操作复杂, 由专门的人员来使用;工具是指在装配过程中用到的器具, 它们种类繁多, 使用较为方便, 不需要专门的人员;地面设备在装配中起着运输装配零部件、调整零部件的姿态等作用;实验设备用来检测装配过程中产品的装配是否满足相应的技术标准。辅料信息是指在装配过程中起到辅助作用的物料的信息, 辅料的种类因具体的产品和装配要求的不同而不同, 通常与产品没有很大关系。如常见的清洗剂 (煤油、酒精) 、粘合剂 (凡士林) 、纱布等等。

不同的产品, 根据具体装配要求的不同, 其装配数据集中具体的内容也会有所不同, 用户可以根据实际需要进行适当选择。

1.3 装配MBD数据集的建立

根据图1所示的数据集构成, 由工艺人员建立装配数据集模版, 该模版提供友好的输入界面, 满足实际装配MBD数据集的输入要求, 保证用户能够正确输入相关信息, 这样就可以方便用户完成信息的输入工作。模板建立以后, 需要将所用到的信息填充完整以后才能实现基于MBD的装配数据集, 所以需要根据装配数据集信息的不同来源将所用到的信息收集完整。

装配MBD数据集是在产品开发过程中装配相关活动中逐步建立并完善的。装配MBD中数据的来源分为以下四大部分, 如图2所示。

在图2中, CAD系统数据库是装配数据集的一个重要来源。用户在CAD系统利用约束将零件组成子装配体, 进而组成最终的产品, 这些信息都存储在CAD系统的数据库中。从CAD系统中可以得到零件的几何实体信息、位姿信息、层次结构信息和约束信息等。而装配仿真系统数据库可以提供过程信息和资源信息, 用户可以通过装配规划与仿真软件来对装配过程和资源进行规划, 得到过程信息 (如装配路径信息、装配序列信息等) 和资源信息 (如使用工装的名称、数量等) , 然后将这些信息输入到装配MBD数据集中。除了上述的两个系统数据库以外, 用户还可以编辑产品设计文档和产品仿真文档, 提供数据库没有的信息给装配数据集, 如产品的管理信息等。

2 基于MBD的装配数据集表达

装配MBD数据集作为装配相关信息的唯一数据源, 在产品开发过程 (装配设计、装配规划、装配指导) 中不断实例化, 形成一个产品完整的装配数据集。为满足在不同阶段、不同角色人员对装配MBD数据集的查看, 需要提供与数据集内信息吻合的具体表现形式。如可以将部分信息直接显示在三维模型上, 使三维模型不仅仅有装配相关的几何类信息, 更添加了文字、符号等信息 (如配合尺寸、重要基础面、装配要求等) 。因为产品都是由单个零件构成的, 本文以三维零件模型为基础, 以零件为载体, 讨论装配数据集中相关信息在零件模型上的两种表达方式, 即面向几何类信息的三维标注表达和面向属性类信息的三维注释表达。

2.1 面向几何类信息的三维标注表达

在零件的MBD信息中, 有一类信息与零件的几何要素联系紧密:如零件的装配基准面、装配公差、配合尺寸等。这些信息都是和特定的点、线、面密切相关, 并且在装配过程中起着重要的定位基础的作用, 所以在表现这些信息的时候, 可以借鉴三维标注的方法, 首先确定相关的几何要素, 然后在几何要素上添加箭头, 引出相应的标注, 将这些要素的作用以文字或者符号的方式进行表达。为了方便用户的操作, 已经标注的信息可以对其进行移动、修改和删除操作, 也可以将标注好的信息进行隐藏操作, 在需要的时候再显示。

2.2 面向属性类信息的三维注释表达

在零件信息里面还有一类与几何要素并没有关系的属性类信息, 如零件装配过程信息、装配技术要求等, 这些信息和点、线、面等信息没有具体的联系。针对这类信息, 可以采用注释的方式用文字在三维场景中进行表达, 使用户在观看三维场景的同时就可以了解到这类信息;不仅如此, 如装配准备信息等也可以采用注释的方法进行表示, 这样就能够更加充分地表达零件装配MBD信息。此外, 针对一些没有或者很难使用三维模型表示的辅料信息, 如填料、隔离物等, 可以在这些物品的安装位置标注相应的基准面, 然后采用注释的表达方式, 用文字对这些零件的装配做出详细说明, 这样就可以保证用户能够正确完成装配工作。

3 装配数据集的应用示例

本文以VC6.0作为开发环境, 利用HOOPS图形软件开发包, 以提出的装配MBD数据集为基础, 实现了装配结构调整、装配工艺规划和装配工艺发布的三维集成环境, 在此过程中, 装配MBD数据集的应用体现在以下三个方面。

3.1 零件装配数据集信息的浏览

建立了零件的装配数据集以后, 所有关于产品装配过程所需要的信息都存放在PPR结构里面, 当用户查看的时候, 只需要选择相应的零件即可查看所需信息是否完整、正确 (如图3所示) 。系统会根据信息类型的不同, 将这些信息以合适的方式显示出来, 这样用户可以查看校核信息, 同时, 对于缺失和错误的信息, 工艺人员可以进行相应地补充和修改, 以保证后续的装配工作的顺利进行。

在图3中, 用户可以观看到零件的装配MBD数据集表达在场景中, 零件的名字、配合尺寸、重要的基础面等都采用标注的方式进行了表达, 而一些技术要求则采用注释的方法在场景中显示出, 这样用户对于整个零件的装配过程就会有更加全面的认识。

3.2 二维装配工艺卡片生成

工艺卡片在实际的装配过程中有着广泛的应用。装配MBD数据集建立好以后, 用户可以根据生产的实际需要, 在不具备在现场使用终端设备时, 可以将MBD的信息以传统的工艺卡片形式表现出来, 由系统生成工艺卡片, 这样现场工人仍然可以根据生成的二维装配工艺卡片信息完成产品的装配工作。关于二维工艺卡片的生成, 已经有多篇文献研究过[8,9], 本文在这里就不再详加论述了。

3.3 现场装配可视化引导

现场可视化是指将已经建立好的装配MBD信息以数字量、多媒体的形式传递到装配车间现场, 然后以合适的方式展现出来, 帮助现场工人更好的理解产品的装配过程、装配要点等。

在图4中, PPR结构包含了整个产品的Produc信息、Process信息和Resource信息, 以树状结构显示, 方便用户观察整个产品的层次结构和相应的步骤信息;视图区域显示产品的三维几何结构、相应的过程信息等, 在装配动画的播放过程中, 这些信息将根据装配的具体要求而时时更新;在视图的右方是操作区域和信息显示区域, 操作区域显示的按钮可以对整个场景进行操作;信息显示可以将MBD信息以表格的形式显现出来, 方便用户的查看。

在图4中, 用户可以通过PPR树上面的Process中零部件的先后顺序知道产品的装配序列信息, 装配仿真信息也存储在Process中, 当用户播放这些仿真信息时, 系统会自动绘制出产品的装配路径, 这样就可以按照动画的演示快速了解装配工作的要点;同时, 产品装配中的配合尺寸、重要的装配参考基准等信息也会通过标注的方式在三维场景中表现出来;产品的其他的装配信息采用文字描述的方式进行表达, 这些文字既可以直接显示在三维场景中, 也可以显示在二维的表格中, 使用户在现场引导的过程中有多种选择方式。

4 结论

MBD技术是未来制造业的发展趋势, 将从技术和经济方面给企业带来巨大的收益, 为企业可持续发展和提高竞争力提供保障。本文立足于MBD数据集, 介绍了MBD装配数据集的概念, 给出了MBD数据集的组成, 围绕着MBD装配数据集的表达和应用进行了详细阐述, 同时结合具体的机械产品, 研究了装配MBD数据集的实际应用。装配MBD数据集的应用使用户了解装配过程中用到的信息和具体的装配步骤, 提高了工人对装配的理解程度, 减少了因理解错误而导致的返工率。

摘要:基于模型的定义 (MBD) 技术使三维模型成为产品设计制造中的唯一依据。为支持和规范产品数据在装配领域中的应用, 本文提出了装配MBD数据集的概念。深入分析了装配MBD数据集中信息的构成及分类, 给出了这些信息的来源;提出并研究了面向几何类装配信息的三维标注表达和面向属性类装配信息的三维注释表达两种可视化技术, 并利用HOOPS图形包开发了示例应用系统, 验证了装配MBD数据集的有效性和实用性。

关键词:基于模型的定义,装配数据集,信息可视化

参考文献

[1]孙刚, 万毕乐, 等.基于三维模型的卫星装配工艺设计与应用技术[J].计算机集成制造系统, 2011, 7 (11) :2343-2350.

[2]周秋忠, 樊庆春.MBD支持的产品协同设计及协同信息表达[J].制造业自动化, 2010 (3) :55-60.

[3]李薇.数字化技术在飞机装配中的应用研究[J].航空制造技术, 2004 (8) :24-29.

[4]P.Selvaraj, P.radhakrishnan, M.Adithan, An integrated approach to design for manufacturing and assembly based on reduction of product development time and cost[J].International Journal of Advanced Manufacturing Technology, 2009 (42) :13–29.

[5]张魁, 范玉青, 等.基于MBD制造体系的装配工艺数据集成[J].制造业信息化, 2009 (1) :55-58.

[6]卢鹄, 韩爽, 等.基于模型的数字化定义技术[J].航空制造技术, 2008 (3) :78-81.

[7]冯廷廷, 李汝鹏, 等.基于MBD的飞机装配工艺模型设计[J].航空制造技术, 2010 (24) :95-98.

[8]杜春涛, 高洪深.CAPP系统中工艺卡片生成过程的研究[J].现代制造工程, 2003 (6) :41-43.

ASP中的记录集数据显示技术 篇6

ASP可以使用ADO组件来访问数据库,通过SQL语言实现对数据库的查询、更新、添加、删除等操作,非常方便地访问和操纵数据库,而ADO组件中,记录集对象Recordset是功能最强大也最全面的对象,是在ASP数据库应用中使用最多,也是最重要的一个ADO对象。使用SQL语言查询数据库中的数据,查询结果以记录集的形式保存在Recordset对象中,如果方便快捷地将Recordse对象中的记录集数据显示在网页中,是ASP数据库应用技术中的重要课题。

以下介绍的几种记录集数据显示技术,都是在ASP数据库开发中非常实用的技术,充分理解和掌握这些技术,将有助于提高ASP数据库应用程序的开发效率。

1 数据库连接操作的封装函数

在ASP中,必须先创建ADO连接对象Connection,使用连接对象建立与数据库的连接,然后才能查询和操纵数据库。

要建立数据库连接,必须使用一个特定的、复杂的连接字符串,该字串中要明确指定该数据库的OLEDB提供者,及其一些连接参数。通过使用OLEDB提供者,ASP有能力与各种各样的数据库建立连接,简单的如Text文档、Excel工作薄等,常见的如Access数据库、Foxpro数据库等,高级的如MS SQL Server、Oracle等企业级的网络数据库,这充分体现出了ADO技术的通用性。

但是,在ASP小型数据库应用开发中,通常使用Access数据库或MS SQL Server数据库,其他各类的数据库很少用到,因此,我们可以将针对这两种数据库的连接操作设计封装成函数,避免书写复杂的连接字符串。

'SqlServerConn过程:生成连接MS SQL Server数据库的ADO连接对象,其中的五个参数依次是:

1.1 原理讲解

ByRef型参数,即引用传递参数,调用时相对应的实参必须是变量参数,过程代码中一切针对引用参数的修改,都将回馈到相对应的实参变量中;在过程内部,实际上是根据传递给过程的参数拼组出相应的数据库连接字串,然后创建相应的ADO连接对象,生成的连接对象将通过引用参数objConn回馈给过程调用者。

从下面的运用实例可以看出,使用封装函数的技术,极大地简化了生成数据库连接对象的过程。

1.2 运用实例

1)网站目录/db下保存有Access数据库文档example.mdb,打开该文档时要求输入密码:abcd

Dim MyDBConn

'下面的过程调用,将根据指定的参数生成的数据库连接对象,连接对象将保存在变量MyDBConn中

MdbConn My DBConn,"/db/example.mdb","abcd"

2)在MS SQL Server服务器主机DBSVR上提供了数据库MYSQLDB,登录帐号:sa密码:123可以登录MS SQL Server服务器主机,并拥有使用数据库MYSQLDB的权限

Dim MySQLConn

'下面的过程调用,将根据指定的参数生成的数据库连接对象,连接对象将保存在变量MySQLConn中

SqlServerConn MySQLConn,"DBSVR","MYSQLDB","sa","123"

2 将记录集数据显示为一张表格

调用下面的ShowTable过程,就可以快速将记录集数据显示为一张表格。

ShowTable过程中,objRS参数用于指定要显示的记录集对象;该过程能自动探查记录集的每一个字段的名称,并将字段名称逐个显示在表格的表头行中;表头行以下开始显示记录集中的数据内容,自当前记录行开始,每一条记录的数据内容显示为表格中的一行。

2.1 原理讲解

ShowTable过程运用记录集对象的Fields集合属性的功能特点,实现了自动探查记录集中每个字段有名称的功能,使之成为通用的记录集显示工具,不过,ShowTable过程的数据显示能力却非常单调,只能将记录集数据显示成一个简单的数据表格。

另外必须注意的是,调用ShowTable过程显示某个记录集数据之后,这个记录集的当前记录行游标将位于Eof位置,如果后面还需要使用该记录集,必须要执行MoveFirst方法将游标位置恢复到记录集最前方开始行。

1)objRS.Fields.Count:Fields是记录集对象中的一个集合属性,其中包含了记录集所有字段的信息,Count是所有集合的公共属性,值为集合中元素的个数,所以,objRS.Fields.Count就是报告记录集objRS中字段的个数。

2)objRS(k):objRS(k)等同于objRS(k).Fields.Item(k).value,表示当前记录行中索引k对应的那个字段所保存的数据值,其中索引k即可以是字段的序号(规定从0开始),也可以直接使用字段名称作为索引。

3)objRS(k).Name:objRS(k).Name等同于objRS(k).Fields.Item(k).Name,表示记录集中索引k对应的那个字段的名称。

2.2 使用范例:

Dim MyDBConn,MyRS

'下面的过程调用,将根据指定的参数生成的数据库连接对象,连接对象将保存在变量MyDBConn中

MdbConn MyDBConn,"/db/example.mdb","abcd"

'下面的记录集对象MyRS中,将通过SQL查询获得数据库中的table表的全部数据

Set MyRS=MyDBConn.Execute("SELECT*from table")

'下面的过程调用将MyRS对象中保存的数据表显示为一个简单的网页数据表格

ShowTable MyRS

3 将记录集数据显示为多行多列的标签阵列

除了将记录集显示为纵横表格的形式,还有另外一种记录集显示方式,称为“标签”。

例如,通常将通讯录信息显示为“标签”的形态如图1所示:

….

显然,记录集中每条记录的数据依照一定格式汇集在一个标签中,记录集中有多少条记录,就将显示多少个标签。

不过,如果一个标签的面积不大(比如图2的电话联系标签),就常常希望可以将多个小标签并列显示,以充分利用网页的显示宽度。这样,就要求将记录集数据显示为多行多列的标签阵列的形态。

要实现这种多行多列的标签阵列,使用表格并不方便,正确的方法是使用CSS样式控制结合DIV标签,具体代码如下:

3.1 原理讲解

这一个数据显示技术范例的技术重点并不在ASP代码上,而是在DIV标签结合CSS技术的应用上。最关键的技术部分在于网页中的CSS定义部分。

这段代码定义了一个样式类.divlist,指定样式规格为:

向左浮动对齐、高度60像素、宽度240像素、2像素黑色边框

而在ASP代码部分,仍然是通过简单的Do..Loop循环将记录集中的所有记录逐行输出为一个一个的DIV标签,DIV标签中包含的内容正是一个网页标签中要显示的内容。请注意,每个DIV标签中都包含了class="divlist"的参数,表明这个DIV标签将套用CSS样式类divlist,这样,每个标签都是高60、宽240,有黑色边框线的矩形框,这些矩形框从左向右自然地一个接一个并列排布,直到超出网页右边线,再接续到下一行排布,于是就非常自然地产生出了多行多列的标签阵列的效果。

4 使用模板技术灵活定制记录集数据显示格式

前面介绍的ShowTable过程,只能将记录集显示为简单的数据表格,而传统的基于Do…Loop循环的方法虽然可以构建灵活多变的数据显示格式,但程序代码冗长繁琐。

下面介绍的方法,构造了一个“重复处理机制”,可以将记录集中一行记录的数据代换到一个“模板”字串中,生成这一行数据的相应显示内容,并且在能够自动重复生成下一行记录的显示内容,直到完成指定行数的内容生成任务,或记录集游标到达记录集的EOF处。

以上Repeater过程用来自动生成数据表显示代码,其中strStyle参数是一行内容的显示代码模板。例如:模板"{$username}{$pwd}"可表示生成一行表格行的代码。模板中的{$字段名}用来指代生成代码中相应字段数据的填充位置。intCount参数表示要生成的显示代码的行数,显示数据从objRS参数指定的记录集的当前行开始。如果intCount为负数,则表示将记录集当前行开始的所有记录行都生成到显示代码中。与ShowTable过程相比,Repeater过程有非常强大的显示格式的控制能力,下面通过三个范例来说明Repeater过程的使用方法:

例1:用记录集数据填充表单中的下拉列表

假设记录集内容是某单位各个部门的名称与代号的对照表,另外假定,数据库连接对象已经创建并保存在对象变量Conn中。

例2:用记录集数据生成一个网页图库

假设记录集内容是某图库的索引信息,包含图像地址和图像说明两部分信息,另外假定,数据库连接对象已经创建并保存在对象变量Conn中。

例3:快速构建传统的表格式通讯录

假设记录集是一个通讯录,含有姓名、电话、地址三个字段,通讯录表格只显示最开始的15个联系人的通讯资料。

….'省略创建Conn连接对象的代码

5 小结

以上讲述的ASP中的记录集数据显示技术,其中介绍的几个函数和过程也可以汇集成一个具有实用价值的函数库。这个小小的函数库将ADO记录集对象在ASP中的经典用法,以封装函数的方式表述了其中的技术思想,函数库中的每个函数和过程都进行了详细的原理解释、功能说明和格式用法说明,可以对ASP数据库编程起到良好地指导作用。

ADO组件是ASP数据库编程的重要工具,这里限于篇幅仅介绍了其中的记录集对象,但上面提出的构建实用函数库的设想是很有意义和价值的,如果能在这种思路指导下编写了一个小型的函数库,功能覆盖连接对象、记录集对象、命令对象和参数对象,并包含一些相关的实用函数和过程,那么这个函数库将会在教学和技术开发中发挥出很好的作用。

摘要:ASP可以使用ADO组件来访问数据库,通过SQL语言实现对数据库的查询、更新、添加、删除等操作,非常方便地访问和操纵数据库,而ADO组件中,记录集对象Recordset是功能最强大也最全面的对象,是在ASP数据库应用中使用最多,也是最重要的一个ADO对象。使用SQL语言查询数据库中的数据,查询结果以记录集的形式保存在Recordset对象中,如何方便快捷地将Recordset对象中的记录集数据显示在网页中,是ASP数据库应用技术中的重要课题。

关键词:数据库,ADO,记录集

参考文献

[1]许新华,谌颃,胡昌杰.ASP动态网页设计实用案例教程[M].北京:中国水利水电出版社,2007.

基于二维图形数据的三维模型重建 篇7

三维空间数据的快速获取与重建是制约3D GIS发展的瓶颈问题之一。特别是随3D GIS不断成熟及应用的深入, 许多领域 (如数字城市、房产管理) 因昂贵的三维数据获取方式而发展滞慢, 如何快速、经济的重建是实现3D GIS在各领域深入应用的关键。城市中的建筑物多为规则体, 并有对应的二维图形数据 (楼层平面图) 和高度信息, 可采用基于二维图形法的三维重建技术来获取建筑物房产单元的三维模型, 即以二维图形为底面, 按照给定高度, 自下向上“拔高”生成体模型。基于二维图形法的三维重建技术具有成本低、自动化程度高等优点。本文将研究基于二维图形法的房产单元重建, 为三维房产空间数据获取、模型构建提供快速、经济的手段。

2 二维数据预处理

以DXF格式建筑物的竣工测量图和各楼层平面结构图为基础, 生成三维数据。其中竣工测量图中的建筑物基底图 (建筑物首层) 的各拐角点坐标及其标高提供了三维数据生成所需的坐标和高程值。楼层平面结构图则提供了各楼层的结构, 依照这些楼层平面结构图可以生成每一层体的三维数据。因楼层平面结构图是示意图, 没有坐标, 需要对它们进行预处理。步骤如下:

2.1 同名控制点的选取

为了使校正后的各层平面图与基底图一致, 每一栋楼至少要选取四个同名控制点, 这四个点从基底图出发, 垂直向上延伸, 与每一个楼层平面结构图相交, 相交后产生的每一组交点即是该楼层平面结构图相对于基底图的同名控制点。

2.2 格式转换

利用ArcInfo的命令将dxf格式的楼层平面结构图转换为Coverage格式, 并剔除因格式转换而导致的数据问题, 如数据丢失、增多等, 生成规范化的楼层平面结构图。

2.3 创建控制点文件 (Coverage格式)

将四个同名控制点的坐标添加到控制点文件中。

2.4 仿射变换

利用同名控制点文件进行仿射变换。

3 体的重建

经仿射变换, 各楼层的平面图得到了校正, 校正后的每一个楼层平面结构图与基底图都具有相同的坐标系统及相关参数。以各楼层二维平面图数据来生成三维体数据过程实际上是对二维图形“拔高”的过程。“拔高”采用了文献所提出的三维拓扑重建算法。“拔高”涉及三类信息:第一类是所“拔高”层的底面信息;第二类是生成墙体所依赖的框架, 也是墙体生成的依据;第三类是所“拔高”层的顶面信息。为了获得这三类信息, 需要三张结构平面图来综合的生成所“拔高”层的三维信息:

3.1 顶图

由该层的平面结构图和上层的平面结构图叠加生成, 如果该层为最顶层, 顶图等同于该层的平面结构图, 顶图用于生成该层的顶面面片信息。

3.2 结构图

即该层的平面结构图, 结构图用于在拔高过程中生成侧面墙体。

3.3 底图

由该层的平面结构图和下层的平面结构图叠加生成。如果该层为第一层, 底图等同于该层的平面结构图, 底图用于生成该层的底面的面片信息。通过上述的步骤, 利用“拔高”算法程序, 生成一层体数据。对一栋建筑物中的每一层均采用上述方法, 可以得到整个建筑物的三维数据。最后删除重复的公共面, 这样就构建了整栋楼的三维拓扑数据。

4 实验与结论

以某小区住宅中的部分建筑物为实验数据, 进行了实验测试。利用小区的建筑物竣工测量图与《房屋建筑层高表》分别获取了三维宗地的平面结构信息和高度信息。利用SketchUp“拔高”功能生成三维模型数据。图1是多楼层三维体的“拔高”实验结果, 左图为某建筑物, 其中透明的那层为选中效果, 右图为小区多个建筑物实验结果。实验结果表明, 所使用的方法可行。

摘要:三维空间数据的快速获取与重建是制约3D GIS发展的瓶颈问题之一, 利用已有二维图形数据重建三维模型是一条经济、快捷的途径。本文以DXF的二维图形为原始数据, 将它们分为顶图、底图和结构图, 利用ArcInfo工具进行数据预处理, 利用SketchUp进行“拔高”重建三维模型数据。实验结果表明方法可行。

关键词:3DGIS,DXF数据,三维重建,SketchUp

参考文献

[1]Tao V.Data collection and 3D object reconstruction, Large-scale 3D data integration (Problems and challenges) , Bentley International User Conference, 2004.

[2]朱庆.三维地理信息系统技术综述[J].地理信息世界, 2004, 2 (3) :8-12.

[3]贺彪, 李霖, 郭仁忠, 史云飞.顾及外拓扑的异构建筑三维拓扑重建[J].武汉大学学报·信息科学版, 2011, 36 (5) :579-583.

上一篇:动态面控制下一篇:大学改造