技术领域
本发明涉及地理信息和地质学领域,尤其涉及一种面向松散层覆盖区域的图切地质剖面自动生成方法。
背景技术
松散层是由土质、砂、砾石、卵石层等组成的第四系与新近系地层。松散层属于上覆岩层,关键在于其松散介质特征,其强度远不及一般的岩层。图切地质剖面图是指在地质图上选择某一个方向,根据各种地质、地理要素,按一定比例尺,用投影方法编绘而成的地质剖面图。松散层覆盖区域,由于其松散层分布信息和底部基岩信息分别来自区域地质图和基岩地质图,其图切地质剖面生成方法相对复杂,传统的图切地质剖面生成方法难以直接应用。
为此,基于松散层的地层分布规律,进行松散层的构建以及松散层覆盖的基岩地层的合理推断与建模,开展松散层覆盖区域图切地质剖面的自动构建方法研究,具有重要的研究意义和使用价值。
发明内容
发明目的:本发明针对现有技术存在的问题,提供一种建模质量高的面向松散层覆盖区域的图切地质剖面自动生成方法。
技术方案:本发明所述的面向松散层覆盖区域的图切地质剖面自动生成方法包括:
(1)根据研究区域的区域地质图、DEM、钻孔数据和基岩地质图,形成区域地质界线集合GeoLine、区域地层面集合GeoPolygon、基岩地质界线集合BedrockLine、基岩地层面集合BedrockPolygon、钻孔数据集合Drills以及栅格数据集合GeoDEM;
(2)分别获取研究区域的剖面线SL与集合BedrockLine和集合GeoLine中每一地质界线的交点,对应形成基岩面交点集合PA和区域地层面交点集合PB;
(3)采用基岩面交点集合PA分割剖面线SL,得到分线段集合SeLine,再结合基岩地层面集合BedrockPolygon和栅格数据集合GeoDEM,提取剖面线SL上的地层代码集合MK和产状集合AT,并生成基岩图切地质剖面SP和地表线SurfaceLine;
(4)采用区域地层面交点集合PB分割剖面线SL,得到从小到大排序的分线段集合SbLine,再结合区域地层面集合GeoPolygon,提取松散层剖面线集合FL和松散层地层代码集合QC;
(5)基于地层连续关系,将松散层剖面线集合FL划分成不同组,存入松散层剖面线分组集合FG;
(6)从集合FG中读取任一松散层剖面线分组fg
(7)基于松散层厚度集合DH和地表线SurfaceLine,生成松散层各层底部线,并构建松散层剖面,存入松散层剖面集合QP;
(8)循环执行步骤(6)-(7),直至集合FG被遍历完,完成所有松散层剖面构建;
(9)基于所有松散层剖面几何QP和基岩图切地质剖面SP,合并构建松散层覆盖区域的图切地质剖面。
进一步的,步骤(1)具体包括:
(1-1)从研究区域的区域地质图中提取区域地质界线数据和区域地层面数据,并分别存入区域地质界线集合GeoLine和区域地层面集合GeoPolygon;
(1-2)从研究区域的基岩地质图中提取基岩地质界线数据和基岩地层面数据,并分别存入基岩地质界线集合BedrockLine和基岩地层面集合BedrockPolygon,基岩地层面数据包括基岩地层面的地层唯一编号GID和对应地层代码;
(1-3)将研究区域的钻孔数据存入钻孔数据集合Drills;
(1-4)从研究区域的DEM中提取栅格数据,存入栅格数据集合GeoDEM。
进一步的,步骤(2)具体包括:
(2-1)提取剖面线SL与基岩地质界线集合BedrockLine中每一基岩地质界线的交点,作为基岩面交点;
(2-2)将每个基岩面交点位置的地层产状信息作为该点的属性,存入基岩面交点集合PA={pa
(2-3)提取剖面线SL与区域地质界线集合GeoLine中每一区域地质界线的交点,作为区域地层面交点;
(2-4)将每个区域地层面交点位置的地层产状信息作为交点的属性,并存入区域地层面交点集合PB={pb
进一步的,步骤(3)具体包括:
(3-1)将基岩面交点集合PA中所有点的地层产状信息,存入产状集合AT={α
(3-2)采用基岩面交点集合PA中的点将剖面线SL分割为PI条分段线,并存入剖面分段线集合SeLine中;
(3-3)获取剖面分段线集合SeLine中每一分段线的首端点,将首端点所在基岩地层面的地层唯一编号GID,作为对应分段线的属性存储,建立BedrockPolygon与SeLine的关联;
(3-4)对于SeLine中每一分段线,根据其属性GID找到BedrockPolygon中与之对应的基岩地层面的地层代码,存入地层代码集合MK={mk
(3-5)根据基岩面交点集合PA、产状集合AT以及栅格数据集合GeoDEM,生成基岩图切地质剖面SP和地表线SurfaceLine。
进一步的,步骤(4)具体包括:
(4-1)根据研究区域地质图图例,建立一个地层年代从新到老的松散层覆盖地层代码表PC;
(4-2)采用区域地层面交点集合PB中的点将剖面线SL分割为若干分段线,存入剖面分段线集合SbLine’中;
(4-3)获取剖面线分线段集合SbLine’中所有分线段的首端点,按照首端点横坐标从小到大对分线段进行排序,得到有序排列的剖面分段线集合SbLine;
(4-4)对于剖面分段线集合SbLine中每一分段线,将其首端点所在基岩地层面的地层唯一编号GID作为其属性存储,建立BedrockPolygon与SbLine的关联;
(4-5)获取SbLine中任一分段线,根据其属性GID找到GeoPolygon中与之对应的区域地层面的地层代码;
(4-6)若该分段线的地层代码属于松散层覆盖地层代码表PC,则将该地层代码存入松散层地层代码集合QC,同时将该分段线存入松散层剖面线集合FL;
(4-7)循环执行步骤(4-5)-(4-6),直至遍历集合SbLine,得到完整的集合FL和QC。
进一步的,步骤(5)具体包括:
(5-1)根据分段线集合SbLine中所有分段线的属性GID,得到松散层剖面线集合FL中每一松散层剖面线的GID;
(5-2)根据集合FL中松散层剖面线的GID,按照下述规则判断任意两条松散层剖面线是否连续:若两条线之间GID相差为1,则判定这两条线连续;否则,判定两条线不连续;
(5-3)将所有连续的松散层剖面线划分为一组,存入松散层剖面线分组集合FG={fg
进一步的,步骤(6)具体包括:
(6-1)读取松散层剖面线分组集合FG内任意一组松散层剖面线分组fg
(6-2)将分组fg
(6-3)根据钻孔集合Drills,获取到与剖面线ft距离最近的邻近钻孔drill;
(6-4)根据松散层地层代码集合QC,按照地层年代新老关系,获取分组fg
(6-5)读取邻近钻孔drill中地层各层厚度和岩性信息,并根据区域地质图图例中,松散层岩性分类,将各层厚度整合并存入松散层厚度集合DH={dh(dc
进一步的,步骤(7)具体包括:
(7-1)计算钻孔drill投影至剖面线SL的点drillPoint,将其转换为二维坐标系下,得到点drillPoint的横纵坐标(x
(7-2)根据松散层厚度集合DH,按照dh
(7-3)从松散层最低深度集合HP中读取任一地层dc
(7-4)获取二维坐标下剖面线fb首尾两端点sp、ep,根据dc
(7-5)循环执行步骤(7-3)-(7-4),直至HP被遍历完;
(7-6)根据地表线SurfaceLine和松散层地层底部线集合QLine,构建面状要素,生成松散层剖面,并存入松散层剖面集合QP。
进一步的,步骤(7-4)具体包括:
(7-4-1)获取二维坐标下剖面线fb首尾两端点sp、ep,过端点sp、ep作两条垂线;
(7-4-2)读取地层dc
(7-4-3)利用贝塞尔曲线方程,在sp、a
(7-4-4)将两条曲线合并,作为松散层地层底部线,并存入松散层地层底部线集合QLine。
进一步的,步骤(9)具体包括:
(9-1)沿剖面方向顺序,依次为基岩图切地质剖面SP赋予地层代码;
(9-2)沿地层顺序,依次为松散层剖面集合QP赋予地层代码;
(9-3)合并基岩图切地质剖面SP和松散层剖面集合QP,得到松散层覆盖区域的图切地质剖面。
本发明中,当缺少基岩地质图数据时,可按以下方法获取松散层覆盖区域的基岩地层相关信息:
(1)地表出露基岩地层的产状信息、地层与剖面线的地表交点信息,从区域地质图中获取;
(2)松散层覆盖区域的基岩地层位置信息推断。若松散层左右两端出露基岩地层相同,则推断被覆盖区域的基岩地层与左右两端基岩地层是同一个地层;若左右两端出露基岩地层不相同,则取1/2处为两基岩地层的分界点。
有益效果:本发明与现有技术相比,其显著优点是:本发明提供了一种松散层覆盖区域的图切地质剖面自动生成方法,该方法可以有效提高图切地质剖面的建模质量,为基于序列图切地质剖面进行三维建模奠定了良好的数据基础。
附图说明
图1是本实施例中采用的剖面线、区域地质图和基岩地质图数据;
图2是本实施例中采用的DEM数据和钻孔数据;
图3是本发明实施例的流程图;
图4是本实施例中生成的基岩地质剖面;
图5是本实施例中生成的松散层;
图6是本实施例中生成的松散层覆盖的图切地质剖面;
图7是本实施例中人工手绘的图切地质剖面。
具体实施方式
下面对本发明技术方案作进一步详细的说明,本实施例选取了1:5万宁镇山脉区域地质图、1:10万南京基岩地质图、30m分辨率南京DEM数据和南京钻孔作为实验数据,如图1和图2所示,剖面线画取位置为南京紫金山至青龙山。下面结合附图,并通过描述一个具体的实施例,来进一步说明。
如图3所示,本实施例提供了松散层覆盖区域的图切地质剖面自动生成方法,包括::
(1)根据研究区域的区域地质图、DEM、钻孔数据和基岩地质图,形成区域地质界线集合GeoLine、区域地层面集合GeoPolygon、基岩地质界线集合BedrockLine、基岩地层面集合BedrockPolygon、钻孔数据集合Drills以及栅格数据集合GeoDEM。
该步骤具体包括:
(1-1)从研究区域的区域地质图中提取区域地质界线数据和区域地层面数据,并分别存入区域地质界线集合GeoLine和区域地层面集合GeoPolygon;
(1-2)从研究区域的基岩地质图中提取基岩地质界线数据和基岩地层面数据,并分别存入基岩地质界线集合BedrockLine和基岩地层面集合BedrockPolygon,基岩地层面数据包括基岩地层面的地层唯一编号GID和对应地层代码;
(1-3)将研究区域的钻孔数据存入钻孔数据集合Drills;
(1-4)从研究区域的DEM中提取栅格数据,存入栅格数据集合GeoDEM。
(2)分别获取研究区域的剖面线SL与集合BedrockLine和集合GeoLine中每一地质界线的交点,对应形成基岩面交点集合PA和区域地层面交点集合PB。
该步骤具体包括:
(2-1)提取剖面线SL与基岩地质界线集合BedrockLine中每一基岩地质界线的交点,作为基岩面交点;
(2-2)将每个基岩面交点位置的地层产状信息作为该点的属性,存入基岩面交点集合PA={pa
(2-3)提取剖面线SL与区域地质界线集合GeoLine中每一区域地质界线的交点,作为区域地层面交点;
(2-4)将每个区域地层面交点位置的地层产状信息作为交点的属性,并存入区域地层面交点集合PB={pb
(3)采用基岩面交点集合PA分割剖面线SL,得到分线段集合SeLine,再结合基岩地层面集合BedrockPolygon和栅格数据集合GeoDEM,提取剖面线SL上的地层代码集合MK和产状集合AT,并生成基岩图切地质剖面SP和地表线SurfaceLine。
该步骤具体包括:
(3-1)将基岩面交点集合PA中所有点的地层产状信息,存入产状集合AT={α
(3-2)采用基岩面交点集合PA中的点将剖面线SL分割为PI条分段线,并存入剖面分段线集合SeLine中;
(3-3)获取剖面分段线集合SeLine中每一分段线的首端点,将首端点所在基岩地层面的地层唯一编号GID,作为对应分段线的属性存储,建立BedrockPolygon与SeLine的关联;
(3-4)对于SeLine中每一分段线,根据其属性GID找到BedrockPolygon中与之对应的基岩地层面的地层代码,存入地层代码集合MK={mk
(3-5)根据基岩面交点集合PA、产状集合AT以及栅格数据集合GeoDEM,生成基岩图切地质剖面SP和地表线SurfaceLine,如图4所示。生成方法见文献:申请号:202010242546.3《一种三维图切地质剖面的自动构建方法》。
(4)采用区域地层面交点集合PB分割剖面线SL,得到从小到大排序的分线段集合SbLine,再结合区域地层面集合GeoPolygon,提取松散层剖面线集合FL和松散层地层代码集合QC。
该步骤具体包括:
(4-1)根据研究区域地质图图例,建立一个地层年代从新到老的松散层覆盖地层代码表PC;本实施例中建立的松散层覆盖地层代码表PC如表1所示。
表1松散层覆盖地层代码表PC
(4-2)采用区域地层面交点集合PB中的点将剖面线SL分割为若干分段线,存入剖面分段线集合SbLine’中;
(4-3)获取剖面线分线段集合SbLine’中所有分线段的首端点,按照首端点横坐标从小到大对分线段进行排序,得到有序排列的剖面分段线集合SbLine;
(4-4)对于剖面分段线集合SbLine中每一分段线,将其首端点所在基岩地层面的地层唯一编号GID作为其属性存储,建立BedrockPolygon与SbLine的关联;
(4-5)获取SbLine中任一分段线,根据其属性GID找到GeoPolygon中与之对应的区域地层面的地层代码;
(4-6)若该分段线的地层代码属于松散层覆盖地层代码表PC,则将该地层代码存入松散层地层代码集合QC,同时将该分段线存入松散层剖面线集合FL;
(4-7)循环执行步骤(4-5)-(4-6),直至遍历集合SbLine,得到完整的集合FL和QC。
(5)基于地层连续关系,将松散层剖面线集合FL划分成不同组,存入松散层剖面线分组集合FG。
该步骤具体包括:
(5-1)根据分段线集合SbLine中所有分段线的属性GID,得到松散层剖面线集合FL中每一松散层剖面线的GID;
(5-2)根据集合FL中松散层剖面线的GID,按照下述规则判断任意两条松散层剖面线是否连续:若两条线之间GID相差为1,则判定这两条线连续;否则,判定两条线不连续;
(5-3)将所有连续的松散层剖面线划分为一组,存入松散层剖面线分组集合FG={fg
(6)从集合FG中读取任一松散层剖面线分组fg
该步骤具体包括:
(6-1)读取松散层剖面线分组集合FG内任意一组松散层剖面线分组fg
(6-2)将分组fg
(6-3)根据钻孔集合Drills,获取到与剖面线ft距离最近的邻近钻孔drill;
(6-4)根据松散层地层代码集合QC,按照地层年代新老关系,获取分组fg
(6-5)读取邻近钻孔drill中地层各层厚度和岩性信息,并根据区域地质图图例中,松散层岩性分类,将各层厚度整合并存入松散层厚度集合DH={dh(dc
表2松散层岩性表
(7)基于松散层厚度集合DH和地表线SurfaceLine,生成松散层各层底部线,并构建松散层剖面,存入松散层剖面集合QP。
该步骤具体包括:
(7-1)计算钻孔drill投影至剖面线SL的点drillPoint,将其转换为二维坐标系下,得到点drillPoint的横纵坐标(x
(7-2)根据松散层厚度集合DH,按照dh
(7-3)从松散层最低深度集合HP中读取任一地层dc
(7-4)获取二维坐标下剖面线fb首尾两端点sp、ep,根据dc
(7-5)循环执行步骤(7-3)-(7-4),直至HP被遍历完;
(7-6)根据地表线SurfaceLine和松散层地层底部线集合QLine,使用ArcEngineAPI,构建面状要素,生成松散层剖面,并存入松散层剖面集合QP。
其中,步骤(7-4)具体包括:
(7-4-1)获取二维坐标下剖面线fb首尾两端点sp、ep,过端点sp、ep作两条垂线;
(7-4-2)读取地层dc
(7-4-3)利用贝塞尔曲线方程,在sp、a
(7-4-4)将两条曲线合并,作为松散层地层底部线,并存入松散层地层底部线集合QLine。
(8)循环执行步骤(6)-(7),直至集合FG被遍历完,完成所有松散层剖面构建。,如图5所示。
(9)基于所有松散层剖面几何QP和基岩图切地质剖面SP,合并构建松散层覆盖区域的图切地质剖面。
该步骤具体包括:
(9-1)沿剖面方向顺序,依次为基岩图切地质剖面SP赋予地层代码;
(9-2)沿地层顺序,依次为松散层剖面集合QP赋予地层代码;
(9-3)调用ArcEngine API,合并基岩图切地质剖面SP和松散层剖面集合QP,得到松散层覆盖区域的图切地质剖面,如图6所示。
本发明实施例中基于Arcgis Engine API提供部分GIS操作,相关步骤也可以使用SuperMap、Arcgis Object等软件的API进行相应GIS操作。
本发明中,当缺少基岩地质图数据时,可按以下方法获取松散层覆盖区域的基岩地层相关信息:
(1)地表出露基岩地层的产状信息、地层与剖面线的地表交点信息,从区域地质图中获取;
(2)松散层覆盖区域的基岩地层位置信息推断。若松散层左右两端出露基岩地层相同,则推断被覆盖区域的基岩地层与左右两端基岩地层是同一个地层;若左右两端出露基岩地层不相同,则取1/2处为两基岩地层的分界点。
自动生成的松散层覆盖区域的图切地质剖面(图6所示),与人工手绘的图切地质剖面(图7所示)对比,结果显示相似程度高,误差小。实验表明,本生成方法自动化程度高,识别效果较好,能够满足松散层覆盖区域的图切地质剖面自动生成的工作需要。
以上所揭露的仅为本发明一种较佳实施例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
机译: 光伏模块,包括布置在整个光伏电池组中的多个光伏电池,该光伏电池包括面向具有多个有源区域的面向光子源的表面。反射器,其至少覆盖面向光子源的表面的非有源区域;反射器一种用于制造反射器的方法。
机译: 用于建立呼叫质量图的系统和方法,特别是要通过收集特定区域中许多移动终端的位置数据和质量数据并在电子地图上实时显示它们,来确定确切的呼叫覆盖率和质量图
机译: 从街区图提取道路区域的道路区域提取设备,从道路区域提取设备获得的道路区域数据生成变形地图的变形地图自动生成系统,地图信息提供系统,地理信息提供系统和地理信息描述方法