联系我们
座机:027-87580888
手机:18971233215
传真:027-87580883
邮箱:didareneng@163.com
地址: 武汉市洪山区鲁磨路388号中国地质大学校内(武汉)
运营管理
地质体三维构模技术中非连续型地质体构模子系统
子系统中关键类与组件的实现
表面构模中所涉及到的关键类与组件有表面模型类( surface)、断层面类( fault)、TIN单元类(TINElement)、侧表面重构COM( sideFace)、等值线( contour)等。
1.表面模型类。
1)类的功能。
表面模型类的一个对象不是代表整个模型,而是代表某个子地质体。每个子地质体由多个表面封闭而成,表面包括地层界面,由断层面或边界面裁剪而成的侧表面。因此,表面构模类的功能就是组织表面数据,然后显示表面数据。
2)类的主要属性。
子地质体ID:记录子地质体ID号。
子地质体所属子体ID:记录包含该子地质体的子体的ID号。
表面数:记录组成子地质体的表面数,一般为3,即由地层上界、地层下界与侧表面组成。
TIN单元集:记录每个子地质体的TIN单元的结点坐标。
TIN单元记数集:记录每个表面的TIN单元数。
子地质体的工程属性:按需要记录子地质体的工程特性,如岩性等。
子地质体的颜色特性:记录该子地质体的显示颜色。
子地质体的材质特性:记录子地质体的材质,用于可视化。
子地质体的纹理:记录子地质体的纹理图案。
3)类的主要方法。
CreateObject (Parameter):创建对象。该方法的参数包括该类的所有属性值,通过创建对象,可以记录对象的几何与属性特征。
CreateProfile (Parameter):创建剖面。当剖面切割子地质体时,将得到一条封闭轮廓线,然后按该子地质体的特性形成剖面。
Scale (Parameter):进行坐标的比率变换。使得图形的绘制具有通用性。
Volume(Parameter):该方法用于计算子地质体的体积。
Visual (Parameter):该方法用于绘制对象,它按照对象的几何属性进行三维图形的绘制。
2.断层面类。
1)类的功能。
该类用于创建断层面,并提供方法来求取断层面上的某点的值。
2)类的属性。
断层ID:记录断层面的ID号。
断层名:记录断层的名称。
断层走向:记录断层的走向。
断层倾角:记录断层的倾角。
断层类型:断层类型包括平面与二次曲面。
断层面方程系数:记录断层面方程的系数。
勘探点坐标集:勘探点坐标是用来求取断层面方程的,它通过窗口直接输入。
3)类的方法。
CreateFault (Parameter):创建断层面对象,建立断层方程,给断层面属性赋值。
GetZValue(Parameter):根据平面坐标求断层面上点的Z值。
3.TIN单元类。
1)类的功能。
该类用于记录TIN面的单元。
2)类的属性。
单元号、单元结点的X坐标、单元结点的Y坐标与元结点的Z坐标。
3)类的方法。
CreateTINElement (Parameter):创建TIN单元。
4.侧表面重构COM (sideFace)组件。
1)组件的功能。
该组件根据地层上、下界面轮廓线重构三维侧表面。按照轮廓线上的结点将侧表面划分成三角形面,实现三维侧表面重构。
2)组件的属性。
侧表面ID:记录侧表面的ID号。
上轮廓线结点数:记录上轮廓线的结点数量。
上轮廓线结点集:记录上轮廓线的结点坐标。
下轮廓线结点数:记录下轮廓线的结点数量。
下轮廓线结点集:记录下轮廓线的结点坐标。
3)组件的主要接口。
RecordUpperBoundary (Parameter):读取上层轮廓线。
Re cordLowerBoundary( Parameter):读取下层轮廓线。
OputElenums (Parameter):输出侧表面单元数。
OPutElems( Parameter):输出侧表面单元。
5.等值线组件。
1)组件的功能。
等值线组件的功能用于制作等值线,它是曲面裁剪中所用到的主要方法。
2)组件的属性。
平面三角形微元集:记录模型网格组成信息,即单元的结点号;结点集:记录模型网格结点坐标。
等值线的阀值:记录等值线的阀值。
3)组件的方法 。
SetData (Parameter):该方法用于设置参数。
GrtPointData (Parameter):获取等值点。
GetPointLineNumb (Parameter):获取等值线上等值点数。
子系统的实现
表面构模具有如下九个过程:数据概化、创建地层面、创建断层面、创建边界面、建立曲面拓扑关系、地层面裁剪处理、重新插值、形成侧面与显示模型等。
1.数据概化。
由于有断层的存在,使得地层面失去了插值意义上的连续性,因此,进行表面构模时,必须将模型按照断层切割情况划分成不同的子体,然后进行单独插值处理。按照一定的划分标准,将每个子体分成子地质体。
表面构模数据概化对话框中含有三个列表:子体ID列表、各子体所含地层名列表与地层符号列表。通过点击列表右侧的添加按钮可以弹出添加对话框,输入对应名称就可以完成数据概化对话框的设定。
在点击确定后,系统就创建了一系列子体对象,用户可以根据实际情况对各子体进行建模处理,然后组成总体模型。
2.创建地层面。
创建地层面的方法与柱体构模一样,就是根据勘探数据进行插值形成原始地层面所在曲面。进行插值时应对各个子体分别进行,原始勘探数据也应该单独使用。
3.创建断层面。
这里所创建的断层面也是断层面所在的曲面,断层面可以用一次曲面或二次曲面模拟,系统提供了这两种曲面的构造函数,通过输入勘探点之后就可以形成断层面。
创建断层面对话框,它包含三项内容:断层名、断层面类型与勘测点坐标。断层名可以是断层的实际名称,也可以是断层的序号。用户可以根据实际情况选择断层面类型,然后添加对应的勘探点就可以创建断层面。这里所得到的断层面只是断层面所在曲面,要得到真实的断层面还必须按下小节中的拓扑关系进行对断层面裁剪。
4.创建边界面。
边界面就是模型体的边界,是一组与水平面垂直的平面,可以由模型的平面边界点集来创建,系统根据边界点集直接形成边界面。
5.建立曲面裁剪关系。
曲面裁剪关系是进行曲面间裁剪的依据,在进行曲面裁剪之前必须建立明确的裁剪关系。
为表达方便,在本系统中,采用了一些标准符号来表达曲面与裁剪关系。用以“s”开头的字符串表示地层面,用以“F”开头的字符串表示断层面,用以“B”开头的字符串表示边界面。如S-1—O_D表示子体1的奥陶系地层的下界,F_1表示1号断层,B_1表示l号边界面。另外,曲面的裁剪关系也用符号表示,[U]表示上裁剪,[D]表示下裁剪,[L]表示左裁剪,[R]表示右裁剪,[F]表示前裁剪,[B]表示后裁剪。根据这种表示方法可以编写裁剪关系语句,如:s一1—0一I)[L]F—l表示奥陶系地层的下界被1号断层左裁剪,左裁剪的结果是s_i _O_D的左侧被裁剪掉留下右侧。
6.断层面、边界面裁剪。
根据上面的曲面裁剪关系,系统可以自动搜索断层面、边界面的裁剪关系,然后进行曲面裁剪,裁剪后得到只有断层面与边界面的实体,构成模型的骨架。
7.地层面裁剪。
地层面裁剪就是根据曲面裁剪关系对地层面进行裁剪处理,地层面裁剪包括地层面一地层面裁剪、地层面一断层面裁剪与地层面一边界面裁剪三种。由于地层面与地层面的裁剪是通过地层叠合处理来完成的,不需要在这里进行处理,这里主要处理后两种裁剪关系。裁剪过程如下:
(1)读取地层面数据,形成地层面。
(2)求取各断层面、边界面与地层面的交线,由于断层面与边界面的裁剪已经完成,面子体的划分又是依据断层切割情况来形成的,这样就可以在地层面上得到地层面的封闭边界,从而完成地层-的裁剪。
8.重新插值。
在形成地层面裁剪边界后,应对地层面重新插值,形成最终的地层面。这里的插值方法一般用IDW,插值原数据用裁剪前的地层面数据。
9.形成侧表面。
在某子地质体的上、下界面均被裁剪后,就可以得到上、下界面的边界,将边界进行重新插值,就可以得到边界面的上、下轮廓线,利用轮廓线可以重构侧表面。
10.模型的可视化。
按照上述顺序形成每个子地质体,然后形成各个子体,就可以构成总体模型了。表面构模技术是用表面来组织数据的,每个表面都是一个TIN面。在Op。nGL环境下,可以添加单独的TIN面,也可以添加由多个TIN围成子地质体,还可以添加多个子体。
一般情况下,在进行模型可视化时,将相同的子地质体赋予相同的颜色、材质与纹理,从而提高模型显示效果。添加地层对话框与柱体构模中提到的方法相同。
表面构模中所涉及到的关键类与组件有表面模型类( surface)、断层面类( fault)、TIN单元类(TINElement)、侧表面重构COM( sideFace)、等值线( contour)等。
1.表面模型类。
1)类的功能。
表面模型类的一个对象不是代表整个模型,而是代表某个子地质体。每个子地质体由多个表面封闭而成,表面包括地层界面,由断层面或边界面裁剪而成的侧表面。因此,表面构模类的功能就是组织表面数据,然后显示表面数据。
2)类的主要属性。
子地质体ID:记录子地质体ID号。
子地质体所属子体ID:记录包含该子地质体的子体的ID号。
表面数:记录组成子地质体的表面数,一般为3,即由地层上界、地层下界与侧表面组成。
TIN单元集:记录每个子地质体的TIN单元的结点坐标。
TIN单元记数集:记录每个表面的TIN单元数。
子地质体的工程属性:按需要记录子地质体的工程特性,如岩性等。
子地质体的颜色特性:记录该子地质体的显示颜色。
子地质体的材质特性:记录子地质体的材质,用于可视化。
子地质体的纹理:记录子地质体的纹理图案。
3)类的主要方法。
CreateObject (Parameter):创建对象。该方法的参数包括该类的所有属性值,通过创建对象,可以记录对象的几何与属性特征。
CreateProfile (Parameter):创建剖面。当剖面切割子地质体时,将得到一条封闭轮廓线,然后按该子地质体的特性形成剖面。
Scale (Parameter):进行坐标的比率变换。使得图形的绘制具有通用性。
Volume(Parameter):该方法用于计算子地质体的体积。
Visual (Parameter):该方法用于绘制对象,它按照对象的几何属性进行三维图形的绘制。
2.断层面类。
1)类的功能。
该类用于创建断层面,并提供方法来求取断层面上的某点的值。
2)类的属性。
断层ID:记录断层面的ID号。
断层名:记录断层的名称。
断层走向:记录断层的走向。
断层倾角:记录断层的倾角。
断层类型:断层类型包括平面与二次曲面。
断层面方程系数:记录断层面方程的系数。
勘探点坐标集:勘探点坐标是用来求取断层面方程的,它通过窗口直接输入。
3)类的方法。
CreateFault (Parameter):创建断层面对象,建立断层方程,给断层面属性赋值。
GetZValue(Parameter):根据平面坐标求断层面上点的Z值。
3.TIN单元类。
1)类的功能。
该类用于记录TIN面的单元。
2)类的属性。
单元号、单元结点的X坐标、单元结点的Y坐标与元结点的Z坐标。
3)类的方法。
CreateTINElement (Parameter):创建TIN单元。
4.侧表面重构COM (sideFace)组件。
1)组件的功能。
该组件根据地层上、下界面轮廓线重构三维侧表面。按照轮廓线上的结点将侧表面划分成三角形面,实现三维侧表面重构。
2)组件的属性。
侧表面ID:记录侧表面的ID号。
上轮廓线结点数:记录上轮廓线的结点数量。
上轮廓线结点集:记录上轮廓线的结点坐标。
下轮廓线结点数:记录下轮廓线的结点数量。
下轮廓线结点集:记录下轮廓线的结点坐标。
3)组件的主要接口。
RecordUpperBoundary (Parameter):读取上层轮廓线。
Re cordLowerBoundary( Parameter):读取下层轮廓线。
OputElenums (Parameter):输出侧表面单元数。
OPutElems( Parameter):输出侧表面单元。
5.等值线组件。
1)组件的功能。
等值线组件的功能用于制作等值线,它是曲面裁剪中所用到的主要方法。
2)组件的属性。
平面三角形微元集:记录模型网格组成信息,即单元的结点号;结点集:记录模型网格结点坐标。
等值线的阀值:记录等值线的阀值。
3)组件的方法 。
SetData (Parameter):该方法用于设置参数。
GrtPointData (Parameter):获取等值点。
GetPointLineNumb (Parameter):获取等值线上等值点数。
子系统的实现
表面构模具有如下九个过程:数据概化、创建地层面、创建断层面、创建边界面、建立曲面拓扑关系、地层面裁剪处理、重新插值、形成侧面与显示模型等。
1.数据概化。
由于有断层的存在,使得地层面失去了插值意义上的连续性,因此,进行表面构模时,必须将模型按照断层切割情况划分成不同的子体,然后进行单独插值处理。按照一定的划分标准,将每个子体分成子地质体。
表面构模数据概化对话框中含有三个列表:子体ID列表、各子体所含地层名列表与地层符号列表。通过点击列表右侧的添加按钮可以弹出添加对话框,输入对应名称就可以完成数据概化对话框的设定。
在点击确定后,系统就创建了一系列子体对象,用户可以根据实际情况对各子体进行建模处理,然后组成总体模型。
2.创建地层面。
创建地层面的方法与柱体构模一样,就是根据勘探数据进行插值形成原始地层面所在曲面。进行插值时应对各个子体分别进行,原始勘探数据也应该单独使用。
3.创建断层面。
这里所创建的断层面也是断层面所在的曲面,断层面可以用一次曲面或二次曲面模拟,系统提供了这两种曲面的构造函数,通过输入勘探点之后就可以形成断层面。
创建断层面对话框,它包含三项内容:断层名、断层面类型与勘测点坐标。断层名可以是断层的实际名称,也可以是断层的序号。用户可以根据实际情况选择断层面类型,然后添加对应的勘探点就可以创建断层面。这里所得到的断层面只是断层面所在曲面,要得到真实的断层面还必须按下小节中的拓扑关系进行对断层面裁剪。
4.创建边界面。
边界面就是模型体的边界,是一组与水平面垂直的平面,可以由模型的平面边界点集来创建,系统根据边界点集直接形成边界面。
5.建立曲面裁剪关系。
曲面裁剪关系是进行曲面间裁剪的依据,在进行曲面裁剪之前必须建立明确的裁剪关系。
为表达方便,在本系统中,采用了一些标准符号来表达曲面与裁剪关系。用以“s”开头的字符串表示地层面,用以“F”开头的字符串表示断层面,用以“B”开头的字符串表示边界面。如S-1—O_D表示子体1的奥陶系地层的下界,F_1表示1号断层,B_1表示l号边界面。另外,曲面的裁剪关系也用符号表示,[U]表示上裁剪,[D]表示下裁剪,[L]表示左裁剪,[R]表示右裁剪,[F]表示前裁剪,[B]表示后裁剪。根据这种表示方法可以编写裁剪关系语句,如:s一1—0一I)[L]F—l表示奥陶系地层的下界被1号断层左裁剪,左裁剪的结果是s_i _O_D的左侧被裁剪掉留下右侧。
6.断层面、边界面裁剪。
根据上面的曲面裁剪关系,系统可以自动搜索断层面、边界面的裁剪关系,然后进行曲面裁剪,裁剪后得到只有断层面与边界面的实体,构成模型的骨架。
7.地层面裁剪。
地层面裁剪就是根据曲面裁剪关系对地层面进行裁剪处理,地层面裁剪包括地层面一地层面裁剪、地层面一断层面裁剪与地层面一边界面裁剪三种。由于地层面与地层面的裁剪是通过地层叠合处理来完成的,不需要在这里进行处理,这里主要处理后两种裁剪关系。裁剪过程如下:
(1)读取地层面数据,形成地层面。
(2)求取各断层面、边界面与地层面的交线,由于断层面与边界面的裁剪已经完成,面子体的划分又是依据断层切割情况来形成的,这样就可以在地层面上得到地层面的封闭边界,从而完成地层-的裁剪。
8.重新插值。
在形成地层面裁剪边界后,应对地层面重新插值,形成最终的地层面。这里的插值方法一般用IDW,插值原数据用裁剪前的地层面数据。
9.形成侧表面。
在某子地质体的上、下界面均被裁剪后,就可以得到上、下界面的边界,将边界进行重新插值,就可以得到边界面的上、下轮廓线,利用轮廓线可以重构侧表面。
10.模型的可视化。
按照上述顺序形成每个子地质体,然后形成各个子体,就可以构成总体模型了。表面构模技术是用表面来组织数据的,每个表面都是一个TIN面。在Op。nGL环境下,可以添加单独的TIN面,也可以添加由多个TIN围成子地质体,还可以添加多个子体。
一般情况下,在进行模型可视化时,将相同的子地质体赋予相同的颜色、材质与纹理,从而提高模型显示效果。添加地层对话框与柱体构模中提到的方法相同。
上一篇 > 地质体三维构模技术中褶皱型地质体构模子系统
下一篇 > 连续型地质体构模子系统的概述