1.一种面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于该方法包括:(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中读取任一松散层剖面线分组fgv,并从钻孔集合Drills中获取其邻近钻孔drill,基于松散层地层代码集合QC得到分组fgv的松散层厚度集合DH;
(7)基于松散层厚度集合DH和地表线SurfaceLine,生成松散层各层底部线,并构建松散层剖面,存入松散层剖面集合QP;
(8)循环执行步骤(6)‑(7),直至集合FG被遍历完,完成所有松散层剖面构建;
(9)基于所有松散层剖面几何QP和基岩图切地质剖面SP,合并构建松散层覆盖区域的图切地质剖面。
2.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(1)具体包括:
(1‑1)从研究区域的区域地质图中提取区域地质界线数据和区域地层面数据,并分别存入区域地质界线集合GeoLine和区域地层面集合GeoPolygon;
(1‑2)从研究区域的基岩地质图中提取基岩地质界线数据和基岩地层面数据,并分别存入基岩地质界线集合BedrockLine和基岩地层面集合BedrockPolygon,基岩地层面数据包括基岩地层面的地层唯一编号GID和对应地层代码;
(1‑3)将研究区域的钻孔数据存入钻孔数据集合Drills;
(1‑4)从研究区域的DEM中提取栅格数据,存入栅格数据集合GeoDEM。
3.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(2)具体包括:
(2‑1)提取剖面线SL与基岩地质界线集合BedrockLine中每一基岩地质界线的交点,作为基岩面交点;
(2‑2)将每个基岩面交点位置的地层产状信息作为该点的属性,存入基岩面交点集合PA={pai|i=1,2,…,PI},其中pai表示第i个基岩面交点,PI表示基岩面交点的数量;
(2‑3)提取剖面线SL与区域地质界线集合GeoLine中每一区域地质界线的交点,作为区域地层面交点;
(2‑4)将每个区域地层面交点位置的地层产状信息作为交点的属性,并存入区域地层面交点集合PB={pbj|j=1,2,…,PJ},其中pbj表示第j个区域地层面交点,PJ表示区域地层面交点的数量。
4.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(3)具体包括:
(3‑1)将基岩面交点集合PA中所有点的地层产状信息,存入产状集合AT={αi(ρ,θ,δ)|i=1,2,…,PI},αi(ρ,θ,δ)表示第i个基岩面交点的地层产状,ρ为地层倾向,θ为地层倾角,δ为地层走向,PI表示基岩面交点的数量;
(3‑2)采用基岩面交点集合PA中的点将剖面线SL分割为PI条分段线,并存入剖面分段线集合SeLine中;
(3‑3)获取剖面分段线集合SeLine中每一分段线的首端点,将首端点所在基岩地层面的地层唯一编号GID,作为对应分段线的属性存储,建立BedrockPolygon与SeLine的关联;
(3‑4)对于SeLine中每一分段线,根据其属性GID找到BedrockPolygon中与之对应的基岩地层面的地层代码,存入地层代码集合MK={mki|i=1,2,…,PI},其中,mki表示第i个分段线的地层代码;
(3‑5)根据基岩面交点集合PA、产状集合AT以及栅格数据集合GeoDEM,生成基岩图切地质剖面SP和地表线SurfaceLine。
5.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(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。
6.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(5)具体包括:
(5‑1)根据分段线集合SbLine中所有分段线的属性GID,得到松散层剖面线集合FL中每一松散层剖面线的GID;
(5‑2)根据集合FL中松散层剖面线的GID,按照下述规则判断任意两条松散层剖面线是否连续:若两条线之间GID相差为1,则判定这两条线连续;否则,判定两条线不连续;
(5‑3)将所有连续的松散层剖面线划分为一组,存入松散层剖面线分组集合FG={fgv|v=1,2,...,vn},其中fgv表示第v个松散层剖面线分组,vn表示分组的数量,fgv={sgv,w|w=
1,2,...,wn},sgv,w表示第v组里第w条松散层剖面线,wn表示第v组里松散层剖面线的数量。
7.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(6)具体包括:
(6‑1)读取松散层剖面线分组集合FG内任意一组松散层剖面线分组fgv;
(6‑2)将分组fgv中所有松散层剖面线合并,得到一条完整连续的剖面线ft;
(6‑3)根据钻孔集合Drills,获取到与剖面线ft距离最近的邻近钻孔drill;
(6‑4)根据松散层地层代码集合QC,按照地层年代新老关系,获取分组fgv中不同松散层地层;
(6‑5)读取邻近钻孔drill中地层各层厚度和岩性信息,并根据区域地质图图例中松散层岩性分类,将各层厚度整合并存入松散层厚度集合DH={dh(dco,ho)o|o=1,2,…,on},其中,dco表示第o个松散层地层,ho表示第o个松散层地层的厚度,on表示松散层地层数量。
8.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(7)具体包括:
(7‑1)计算钻孔drill投影至剖面线SL的点drillPoint,将其转换为二维坐标系下,得到点drillPoint的横纵坐标(xdp,ydp);
(7‑2)根据松散层厚度集合DH,按照dho=ydp‑ho求得松散层各个地层的最低深度,并存入松散层最低深度集合HP={hp(dco,dho)o|o=1,2,…,on},其中,dco表示第o个松散层地层,dho表示dco的最低深度点,ho表示dco的厚度;
(7‑3)从松散层最低深度集合HP中读取任一地层dco,从分组fgv中提取松散层地层代码年代小于等于dco的松散层剖面线,并合并成一条剖面线fb;
(7‑4)获取二维坐标下剖面线fb首尾两端点sp、ep,根据dco的最低深度点dho,得到松散层地层底部线,并存入松散层地层底部线集合QLine;
(7‑5)循环执行步骤(7‑3)‑(7‑4),直至HP被遍历完;
(7‑6)根据地表线SurfaceLine和松散层地层底部线集合QLine,构建面状要素,生成松散层剖面,并存入松散层剖面集合QP。
9.根据权利要求8所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(7‑4)具体包括:
(7‑4‑1)获取二维坐标下剖面线fb首尾两端点sp、ep,过端点sp、ep作两条垂线;
(7‑4‑2)读取地层dco的最低深度点dho,做水平线分别交两条垂线于点ao、bo;
(7‑4‑3)利用贝塞尔曲线方程,在sp、ao、dho三点间和ep、bo、dho三点间生成两条光滑曲线;
(7‑4‑4)将两条曲线合并,作为松散层地层底部线,并存入松散层地层底部线集合QLine。
10.根据权利要求1所述的面向松散层覆盖区域的图切地质剖面自动生成方法,其特征在于:步骤(9)具体包括:
(9‑1)沿剖面方向顺序,依次为基岩图切地质剖面SP赋予地层代码;
(9‑2)沿地层顺序,依次为松散层剖面集合QP赋予地层代码;
(9‑3)合并基岩图切地质剖面SP和松散层剖面集合QP,得到松散层覆盖区域的图切地质剖面。