一种枝形分布土壤的发生层三维建模方法及装置

文档序号:30266942发布日期:2022-06-02 04:41阅读:112来源:国知局
一种枝形分布土壤的发生层三维建模方法及装置

1.本发明涉及地理信息技术,尤其涉及一种枝形分布土壤的发生层三维建模方法及装置。


背景技术:

2.枝形分布是一种较为常见的土壤空间分布格局。在沟谷发育区域,水系多呈树枝状伸展,各条水系分支间,自丘顶到谷底,反复出现类似的土壤分布规律,这种分布呈现在土壤图上的图斑,称为枝形图斑。传统的土壤发生层三维模型构建方法,需要使用大量土壤剖面数据,适用于小范围、高精度的土壤发生层三维建模。然而,较多情况下由于野外实地调查困难、经费有限等多种原因,获取的土壤剖面数据有限,难以有效进行土壤发生层三维建模。


技术实现要素:

3.发明目的:本发明针对现有技术存在的问题,提供一种大范围、粗略的枝形分布土壤的发生层三维建模方法及装置。
4.技术方案:本发明所述的枝形分布土壤的发生层三维建模方法包括:
5.(1)加载数字化土壤图、区域dem数据以及实测土壤剖面数据,得到树枝状图斑面soilpolygon、区域栅格数据集合geodem和实测土壤剖面数据集合rp;
6.(2)基于区域栅格数据集合geodem,提取树枝状图斑面soilpolygon范围内的线状水系,作为soilpolygon的骨架线,存入骨架线集合skl;
7.(3)根据soilpolygon的边界线轮廓sp与骨架线集合skl,生成树枝状图斑轮廓虚拟剖面采样线,并存入采样线集合sol;
8.(4)查找采样线集合sol中距离实测土壤剖面数据集合rp中每个实测土壤剖面最近的采样线,存入采样线集合sl_a,将剩余采样线和sp形成其它采样线集合sl_b;
9.(5)对于采样线集合sl_a中每一采样线,提取线上所有折点作为采样点,为每一采样点进行土壤发生层分层并推测每一采样点的每一发生层厚度,之后采用该采样线的所有采样点构建虚拟土壤剖面,存入虚拟土壤剖面集合sp_a;
10.(6)根对于采样线集合sl_b中每一采样线,提取线上所有折点作为采样点,为每一采样点进行土壤发生层分层并推测每一采样点的每一发生层厚度,之后采用该采样线的所有采样点构建虚拟土壤剖面,存入虚拟土壤剖面集合sp_b;
11.(7)将虚拟土壤剖面数据sp_a、sp_b和实测土壤剖面数据rp合并为土壤剖面集合soilprofiles,并选取任一发生层gh,根据soilprofiles内所有含有发生层gh的土壤剖面的发生层gh的高程构建不规则三角网tin数据集;
12.(8)将不规则三角网tin数据集转化成三角面,生成土壤发生层gh的三维模型;
13.(9)循环执行步骤(7)-(8),直至所有发生层被遍历,得到所有土壤发生层三维模型。
14.进一步的,步骤(1)具体包括:
15.(1-1)加载数字化土壤图数据,从中提取树枝形状的树枝状图斑面soilpolygon;
16.(1-2)加载区域dem数据,从中提取区域栅格数据,存入区域栅格数据集合geodem;
17.(1-3)加载实测土壤剖面数据,生成实测土壤剖面ri(xi,yi,sli),并存入实测土壤剖面数据集合rp={ri|i=1,2,

,m},其中,ri表示第i个实测土壤剖面,xi和yi表示第i个实测剖面的坐标信息,m表示实测土壤剖面的数量,sli表示第i个实测剖面的土壤发生层信息,sli={gh
i,j
(gcj,zupj,zdownj,hj)|j=1,2,

,ni},gh
i,j
表示第i个土壤剖面第j个土壤发生层,ni表示第i个土壤剖面的土壤发生层的层数数量,gcj表示第j个发生层的发生层编码符号,编码符号的编码规则按照发生深度自上而下如下表所示;zupj表示第j个发生层的顶部深度,zdownj表示第j个发生层的底部深度,hj表示第j个发生层的厚度;
18.表 土壤发生层编码规则
[0019][0020]
(1-4)对于实测土壤剖面数据集合rp内每个剖面,查找是否包含o、a、ab、b、bc、c、r所有发生层编码符号,若缺失,则按发生深度自上而下顺序添补对应发生层,并且设该发生层厚度为0,直至每个剖面都包含o、a、ab、b、bc、c、r对应的所有发生层。
[0021]
进一步的,步骤(2)具体包括:
[0022]
(2-1)基于区域栅格数据集合geodem,生成线状水系数据,并存入线状水系集合wt;
[0023]
(2-2)利用树枝状图斑面soilpolygon裁切线状水系集合wt中每个线状水系;
[0024]
(2-3)提取裁切后位于树枝状图斑面soilpolygon的线状水系,并将其作为soilpolygon的骨架线,存入骨架线集合skl={skl
x
|x=1,2,

,lx},其中skl
x
表示第x条骨架线,lx表示骨架线数量。
[0025]
进一步的,步骤(3)具体包括:
[0026]
(3-1)提取soilpolygon的边界轮廓线sp,并提取sp上的折点,存入边界轮廓点集合cp={cpu|u=1,2,

,u},其中cpu表示第u个轮廓点,u表示轮廓点数量;
[0027]
(3-2)为边界轮廓点集合cp内所有点创建属性字段value,并赋予值g1;
[0028]
(3-3)提取骨架线集合skl中所有骨架线的所有折点,并为其创建属性字段value,赋予值g2,g1≠g2,将所有折点存入骨架线折点集合sklp;
[0029]
(3-4)将边界轮廓点集合cp和骨架线折点集合sklp合并,得到所有点集合ap,并利
用自然邻域插值法,根据属性字段value,构建栅格数据tempraster;
[0030]
(3-5)根据枝形土壤分布规律,沿着骨架线,向外提取平行于边界轮廓线的属性value等值线;
[0031]
(3-6)将生成的等值线,作为树枝状图斑轮廓虚拟剖面采样线存入采样线集合sol={glv|v=1,2,

,v},其中glv表示第v条采样线,v表示采样线的数量。
[0032]
进一步的,步骤(4)具体包括:
[0033]
(4-1)从实测土壤剖面数据集合rp中读取任一实测土壤剖面ri,在采样线集合sol内,查找距离ri最近的采样线,并存入采样线集合sl_a;
[0034]
(4-2)循环步骤(4-1),直至实测土壤剖面数据集合rp中所有实测土壤剖面被遍历,得到完整的距离实测土壤剖面最近的采样线集合sl_a;
[0035]
(4-3)将采样线集合sol内去除采样线集合sl_a中的采样线,剩余的采样线存入其它采样线集合sl_b,并将边界轮廓线sp加入其它采样线集合sl_b内。
[0036]
进一步的,步骤(5)具体包括:
[0037]
(5-1)从采样线集合sl_a中读取任一采样线glv;
[0038]
(5-2)提取采样线glv上所有折点,并将其作为采样点,存入采样点集合samppointa={sp
v,w
|w=1,2,

,w},其中sp
v,w
表示第v条采样线的第w个采样点,w表示第v条采样线上的采样点数量;
[0039]
(5-3)为采样点集合samppointa中每个采样点按发生深度自上而下顺序添加所有土壤发生层;
[0040]
(5-4)从实测土壤剖面数据rp中,查找与采样线glv距离最近的实测土壤剖面,根据实测土壤剖面推断采样点集合samppointa中所有采样点的每个土壤发生层的厚度,采用采样点集合samppointa构建虚拟土壤剖面,存入虚拟土壤剖面集合sp_a;
[0041]
(5-5)循环执行步骤(5-1)-(5-4),直至集合sl_a内所有采样线被遍历,得到完整虚拟土壤剖面集合sp_a。
[0042]
进一步的,步骤(5-4)具体包括:
[0043]
(5-4-1)每一个实测土壤剖面对应一条最近的采样线,从实测土壤剖面数据rp中,查找所有最近采样线为glv的实测土壤剖面,并存入临时剖面集合tp={r
v,z
|z=1,2,...,z},其中,r
v,z
表示距离采样线glv最近的第z个实测土壤剖面,z表示剖面数量;若z=1,则执行步骤(5-4-2);若z》1,则执行步骤(5-4-3);
[0044]
(5-4-2)将采样点集合samppoint a中所有采样点的各个发生层厚度赋值为查找到的实测土壤剖面的对应发生层厚度,并执行步骤(5-4-6);
[0045]
(5-4-3)对于临时剖面集合tp中每个剖面,找到采样线glv上距离该剖面最近的采样点,将该采样点的各个发生层厚度赋值为该剖面的对应发生层厚度,并存入临时采样点集合tsp={spz|z=1,2,...,z};
[0046]
(5-4-4)沿采样线glv方向,从临时采样点集合tsp读取任意两个相邻采样点sp
z1
和sp
z2
,从采样点集合samppoint a中查找采样点sp
z1
和sp
z2
之间所有的采样点,根据下式,计算这些采样点的各个发生层厚度:
[0047]hu
=min(h
z1
,h
z2
)+u*(|h
z1-h
z2
|)/n
[0048]
其中,hu表示第u个采样点的某一发生层厚度,h
z1
和h
z2
分别为采样点sp
z1
和sp
z2

应的发生层厚度,n表示sp
z1
和sp
z2
间隔内所有采样点的数量;
[0049]
(5-4-5)循环步骤(5-4-4),直到为采样点集合samppoint所有采样点的发生层赋值;
[0050]
(5-4-6)采用添加了发生层厚度的采样点集合samppoint生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_a。
[0051]
进一步的,步骤(6)具体包括:
[0052]
(6-1)从其它采样线集合sl_b中读取任一采样线glv;
[0053]
(6-2)提取采样线glv上所有折点,作为采样点存入采样点集合samppointb,并为每个采样点按发生深度自上而下顺序添加所有土壤发生层;
[0054]
(6-3)根据实测土壤剖面数据rp和虚拟土壤剖面集合sp_a,推断采样点集合samppointb所有采样点的每个发生层厚度,并采用采样点集合samppointb生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_b;
[0055]
(6-4)循环执行步骤(6-1)-(6-3),直至sl_b内所有采样线被遍历;
[0056]
(6-5)从其它采样线集合sl_b中读取边界轮廓线sp,从实测土壤剖面数据rp中找到距离sp最近的实测土壤剖面rc;
[0057]
(6-6)提取conline上所有折点,作为采样点存入采样点集合samppointc,并为每个采样点按发生深度自上而下顺序添加所有土壤发生层;
[0058]
(6-7)根据实测土壤剖面rc的发生层信息,将采样点集合samppointc内所有采样点的发生层赋予与rc相同的发生层厚度,并采用采样点集合samppointc生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_b。
[0059]
进一步的,步骤(6-3)具体包括:
[0060]
(6-3-1)根据采样线glv的属性字段value,查找所有与glv具有相同value值的采样线,并根据就近原则,筛选出距离最近且发生层厚度已赋值的采样线glf;
[0061]
(6-3-2)提取采样线glf的折点,形成采样点集合samppointf,并计算采样点集合samppointf中所有采样点的各发生层厚度均值,赋值给采样点集合samppointb中所有采样点对应发生层;
[0062]
(6-3-3)采用采样点集合samppointb生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_b。
[0063]
进一步的,步骤(7)具体包括:
[0064]
(7-1)将虚拟土壤剖面集合sp_a、sp_b和实测土壤剖面数据rp合并,得到土壤剖面集合soilprofiles;
[0065]
(7-2)对于任一发生层gh,提取集合soilprofiles内所有含有发生层gh的土壤剖面,存入集合mp;
[0066]
(7-3)根据区域栅格数据集合geodem和土壤剖面点位坐标,求得集合mp内每个土壤剖面高程信息;
[0067]
(7-4)根据每个土壤剖面高程信息和每一发生层的厚度,计算得到每一土壤剖面的发生层gh的顶部深度高程zup和底部深度高程zdown;
[0068]
(7-5)将集合mp内所有土壤剖面的发生层gh的顶部深度高程zup存入上表面不规则三角网tin数据集,将集合mp内所有土壤剖面的发生层gh的底部深度高程zdown存入下表
面不规则三角网tin数据集。
[0069]
本发明所述的枝形分布土壤的发生层三维建模装置,包括处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
[0070]
有益效果:本发明与现有技术相比,其显著优点是:本发明可以适用于土壤剖面数据有限情况下,大范围、粗略的土壤发生层三维建模。
附图说明
[0071]
图1是本实施例中采用的区域土壤图和实测土壤剖面数据;
[0072]
图2是本实施例中采用的区域dem数据;
[0073]
图3是本发明提供的枝形分布土壤的发生层三维建模方法的流程图;
[0074]
图4是本实施例中提取的树枝状图斑;
[0075]
图5是本实施例中提取的骨架线;
[0076]
图6是本实施例中的根据轮廓和骨架点集插值得到的栅格数据;
[0077]
图7是本实施例中的平行于轮廓边界的采样线集合;
[0078]
图8是本实施例的虚拟土壤剖面发生层厚度推断示意图;
[0079]
图9是本实施例中生成的土壤发生层三维模型((a)全局三维模型(方框为局部放大区域),(b)局部放大效果)。
具体实施方式
[0080]
下面对本发明技术方案作进一步详细的说明,本实施例选取了1:100万江西土壤图、30m分辨率江西dem数据以及通过实地采样和文献资料整理得到的土壤剖面描述记录作为实验数据,如图1、图2所示。下面结合附图,并通过描述一个具体的实施例,来进一步说明。
[0081]
如图3所示,本实施例提供了一种枝形分布土壤的发生层三维建模方法,包括:
[0082]
(1)加载数字化土壤图、区域dem数据以及实测土壤剖面数据,得到树枝状图斑面soilpolygon、区域栅格数据集合geodem和实测土壤剖面数据集合rp。
[0083]
该步骤具体包括:
[0084]
(1-1)加载数字化土壤图数据,从中提取树枝形状的树枝状图斑面soilpolygon,如图4所示;
[0085]
(1-2)加载区域dem数据,从中提取区域栅格数据,存入区域栅格数据集合geodem;
[0086]
(1-3)加载实测土壤剖面数据,生成实测土壤剖面ri(xi,yi,sli),并存入实测土壤剖面数据集合rp={ri|i=1,2,

,m},如表1所示,其中,ri表示第i个实测土壤剖面,xi和yi表示第i个实测剖面的坐标信息,m表示实测土壤剖面的数量,sli表示第i个实测剖面的土壤发生层信息,如表2所示,sli={gh
i,j
(gcj,zupj,zdownj,hj)|j=1,2,

,ni},gh
i,j
表示第i个土壤剖面第j个土壤发生层,ni表示第i个土壤剖面的土壤发生层的层数数量,gcj表示第j个发生层的发生层编码符号,编码符号的编码规则按照发生深度自上而下如表3所示;zupj表示第j个发生层的顶部深度,zdownj表示第j个发生层的底部深度,hj表示第j个发生层的厚度;
[0087]
表1实测土壤剖面数据表
[0088]
剖面编号横坐标纵坐标地面标高/m剖面深度/cmss001404616.183286082.7653100ss002399703.353271084.231069100ss003393518.193269374.157580...............ss230403228.623272947.0288630
[0089]
表2实测土壤剖面发生层信息表
[0090]
剖面编号发生层符号顶部深度/cm底部深度/cm厚度/cmss001a01010ss001b107565ss001c7510025ss002a01616ss002b1610084...............ss230a055ss230b53025
[0091]
表3土壤发生层编码规则
[0092][0093][0094]
(1-4)对于实测土壤剖面数据集合rp内每个剖面,查找是否包含o、a、ab、b、bc、c、r所有发生层编码符号,若缺失,则按发生深度自上而下顺序添补对应发生层,并且设该发生层厚度为0,直至每个剖面都包含o、a、ab、b、bc、c、r对应的所有发生层。
[0095]
例如,对于表2中剖面ss001,只含有a、b、c三个发生层,那么对应添加o、ab、bc、r四个发生层,每个发生层厚度置为0。处理后的实测土壤剖面数据集合rp如表4所示。
[0096]
表4填补发生层后的实测土壤剖面数据
[0097]
剖面编号发生层符号顶部深度/cm底部深度/cm厚度/cmss001o000ss001a01010
ss001ab10100ss001b107565ss001bc75750ss001c7510025ss001r1001000...............
[0098]
(2)基于区域栅格数据集合geodem,提取树枝状图斑面soilpolygon范围内的线状水系,作为soilpolygon的骨架线,存入骨架线集合skl。
[0099]
该步骤具体包括:
[0100]
(2-1)基于区域栅格数据集合geodem,生成线状水系数据,并存入线状水系集合wt;
[0101]
(2-2)利用树枝状图斑面soilpolygon裁切线状水系集合wt中每个线状水系;
[0102]
(2-3)提取裁切后位于树枝状图斑面soilpolygon的线状水系,并将其作为soilpolygon的骨架线,存入骨架线集合skl={skl
x
|x=1,2,

,lx},其中skl
x
表示第x条骨架线,lx表示骨架线数量。如图5所示,在本实施例中,lx=58。
[0103]
(3)根据soilpolygon的边界线轮廓sp与骨架线集合skl,生成树枝状图斑轮廓虚拟剖面采样线,并存入采样线集合sol。
[0104]
该步骤具体包括:
[0105]
(3-1)提取soilpolygon的边界轮廓线sp,并提取sp上的折点,存入边界轮廓点集合cp={cpu|u=1,2,

,u},其中cpu表示第u个轮廓点,u表示轮廓点数量;
[0106]
(3-2)为边界轮廓点集合cp内所有点创建属性字段value,并赋予值g1;在本实施例中,g1=20;
[0107]
(3-3)提取骨架线集合skl中所有骨架线的所有折点,并为其创建属性字段value,赋予值g2,g1≠g2,将所有折点存入骨架线折点集合sklp;在本实施例中,g2=0;
[0108]
(3-4)将边界轮廓点集合cp和骨架线折点集合sklp合并,得到所有点集合ap,并利用自然邻域插值法,根据属性字段value,构建栅格数据tempraster,如图6所示;
[0109]
(3-5)根据枝形土壤分布规律,沿着骨架线,向外提取平行于边界轮廓线的属性value等值线;如图7所示,在本实施例中,等值线间隔取值为5;
[0110]
(3-6)将生成的等值线,作为树枝状图斑轮廓虚拟剖面采样线存入采样线集合sol={glv|v=1,2,

,v},其中glv表示第v条采样线,v表示采样线的数量。
[0111]
(4)查找采样线集合sol中距离实测土壤剖面数据集合rp中每个实测土壤剖面最近的采样线,存入采样线集合sl_a,将剩余采样线和sp形成其它采样线集合sl_b。
[0112]
该步骤具体包括:
[0113]
(4-1)从实测土壤剖面数据集合rp中读取任一实测土壤剖面ri,在采样线集合sol内,查找距离ri最近的采样线,并存入采样线集合sl_a;
[0114]
(4-2)循环步骤(4-1),直至实测土壤剖面数据集合rp中所有实测土壤剖面被遍历,得到完整的距离实测土壤剖面最近的采样线集合sl_a;
[0115]
(4-3)将采样线集合sol内去除采样线集合sl_a中的采样线,剩余的采样线存入其它采样线集合sl_b,并将边界轮廓线sp加入其它采样线集合sl_b内。
[0116]
(5)对于采样线集合sl_a中每一采样线,提取线上所有折点作为采样点,为每一采样点进行土壤发生层分层并推测每一采样点的每一发生层厚度,之后采用该采样线的所有采样点构建虚拟土壤剖面,存入虚拟土壤剖面集合sp_a。
[0117]
该步骤具体包括:
[0118]
(5-1)从采样线集合sl_a中读取任一采样线glv;
[0119]
(5-2)提取采样线glv上所有折点,并将其作为采样点,存入采样点集合samppointa={sp
v,w
|w=1,2,

,w},其中sp
v,w
表示第v条采样线的第w个采样点,w表示第v条采样线上的采样点数量;
[0120]
(5-3)为采样点集合samppointa中每个采样点按发生深度自上而下顺序添加所有土壤发生层,即依次添加o-a-ab-b-bc-c-r的发生层;
[0121]
(5-4)从实测土壤剖面数据rp中,查找与采样线glv距离最近的实测土壤剖面,根据实测土壤剖面推断采样点集合samppointa中所有采样点的每个土壤发生层的厚度,采用采样点集合samppointa构建虚拟土壤剖面,存入虚拟土壤剖面集合sp_a;
[0122]
(5-5)循环执行步骤(5-1)-(5-4),直至集合sl_a内所有采样线被遍历,得到完整虚拟土壤剖面集合sp_a。
[0123]
步骤(5-4)具体包括:
[0124]
(5-4-1)每一个实测土壤剖面对应一条最近的采样线,从实测土壤剖面数据rp中,查找所有最近采样线为glv的实测土壤剖面,并存入临时剖面集合tp={r
v,z
|z=1,2,...,z},其中,r
v,z
表示距离采样线glv最近的第z个实测土壤剖面,z表示剖面数量;若z=1,则执行步骤(5-4-2);若z》1,则执行步骤(5-4-3);
[0125]
(5-4-2)将采样点集合samppoint a中所有采样点的各个发生层厚度赋值为查找到的实测土壤剖面的对应发生层厚度,并执行步骤(5-4-6);
[0126]
(5-4-3)对于临时剖面集合tp中每个剖面,找到采样线glv上距离该剖面最近的采样点,将该采样点的各个发生层厚度赋值为该剖面的对应发生层厚度,并存入临时采样点集合tsp={spz|z=1,2,...,z};如图8所示;
[0127]
(5-4-4)沿采样线glv方向,从临时采样点集合tsp读取任意两个相邻采样点sp
z1
和sp
z2
,从采样点集合samppoint a中查找采样点sp
z1
和sp
z2
之间所有的采样点,根据下式,计算这些采样点的各个发生层厚度:
[0128]hu
=min(h
z1
,h
z2
)+u*(|h
z1-h
z2
|)/n
[0129]
其中,hu表示第u个采样点的某一发生层厚度,h
z1
和h
z2
分别为采样点sp
z1
和sp
z2
对应的发生层厚度,n表示sp
z1
和sp
z2
间隔内所有采样点的数量;
[0130]
(5-4-5)循环步骤(5-4-4),直到为采样点集合samppoint所有采样点的发生层赋值;
[0131]
(5-4-6)采用添加了发生层厚度的采样点集合samppoint生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_a。
[0132]
(6)根对于采样线集合sl_b中每一采样线,提取线上所有折点作为采样点,为每一采样点进行土壤发生层分层并推测每一采样点的每一发生层厚度,之后采用该采样线的所有采样点构建虚拟土壤剖面,存入虚拟土壤剖面集合sp_b。
[0133]
该步骤具体包括:
[0134]
(6-1)从其它采样线集合sl_b中读取任一采样线glv;
[0135]
(6-2)提取采样线glv上所有折点,作为采样点存入采样点集合samppointb,并为每个采样点按发生深度自上而下顺序添加所有土壤发生层;
[0136]
(6-3)根据实测土壤剖面数据rp和虚拟土壤剖面集合sp_a,推断采样点集合samppointb所有采样点的每个发生层厚度,并采用采样点集合samppointb生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_b;
[0137]
(6-4)循环执行步骤(6-1)-(6-3),直至sl_b内所有采样线被遍历;
[0138]
(6-5)从其它采样线集合sl_b中读取边界轮廓线sp,从实测土壤剖面数据rp中找到距离sp最近的实测土壤剖面rc;
[0139]
(6-6)提取conline上所有折点,作为采样点存入采样点集合samppointc,并为每个采样点按发生深度自上而下顺序添加所有土壤发生层;
[0140]
(6-7)根据实测土壤剖面rc的发生层信息,将采样点集合samppointc内所有采样点的发生层赋予与rc相同的发生层厚度,并采用采样点集合samppointc生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_b。
[0141]
其中,步骤(6-3)具体包括:
[0142]
(6-3-1)根据采样线glv的属性字段value,查找所有与glv具有相同value值的采样线,并根据就近原则,筛选出距离最近且发生层厚度已赋值的采样线glf;
[0143]
(6-3-2)提取采样线glf的折点,形成采样点集合samppointf,并计算采样点集合samppointf中所有采样点的各发生层厚度均值,赋值给采样点集合samppointb中所有采样点对应发生层;
[0144]
(6-3-3)采用采样点集合samppointb生成虚拟土壤剖面,存入虚拟土壤剖面集合sp_b。
[0145]
(7)将虚拟土壤剖面数据sp_a、sp_b和实测土壤剖面数据rp合并为土壤剖面集合soilprofiles,并选取任一发生层gh(gh可取值为o、a、ab、b、bc、c、r中任一值),根据soilprofiles内所有含有发生层gh的土壤剖面的发生层gh的高程构建不规则三角网tin数据集。
[0146]
该步骤具体包括:
[0147]
(7-1)将虚拟土壤剖面集合sp_a、sp_b和实测土壤剖面数据rp合并,得到土壤剖面集合soilprofiles;
[0148]
(7-2)对于任一发生层gh,提取集合soilprofiles内所有含有发生层gh的土壤剖面,存入集合mp;
[0149]
(7-3)根据区域栅格数据集合geodem和土壤剖面点位坐标,求得集合mp内每个土壤剖面高程信息;
[0150]
(7-4)根据每个土壤剖面高程信息和每一发生层的厚度,计算得到每一土壤剖面的发生层gh的顶部深度高程zup和底部深度高程zdown;
[0151]
(7-5)将集合mp内所有土壤剖面的发生层gh的顶部深度高程zup存入上表面不规则三角网tin数据集,将集合mp内所有土壤剖面的发生层gh的底部深度高程zdown存入下表面不规则三角网tin数据集。
[0152]
(8)将不规则三角网tin数据集转化成三角面,生成土壤发生层gh的三维模型。
[0153]
该步骤具体包括:
[0154]
(8-1)将不规则三角网数据集tin内的三角网导出到面要素类tri;
[0155]
(8-2)在三角形面要素类tri属性表中构建字段id,与边界线编号发生关联,将边界线属性传递到tri的属性表内;
[0156]
(8-3)将三角形面要素类tri转换成3d模型格式文件,土壤发生层gh的三维模型。
[0157]
(9)循环执行步骤(7)-(8),直至所有发生层被遍历(即o、a、ab、b、bc、c、r被遍历完),得到所有土壤发生层三维模型。如图9所示。
[0158]
本发明实施例中基于arcgis engine api提供部分gis操作,相关步骤也可以使用supermap、arcgis object等软件的api进行相应gis操作。
[0159]
本实施例还提供了一种枝形分布土壤的发生层三维建模装置,包括处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
[0160]
以上所揭露的仅为本发明一种较佳实施例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1