发明内容
本发明要解决的技术问题是:提供一种地质三维模型自动建模与动态更新的方法,帮助建模人利用计算机程序高效完成复杂的地质三维建模工作,减少人力投入和缩短工作周期。
本发明所采用的技术方案是:地质三维模型自动建模与动态更新的方法,其特征在于包括以下步骤:
1、建模操作定义A,用于在地质三维建模过程中进行建模操作定义;
2、建模操作变更B,用于对步骤1重新进行有意义的变更;
3、建模操作及流程描述C,用于对步骤1和步骤2所定义和变更的操作和流程进行记录;
4、地质模型更新D,根据步骤3触发地质模型自动建模和动态更新;
5、建模操作与模型更新记录E,用于对步骤1、步骤2以及步骤4的状态做记录。
所述建模操作定义A包括操作元素组定义A-1、操作函数及参数定义A-2和建模操作流程定义A-3三个子过程,每个子过程都能触发建模操作及流程描述C,再通过建模操作及流程描述C触发地质模型更新D,实现地质三维模型的自动建模。
所述建模操作变更B包括操作元素组变更B-1、操作函数及参数变更B-2、建模操作流程变更B-3三个子过程,每个子过程都能触发建模操作及流程描述C,再通过建模操作及流程描述C触发地质模型更新D,实现地质三维模型的动态更新。
所述建模操作及流程描述C会被建模操作定义(A)和建模操作变更(B)触发,自动新建或改写建模操作及流程描述的记录,其内容包括描述序号、建模操作函数、参数及建模操作结果,其中参数包括操作元素组的定义、建模操作函数对应的程序参数。
所述的地质模型更新D包括扫描受影响的模型D-1和更新受影响的模型D-2两个子过程,地质模型更新D可被建模操作及流程描述C触发,根据建模操作及流程描述C的记录序列,循环往复执行扫描受影响的模型D-1和更新受影响的模型D-2两个子过程,直至找不到受影响的模型即完成模型更新。
所述建模操作与模型更新记录E能够被建模操作定义A、建模操作变更B和地质模型更新D的所有子过程触发,并记录序号、子过程名称、建模操作与模型更新描述、执行者、执行状态及记录时间,既可实现建模操作定义A和建模操作变更B回滚到历史状态,也可帮助建模人和校审人追溯地质三维模型产品的历史过程。
所述操作元素组定义A-1子过程适用的模型元素组包括广义的点集、线集、面集、体集、抽象对象及它们的组合,元素组定义的方法包括指定元素组的相同图形属性和相同专业属性以及二者的结合。
所述建模操作定义A事先配置包含操作元素组定义A-1、操作函数及参数定义A-2和建模操作流程定义A-3的标准模板。
所述建模操作定义A和建模操作变更B的所有子过程均包括操作可行性验证功能。
所述更新受影响的模型D-2子过程还包括更新暂停、逐步更新、中止重启及灾难恢复功能。
本发明的有益效果是:通过一系列制定的计算机程序过程和过程记录,实现了地质三维模型的自动建模和动态更新,大大提高了地质三维建模和修改更新的效率,还可以根据流程描述和更新记录追溯地质三维模型产品的历史,为产品校核提供了新的技术手段。
具体实施方式
以下结合附图1对本发明技术方案进行详细说明。
本实施例包括建模操作定义A、建模操作变更B和地质模型更新D三个主要过程,以及建模操作及流程描述C和建模操作与模型更新记录E两个辅助过程,具体过程和实施方式如下:
1、建模操作定义A过程:由用户在地质三维建模程序中进行建模操作定义,该过程包括操作元素组定义A-1、操作函数及参数定义A-2、建模操作流程定义A-3三个子过程,然后由本过程触发建模操作及流程描述C过程,得到计算机要执行的建模操作及流程描述记录(如图2),再通过C过程触发地质模型更新D过程,实现地质三维模型的自动建模。通过事先配置好的包含操作元素组定义A-1、操作函数及参数定义A-2、建模操作流程定义A-3内容与建模操作及流程描述C结构相同的标准模板(如图2),使地质三维模型自动建模的人机交互操作难度大大降低。所述的操作元素组包括广义的点集、线集、面集、体集、抽象对象及它们的组合,元素组定义的方式包括元素组的相同图形属性(例如元素类型、图层、颜色、线型、线宽、填充、比例、透明度)和相同专业属性(例如专业类型、名称、编号、从属)以及二者的结合。
2、建模操作变更B过程:由用户通过地质三维建模程序对建模操作定义A重新进行有意义的变更,该过程包括操作元素组变更B-1、操作函数及参数变更B-2、建模操作流程变更B-3三个子过程,然后触发建模操作及流程描述C过程,得到计算机要执行的建模操作及流程描述记录(如图2),再通过C过程触发地质模型更新D过程,实现地质三维模型的动态更新。
3、建模操作及流程描述C过程:由计算机程序对建模操作定义A和建模操作变更B所定义和变更的建模操作及流程描述进行记录,包括记录的新建和改写,其内容包括描述序号、建模操作函数、参数及建模操作结果,其中参数包括操作元素组的定义、建模操作函数对应的程序参数,记录的结构如图2。
4、地质模型更新D过程:受建模操作及流程描述C过程触发,计算机地质三维建模程序按照C过程的记录序列(如图2)循环往复执行扫描受影响的模型D-1和更新受影响的模型D-2两个子过程,直至找不到受影响的模型并完成模型更新。通过赋予更新受影响的模型D-2子过程有关更新暂停、逐步更新、中止重启、灾难恢复等功能,实现更新过程可控,以及因不可抗的外部因素导致突发性中断或灾难发生时能够正常重启或恢复,从而保障模型产品的可靠性和安全性。
5、建模操作与模型更新记录E过程:在建模操作定义A、建模操作变更B、地质模型更新D的所有子过程触发下,由计算机启动地质三维建模程序对A过程、B过程和D过程的执行状态做记录,详细记录序号、子过程名称、建模操作与模型更新描述、执行者、执行状态、记录时间等信息(如图3),通过分析该过程记录,帮助建模人员追溯或回滚到地质三维模型的历史状态,为校审核人员提供技术产品新的质量管控手段。
下面以某工程地质三维建模为例,进一步说明地质三维模型自动建模与动态更新的方法,请参见图4、图5、图6。
步骤1、生成基覆界面点。首先由操作人A进行第一次建模,生成某项目可行性研究阶段下坝址工程区的基覆界面点,该操作对应建模操作及流程描述C的描述序号1(如图4)。建模操作函数、参数及结果记录中第一个[]内记录了操作函数,第二个[]中记录了操作依赖的输入,该输入可以是函数参数、依赖的图形数据集或者属性描述的数据集,参数的顺序表示了操作的流程。第三个[]内记录了操作生成的结果。用户进行操作或者变更操作时,***会按照描述序号判断操作的结果是否影响到其它操作的依赖,根据判断结果决定是否触发自动更新,改动参数、依赖和参数顺序都属于操作变更。***将建模操作定义、建模操作变更、更新操作记录同时记录到建模操作及流程描述C与建模操作与模型更新记录E中。
步骤2、生成临时基覆界面。将步骤1生成的基覆界面点定义元素组,用克里金生成Grid面的函数,操作函数参数设为网格间距5m,得到临时基覆界面。该步骤对应建模操作及流程描述C的描述序号2。
步骤3、 生成基覆界面边界。启动建模操作定义A过程,采用画线函数,以手工绘制的封闭边界线节点为参数,得到基覆界面边界。该步骤对应建模操作及流程描述C过程的描述序号3。
步骤4、 切割未校正基覆界面。启动建模操作定义A过程,指定步骤2生成的临时基覆界面和步骤3生成的基覆界面边界,用线投影剪切mesh函数切割出带边界的未校正基覆界面。临时基覆界面和基覆界面边界的选择顺序不可改变,否则无法生成,改变操作元素组顺序以及操作函数参数都存储于建模操作及流程描述C的记录中。该步骤对应建模操作及流程描述C的描述序号4。
步骤5、 生成地形面。启动建模操作定义A,指定地形等高线为操作元素组,采用克里金生成Grid的操作函数,操作函数参数设为网格间距5m,得到地形面。该步骤对应建模操作及流程描述C的描述序号5。
步骤6、 校正基覆界面。启动建模操作定义A,指定步骤5生成的地形面和步骤4生成的带边界基覆界面,采用MESH面校正函数,不带操作函数参数生成校正后的基覆界面。该步骤对应建模操作及流程描述C的描述序号6。
步骤7、 生成基岩面。启动建模操作定义A,指定步骤6生成的基覆界面和步骤5生成的地形面作为操作元素组,采用基岩面生成函数,无参数生成基岩面。该步骤对应建模操作及流程描述C的描述序号7。
步骤8、 生成基岩体。启动建模操作定义A,指定步骤7生成的基岩面为操作元素,采用MESH加底成体的函数,操作函数参数设为基岩体的底部高程1300m,得到基岩体。该步骤对应建模操作及流程描述C的描述序号8。
通过上述建模操作定义A过程的8个步骤建立了某工程可行性研究阶段下坝址的地形面、基覆界面和基岩体(如图6),形成8条建模操作及流程描述C记录(如图4)和8条建模操作与模型更新记录E(如图5)。因每一步步骤都不改变之前的建模操作定义,至此还没有启动建模操作变更B过程和地质模型更新D过程。
随着工程的继续,基覆界面的边界发生更改,需要调整覆盖层边界,并重新生成后续的模型,以便使模型符合实际。操作人B将在操作人A的成果基础上进行修改。修改操作会删除原有边界,绘制新的边界。如果没有自动更新功能,操作人B将删除步骤1、步骤2以后的所有成果,重新执行后续步骤。在自动更新功能的帮助下,操作人B在调整基覆界面边界后,因为边界是多边形图形元素,步骤3记录的依赖元素的ID随着边界的重新绘制而消失,自动更新功能会搜索到此依赖的丢失并提示,用户手工选定新创建的基覆界面边界修复依赖关系即可。将修改后的图形ID替换步骤3中保存的基覆界面边界的图形ID,并继续执行建模操作及流程描述的步骤4-步骤8,实现模型的更新。由于该操作直接修改建模操作及流程描述的步骤3,因此只记录在建模操作与模型更新记录中对应的记录序号9,以便历史追溯。该步骤触发地质模型更新D,对应建模操作与模型更新记录中记录序号10。建模操作及流程描述中描述序号6依赖的未校正的基覆界面是基于属性描述的数据集,虽然步骤4生成了新的校正的基覆界面,但是属性没变,因此***能够自动识别依赖并完成更新,无需人工干预。
随着工程的深入,基覆界面点的数据随着钻孔数据的增多更加细致,需要重新生成基覆界面点,由人工启动建模操作元素组变更B-1,触发并更新相关模型使地质模型更加准确。该步骤同样由操作人B完成,首先人工启动基覆界面点元素组的变更过程,然后触发建模操作及流程描述C过程,得到变更后的操作记录表,触发地质模型更新D过程,***扫描到步骤2至步骤4受影响,***也会跳过未被影响的步骤5,更新步骤6至步骤8,该更新对应建模操作与模型更新记录中记录序号12。
地形生成是一个相对独立的操作,安排在基覆界面生成操作中会使得流程不清晰并增加依赖判断的复杂度,因此需要将此操作调整到步骤1。***对于操作流程变更和参数变更都会验证其合法性。执行此建模操作顺序变更过程时,因为地形等高线一直都存在,操作元素组、操作函数、函数参数都完整,此建模操作变更合法,操作完成后启动建模操作与模型更新记录,该步骤对应记录序号13。如果将生成基覆界面调整到生成基覆界面点操作前,生成基覆界面的操作元素组基覆界面点缺少,因此***将认为该操作不合法,不予以执行。执行更改生成基覆界面点操作的项目ID时,***也将验证此项目是否存在,以确定该操作是否合法。
建模操作定义不仅可以通过***配置来完成,也可以通过***启动建模操作及流程描述过程自动录制人机交互操作。在执行模型更新过程时,计算机可以按照建模操作及流程描述的全部记录按顺序逐步执行或一次性执行,遇到不可抗外力导致更新过程中止时,还能依据全部记录重新启动更新过程实现灾难恢复等。
图6是基于本发明方法实现自动建模和动态更新的具有专业属性信息和各项依赖关系的地质三维模型。