首页 / 专利库 / 地球科学 / 地表径流 / 一种基于DEM的河谷横断面形态的算法

一种基于DEM的河谷横断面形态的算法

阅读:1029发布:2021-03-19

专利汇可以提供一种基于DEM的河谷横断面形态的算法专利检索,专利查询,专利分析的服务。并且本 发明 涉及地图学与 地理信息系统 技术领域,具体为一种基于DEM的河谷横断面形态的 算法 。该算法由以下六个步骤组成:(1)基于DEM的数据预处理;(2)计算分段河网数据;(3)计算河网垂线数据;(4)绘制河谷谷底轮廓线;(5)计算谷底宽度值;(6)绘制河谷横断面形态剖面图。经本发明计算后可获得描述河谷形态的重要定量指标:河谷谷底轮廓线、河谷谷底宽度值、河谷横断面剖面图。这些定量指标能够揭示河流的形成及发育、河谷 地貌 的构造状况等,对河流的分类与管理、滑坡体堵江概率的预测、 地震 动参数的计算等方面的研究具有重要的理论意义。,下面是一种基于DEM的河谷横断面形态的算法专利的具体信息内容。

1.一种基于DEM的河谷横断面形态的算法,其特征在于,包括以下步骤:
 (a)基于DEM的数据预处理: 以DEM栅格数据为基础数据,通过运用ArcGIS软件的水文分析处理功能依次完成无洼地DEM数据生成、水流流向分析、计算水流的汇流累积量、提取河网网络及流域分割,从而获得流域范围DEM数据和河网矢量数据;
 (b)计算分段河网数据:利用步骤(a)数据预处理所得的河网矢量数据和流域范围DEM数据,先通过曲线分段算法将河网分成N段,再通过直线拟合算法把分段曲线河网拟合成直线段河网并计算出分段直线河网起点、终点的橫纵坐标值及直线斜率值,完成分段河网的直线化处理;
(c)计算河网垂线数据:利用步骤(b)计算所得的分段直线河网起点、终点的橫纵坐标值,通过河网中点坐标提取算法算出分段直线河网中心点的横纵坐标值,同时还利用步骤(b)计算分段河网数据所得的分段直线河网的直线斜率值通过河网垂线计算方法算出分段直线河网的垂线斜率值,提取到分段直线河网的垂线段;
(d)绘制河谷谷底轮廓线,所述绘制河谷谷底轮廓线的具体步骤如下:
第一步:利用步骤(c)计算所得的分段直线河网中心点的横纵坐标值及该段直线河网的垂线斜率,通过探索点位置提取算法算出分段直线河网左右两侧探索点的横纵坐标值;
第二步:将第一步计算所得的探索点横纵坐标值通过坡度提取算法计算出探索点的坡度值;
第三步:将第二步计算所得的探索点坡度值通过谷底边界点提取算法计算出河谷两侧的谷底边界点坐标值,将同侧的谷底边界点按顺序连接即得到谷底轮廓线;
(e)计算谷底宽度值:利用步骤(d)所得的分段直线河网左右两侧的谷底边界点坐标值通过谷底宽度提取算法计算出分段河网的谷底宽度值;
(f)绘制河谷横断面形态剖面图:将步骤(d)所得的谷底边界点坐标值与步骤(c)所得的分段河网中心点坐标、分段河网垂线斜率相结合,通过河谷横断面提取算法得到河谷横断面形态剖面图。
2.根据权利要求1所述的一种基于DEM的河谷横断面形态的算法,其特征在于, 所述无洼地DEM数据生成的步骤如下:
(1)利用DEM水流方向数据计算出DEM数据中的洼地区域,并计算其洼地深度;
(2)利用步骤(1)所得的洼地深度设定填充阈值进行洼地填充,完成第一遍洼地填充后,所得DEM数据再进行洼地计算,对新产生的洼地重新进行填充直至所有洼地均被填平,无新的洼地产生,得到无洼地DEM数据;
所述水流流向分析是指在ArcGIS中,水流方向采用D8算法,通过计算中心栅格与邻域栅格的最大距离权落差来确定水流方向,其具体步骤如下:
(1)计算中心网格与周围8个网格的坡度;
(2)依据最陡坡度原则,利用步骤(1)所得的坡度确定中心网格水流的出流方向;
所述计算水流的汇流累积量是指以规则格网DEM为基础数据,假设每个格网都有一个单位水量,根据水往低处流的自然规律和区域地形的水流方向数据,把每个网格的水量累加求和,计算每个栅格位置点所流过的总水量值,即可得到该区域的汇流累积量;
所述河网提取采用的方法是地表径流漫流模型即利用上述步骤得到的无洼地DEM数据、水流流向及汇流累积量的数据,将栅格河网矢量化,从而获得矢量河网数据,完成河网提取;
所述流域分割的方法:首先是确定流域的最低点,进而得到出水点,然后根据水流方向,计算出流经该出水点的所有上游栅格,直到流域分水岭位置为止。
3.根据权利要求1所述的一种基于DEM的河谷横断面形态的算法,其特征在于,所述直线拟合算法的具体步骤如下:
(1)将河网曲线上的点命名为Rir_IDi、Rir_IDi+1、Rir_IDi+2……Rir_IDi+n;
(2)建立2个数组分别是数组Rir和数组Paline,其中数组Rir用来存储所读取河网点ID号Rir_IDi及其横坐标Rir_Xi、纵坐标Rir_Yi,数组Paline用来存储拟合直线ID号Paline_IDr和拟合直线的起点横坐标Org_Xi、起点纵坐标Org_Yi、终点横坐标Ed_Xi、终点纵坐标Ed_Yi、直线斜率ar;
(3)读取河网矢量数据,设置提取间距为D’,沿河网曲线从起点开始每相隔一个提取间距就提取一个点,得到每个点的横纵坐标分别为Rir_IDi(Rir_Xi,Rir_Yi) 、Rir_IDi+1(Rir_X i+1,Rir_Y i+1) 、Rir_ID i+2(Rir_X i+2,Rir_Y i+2)…… Rir_IDi+n(Rir_Xi+n,Rir_Yi+n),依次存入数组Rir;
(4)读取数组Rir,根据公式1和公式2求出取a、b的值;
(5)建立直线方程y=ax+b,将起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程求出直线起点和终点的纵坐标,最后将起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n)存入数组Paline即可,x为拟合点坐标的横坐标,y为拟合点坐标的纵坐标,a表示直线斜率,b表示截距,
(公式1),
  (公式2);
所述曲线分段算法的具体步骤如下:
(1)建立数组Line存储临时计算出来正在待判断的拟合直线ID号Line_IDm、拟合直线参数am和bm,同时利用直线拟合算法所建立的数组Rir和数组Paline,准备将河网曲线分段;
(2)设置比较角度阈值∠AlThd;
(3)设置初始值i=1,n=0,m=0,r=0(i、n、m、r均为整数),i+n表示河网曲线上的点数,m表示临时计算出来正在待判断的拟合直线的段数,r表示合格的拟合直线的段数;
(4)顺序读取数组Rir中的点,n=n+1;
(5)根据公式1计算出拟合直线参数am的值,根据公式2计算出拟合直线参数bm的值,存入数组Line;
(6)判断点Rir_IDi+n是否是数组Rir中最后一个点,如果是,r=r+1,则跳到第12步骤,如果不是则继续往下进行;
(7)将起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程,得到直线起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n);
(8)根据公式3,计算拟合角度∠Al;
(9)判断∠Al与∠AlThd的大小关系,如果∠Al<∠AlThd时,r=r+1,继续往下进行,如果∠Al≥∠AlThd时跳回第4步;
(10)当r=1时,将直线起点Rir_IDi横坐标代入直线方程,得到直线起点坐标Rir_IDi'(Org_Xi,Org_Yi),将直线起点坐标及参数ar=am存入数组Paline;当r≥2时,计算直线Paliner与直线Paliner-1交点坐标,交点值为直线Paliner-1的终点及直线Paliner的起点坐标,将直线Paliner-1的终点坐标、直线Paliner的起点坐标、参数ar存入数组Paline;
(11)i=i+1,n=0,回到第4步;
(12)当r=1时,将直线起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程y=ax+b,得到直线Paliner的起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n)存入数组Paline;当r≥2时,计算直线linem与直线Paliner-1交点坐标,得到交点值为直线Paliner-1的终点及直线Paliner的起点坐标,将终点Rir_IDi+n横坐标代入直线方程y=ax+b,得到终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n),将直线Paliner-1的终点坐标、直线Paliner的起点、中点坐标及参数ar=am存入数组Paline即可,
  (公式3)。
4.根据权利要求1所述的一种基于DEM的河谷横断面形态的算法,其特征在于,所述河网中点坐标提取算法的具体步骤如下:
 (1)建立数组PalineCet,用来存储河网中心点ID号PaLineCet_IDi、横坐标PaLine_Xi与纵坐标PaLine_Yi;
 (2)顺序读取步骤(b)的数组Paline,提取拟合直线起点坐标(Org_Xi,Org_Yi),终点坐标(Ed_Xi,Ed_Yi);
 (3)根据公式4,计算河网中心点横纵坐标值;
 (4)将步骤(3)所得的河网中心点横纵坐标值顺序存入数组PalineCet即可,(公式4);
所述河网垂线计算方法的具体步骤如下:
 (1)建立数组K,用来存储垂线ID号K_IDr、垂线斜率值kr;
 (2)顺序读取步骤(b)的数组Paline,提取分段河网拟合直线的直线斜率值ar;
 (3)根据公式a·k=-1,则 k=-a/1,计算分段河网垂线斜率值kr;
 (4)将步骤(3)计算所得的垂线斜率值kr顺序存入数组K即可。
5.根据权利要求1所述的一种基于DEM的河谷横断面形态的算法,其特征在于,所述探索点位置提取算法的具体步骤如下:
(1)设定河网右侧为R侧,河网左侧为L侧;
 (2)设置河网右侧探索点坐标为ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn)、左侧的探索点坐标为ExPoint_L(L_ExPoint_Xn,L_ExPoint_Yn);
 (3)设置探索距离阈值D;
 (4)根据公式 ,计算偏移向量(D_X,D_Y),k为垂线斜率值;
 (5)读取步骤(c)的数组PalineCet,提取河网中心点坐标(PaLine_X, PaLine_Y);
 (6)R侧横纵坐标的计算公式如下:

(7)L侧横纵坐标的计算公式如下:

所述坡度提取算法是采用窗口分析法计算坡度,即在未知曲面函数的情况下,选取3×
3DEM局部窗口,如图a所示,接着采用三阶反距离平方权差分,计算东西方向高程变化率fx和南北方向高程变化率fy,进而得到坡度值Slp
所述坡度提取算法的具体步骤如下:
(1)设置坡度变量Slp;
(2)读取探索点ExPoint_R和ExPoint_L,得到R侧探索点坐标
ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn)和L侧探索点坐标
ExPoint_L(L_ExPoint_Xn,L_ExPoint_Yn);
(3)读取流域DEM数据;
(4)根据公式 ,将矢量探索点栅格化,得到探索点的栅格行列号,s表示
栅格宽度,[ ]表示取整;
(5)根据公式5,计算出探索点的坡度值Slp即图a中心点5的坡度值,
  (公式5),
其中公式5中,g表示已知格网宽度,Z(v v=1,2,…,9)为点v所对应的高程值,fx表示东西方向高程变化率,fy南北方向高程变化率;
所述谷底边界点包括谷底右侧边界点和谷底左侧边界点,两侧边界点的提取算法原理相同,其中L侧谷底边界点提取算法的具体步骤如下:
 (1)建立两个数组ByPoint_L和ChPoint_L,其中ChPoint_L用来存储L侧坡度变化点ID号ChPoint_IDn,横坐标ChPoint_Xn,纵坐标ChPoint_Yn;ByPoint_L用来存储L侧谷底与谷坡的边界点IDi号、横坐标ByPoint_L_Xi、纵坐标ByPoint_L_Yi;
 (2)设置比较坡度阈值SlpThd;
 (3)读取流域DEM数据;
 (4)设置初始值n=0,i=0;
 (5) n=n+1;
 (6)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (7)根据公式 ,将矢量探索点栅格化,得到探索点的栅格行列号,s表
示栅格宽度,[ ]表示取整;
 (8)根据公式5,计算出探索点的坡度值Slp;
 (9)判断Slp与SlpThd的大小关系,当Slp<SlpThd时,跳回到步骤(5);当Slp≥SlpThd时,将点ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn)存入数组ChPoint_L,继续步骤(10);
 (10)n=n+1;
 (11)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (12)根据公式 ,将矢量探索点栅格化得到探索点的栅格行列号,s表
示栅格宽度,[ ]表示取整;
 (13)根据公式5,计算出探索点的坡度值Slp;
 (14)判断Slp与SlpThd的大小关系,当Slp<SlpThd时,跳回到步骤(5);当Slp≥SlpThd时,将点ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn)存入数组ChPoint_L,继续步骤(15);
 (15)n=n+1;
 (16)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (17)根据公式 ,将矢量探索点栅格化得到探索点的栅格行列号,s表
示栅格宽度,[ ]表示取整;
 (18)根据公式5,计算出探索点的坡度值Slp;
 (19)判断Slp与SlpThd的大小关系,当Slp<SlpThd时,跳回到步骤(5);当Slp≥SlpThd时,i=i+1读取数组ChPoint_L,将点ExPoint_Ln-2(L_ExPoint_Xn-2,L_ExPoint_Yn-2)存入数组ByPoint_L即可;
同理,对于提取河谷R侧的谷底边界点,首先建立两个数组ByPoint_R和ChPoint_R,其中ChPoint_R用来存储R侧坡度变化点ID号ChPoint_IDn,横坐标ChPoint_Xn,纵坐标ChPoint_Yn,判断R侧坡度变化点位置;ByPoint_R用来存储R侧谷底与谷坡的边界点IDi号、横坐标ByPoint_R_Xi、纵坐标ByPoint_R_Yi,根据探索点位置提取算法步骤(6)的计算公式求出R侧探索点坐标ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn),其余步骤与上述步骤相同。
6.根据权利要求1所述的一种基于DEM的河谷横断面形态的算法,其特征在于,所述谷底宽度提取算法的具体步骤如下:
(1)建立数组W,用来存储河网PaLine段,位置点PaLineCeti(PaLine_Xi,PaLine_Yi)处的谷底宽度ID号W_IDi及谷底宽度值Wi;
(2)读取确定河谷谷底边界点所得数组ByPoint_L和数组ByPoint_R;
(3)根据公式6计算位置点PaLineCeti处的谷底宽度值;
(4)将步骤(3)计算所得谷底宽度值存入数组W即可,
(公式6)。
7.根据权利要求1所述的一种基于DEM的河谷横断面形态的算法,其特征在于,所述河谷横断面提取算法的具体步骤如下:
(1)建立两个数组Hor和Pro,其中Hor用来存储横断面ID号Hor_ID,起点横坐标Hor_Org_X,起点纵坐标Hor_Org_X,终点横坐标Hor_Ed_X,终点纵坐标Hor_Ed_Y,Pro用来存储沿横断面所读取的位置点Pro_X及位置点的高程值Pro_Y;
(2)根据步骤(c)分段河网中心点的横纵坐标值及该中心点的垂线斜率值,基于流域DEM数据,绘制直线直至流域边界点结束,保存直线ID号及起止点的横纵坐标值;
(3)读取数组Hor,从起点开始沿直线方向,设置采集距离为D”,相隔一个采集距离就读取一个点,从第一个位置点开始,依次存入Pro_X(1、2、3……)及该点所对应栅格点的高程值,直至直线终点结束;
(4)读取数组Pro,以Pro_X乘以2的值,作为横坐标,以Pro_Y为纵坐标,绘制河谷横断面形态剖面图即可。

说明书全文

一种基于DEM的河谷横断面形态的算法

技术领域

[0001] 本发明涉及地图学与地理信息系统技术领域,具体为一种基于DEM的河谷横断面形态的算法。

背景技术

[0002] 河流地貌的研究是国内外文、地貌学家关注的核心问题之一。但是在以往的研究中,对河流的研究多基于水域以下,过水断面面积、水系的提取、水流的长度等参数的提取,但对于河床以外,河谷形态的研究工作,尚不多见。尤其是对河谷横断面的研究,需要沿流域截取较多数量的断面,数据量较大,且形态特征比纵剖面更复杂。研究者多通过实地测量或基于地形图手动描绘获取数据,工作量大、效率低且研究区域较小,同时还具有一定的主观性。因此面对当前河谷形态的研究工作,发明一种自动提取数据和计算的方法就显得尤为必要,以便研究人员更加高效准确地服务于河流河谷形态研究和管理,更好地满足当前河流分类、河流精细化管理、河流系统化管理的需求。

发明内容

[0003] 针对上述的问题,本发明的目的是提供一种基于DEM的河谷横断面形态的算法。这种算法基于提取到的河网DEM栅格数据,通过诸如曲线分段算法、直线拟合算法、河网垂线算法、坡度提取算法等九个计算方法计算后,可得到河谷谷底宽度值、谷底边界点坐标值等关键数据,并根据相关数据绘制出河谷谷底轮廓线和河谷横断面剖面图。
[0004] 本发明采用的技术方案是:一种基于DEM的河谷横断面形态的算法,其特征在于,包括以下步骤:
 (a)基于DEM的数据预处理: 以栅格DEM数据为基础数据,通过运用ArcGIS的水文分析处理功能依次完成无洼地DEM数据生成、水流流向分析、计算水流的汇流累积量、提取河网网络及流域分割,从而获得流域范围DEM数据和河网矢量数据;(b)计算分段河网数据:利用步骤(a)数据预处理所得的河网矢量数据和流域范围DEM数据,先通过曲线分段算法将河网分成N段,再通过直线拟合算法把分段曲线河网拟合成直线段河网并计算出分段直线河网起点、终点的橫纵坐标值及直线斜率值,完成分段河网的直线化处理;(c)计算河网垂线数据:利用步骤(b)计算所得的分段直线河网起点、终点的橫纵坐标值,通过河网中点坐标提取算法算出分段直线河网中心点的横纵坐标值,同时还利用步骤(b)计算分段河网数据所得的分段直线河网的直线斜率值通过河网垂线计算方法算出分段直线河网的垂线斜率值,提取到分段直线河网的垂线段;(d)绘制河谷谷底轮廓线,所述绘制河谷谷底轮廓线的具体步骤如下:第一步:利用步骤(c)计算所得的分段直线河网中心点的横纵坐标值及该段直线河网的垂线斜率,通过探索点位置提取算法算出分段直线河网左右两侧各M个探索点的横纵坐标值;第二步:将第一步计算所得的探索点横纵坐标值通过坡度提取算法计算出探索点的坡度值;第三步:将第二步计算所得的探索点坡度值通过谷底边界点提取算法计算出河谷两侧的谷底边界点坐标值,将同侧的谷底边界点按顺序连接即得到谷底轮廓线;(e)计算谷底宽度值:利用步骤(d)所得的分段直线河网左右两侧的谷底边界点坐标值通过谷底宽度提取算法计算出分段河网的谷底宽度值;(f)绘制河谷横断面形态剖面图:将步骤(d)所得的谷底边界点坐标值与步骤(c)所得的分段河网中心点坐标、分段河网垂线斜率相结合,通过河谷横断面提取算法得到河谷横断面形态剖面图。
通过完成上述的a、b、c、d、e、f共六个步骤,科研人员可得到河谷谷底边界点坐标、河谷谷底宽度值等研究河谷的关键数据,根据关键数据绘制出河谷谷底轮廓线,将关键数据通过河谷横断面提取算法提取到河谷横断面剖面图。这些数据和图形对研究河流的形成及发育、河谷地貌的构造状况以及河流的分类与管理、滑坡体堵江概率的预测、地震动参数的计算等具有极其重要的意义。
[0005] 其中,所述DEM为数字高程模型,是通过获取有限数量地表点的高程值及经纬度并对其进行数学建模,来表示的地形曲面模型。
[0006] 所述DEM栅格数据是指由机载LiDAR数据通过LiDAR数据处理软件生成规则格网DEM数据,具体生成步骤如下:(1)数据准备:存储机载LiDAR数据并将其转换为GIS格式的点文件;
(2)点数据处理:依次对步骤(1)的原始机载LiDAR数据进行坐标系统转换、粗差剔除、滤波分类处理,并提取出地表面点云数据;
(3)创建不规则三网:根据Delaunay三角网算法对步骤(2)得到的地面点云数据进行不规则三角网的构建,每个激光脚点作为TIN模型三角形的顶点
(4)内插生成DEM:利用由地面点云所构建的不规则三角网数据,根据规则格网与三角面的空间关系,以已知的三角节点高程值对每个格网中心点进行高程值的内插计算,从而得到整个区域的DEM数据。
[0007] 所述机载LiDAR数据是指通过激光测距技术即向物体发射具有一定强度的聚集光束并测量光束反射到传感器所需时间,结合GPS动态差分定位技术来精确地获取地面点的三维空间坐标并快速成图。
[0008]  上述的DEM数据结构包括点状、线状、面状三种数据结构。目前应用最为广泛的是面状数据结构,而面状数据结构又分为规则格网和不规则三角网,由于规则格网DEM具有数据存储结构简单、与遥感影像数据相合性强、具有良好的表面分析功能等优点,因此本发明采用规则格网DEM数据作为数据源。目前获取DEM数据的方法有很多种,其中激光测距技术即LiDAR具有通过较小的外业工作量就可以较为自动快速的获取地面点三维空间坐标图的优势,因此本发明采用的是机载地形LiDAR系统,其是生成DEM最普通的LiDAR系统。通过高精度机载LiDAR数据创建数字高程模型即DEM时,需要对原始LiDAR数据进行处理,以获得真实地面的点云数据,因此需要通过LiDAR数据处理软件才能生成规则格网DEM,其具体生成步骤引自《吕献林. 多源数据辅助机载LiDAR数据生成DEM方法研究[D]. 中国地质大学(武汉), 2009.》。
[0009] 以LiDAR技术获取高精度、高分辨率的基础数据,可以获得更加接近真实的地表,再生成相应的DEM栅格数据,从而为提取更为精确的河谷形态信息打好了基础。
[0010] 进一步的,所述无洼地DEM数据生成的步骤如下:(1)利用DEM水流方向数据计算出DEM数据中的洼地区域,并计算其洼地深度;
(2)利用步骤(1)所得的洼地深度设定填充阈值进行洼地填充,完成第一遍洼地填充后,所得DEM数据再进行洼地计算,对新产生的洼地重新进行填充直至所有洼地均被填平,无新的洼地产生,得到无洼地DEM数据。
[0011] 需要进行无洼地DEM生成主要是因为DEM数据在生成过程中会产生误差,而且一些真实的地貌如喀斯特地貌形态更加会导致DEM数据在生成时会产生误差,因此使得DEM数据所模拟的地形表面会存在一些凹陷的区域,该区域称为洼地,而洼地会使得提取河网时出现大片不连续的河网,最终得到错误的水流方向,甚至使得水流无法流到出口,因而提取河网的第一步就是需要对原始DEM数据进行洼地填充,得到无洼地的DEM。
[0012] 所述水流流向分析是指在ArcGIS中,水流方向采用D8算法,通过计算中心栅格与邻域栅格的最大距离权落差来确定水流方向,其具体步骤如下:(1)计算中心网格与周围8个网格的坡度;
(2)依据最陡坡度原则,利用步骤(1)所得的坡度确定中心网格水流的出流方向。
[0013] 在河网提取过程中,对水流方向的确定是最为关键的一步即进行水流流向分析,而在DEM栅格格网数据中,由于每一个格网点均存在一个水流方向,该方向即水流离开此格网时的方向,因此确定了该方向即得到了水流出的方向。
[0014] 所述计算水流的汇流累积量是指以规则格网DEM为基础数据,假设每个格网都有一个单位水量,根据水往低处流的自然规律和区域地形的水流方向数据,把每个网格的水量累加求和,计算每个栅格位置点所流过的总水量值,即可得到该区域的汇流累积量。
[0015] 由于在DEM栅格格网数据中,每个网格的水流累积值表示上游有多少网格的水最终汇入该网格,汇流累积值越大的网格,越容易形成径流,因此汇流累积量即指集水能的大小,是提取流域水系信息的重要参考值,其是通过上述步骤所得的无洼地水流方向数据计算所得。
[0016] 所述河网提取采用的方法是地表径流漫流模型即利用上述步骤得到的无洼地DEM数据、水流流向及汇流累积量的数据,将栅格河网矢量化,从而获得矢量河网数据,完成河网提取。
[0017] 河网提取是基于DEM数据进行水文分析最主要的也是最基础的研究内容。河网即地表水流网络,当河流累积量到达一定程度时就会产生地表径流,汇流累积值高于某一临界值的栅格构成的网络就是河网。将栅格河网矢量化,得到矢量河网数据,再确定汇流累积阈值是提取河网的关键,因为提取水系的疏密程度与水流累积阈值的大小密切相关。通常情况下,水流累积阈值越小,提取的河网越稠密,河流条数越多,而汇流累积阈值越大,生成的河网越稀疏,河流条数越少。但在实际操作过程中,汇流累积阈值受流域地形,面积大小等因素影响,因而为了找到能够合理反映流域水系真实情况的阈值,需要通过不断调试并根据实际情况来确定。
[0018] 所述流域分割的方法:首先是确定流域的最低点,进而得到出水点,然后根据水流方向计算出流经该出水点的所有上游栅格,直到流域分水岭位置为止。
[0019] 由于数据预处理过程中采集到的DEM数据都是整片区域的,但本发明仅需河网那个流域范围内的数据而已,因此需要对原始DEM数据进行流域分割,得到流域范围DEM数据。所述流域分割的流域是指分水岭所包围的集水区域,每个流域都有一个公共的排水出口,进而形成了一个集中的排水区域。整个流域的最低点形成了流域的出口即出水口,因此流域分割首先要确定流域最低点。
[0020] 综上所述,将DEM栅格数据经ArcGIS水文处理所得的流域范围内DEM数据和河网矢量数据是为下一步的计算分段河网数据提供基础数据,同时所述DEM的数据预处理引自《郑忠, 肖俊, 王俊. ARCGIS中基于DEM的工程水文信息提取应用研究——以新疆部分河流水文分析计算为例[J]. 中国农村水利水电, 2010(4):20-22.》和《王程, 韩新海. ArcGIS环境下基于DEM的水文特征提取——以县南沟流域为例[J]. 地下水, 2011(4):178-180.》。
[0021] 进一步的,所述直线拟合算法的具体步骤如下:(1)设定河网曲线上的点为Rir_IDi、Rir_IDi+1、Rir_IDi+2……Rir_IDi+n;
(2)建立2个数组分别是数组Rir和数组Paline,其中数组Rir用来存储所读取河网点ID号Rir_IDi及其横坐标Rir_Xi、纵坐标Rir_Yi,数组Paline用来存储拟合直线ID号Paline_IDr和拟合直线的起点横坐标Org_Xi、起点纵坐标Org_Yi、终点横坐标Ed_Xi、终点纵坐标Ed_Yi、直线斜率ar;

(3)读取河网矢量数据,设置提取距离为D ,沿河网曲线从起点开始每相隔一个提取距离就提取一个点,得到每个点的横纵坐标分别为Rir_IDi(Rir_Xi,Rir_Yi) 、Rir_IDi+1(Rir_X i+1,Rir_Y i+1) 、Rir_ID i+2(Rir_X i+2,Rir_Y i+2)…… Rir_IDi+n(Rir_Xi+n,Rir_Yi+n),依次存入数组Rir;
(4)读取数组Rir,根据公式1和公式2求出取a、b的值;
(5)建立直线方程y=ax+b,将起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程求出直线起点和终点的纵坐标,最后将起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n)存入数组Paline即可,x为拟合点坐标的横坐标,y为拟合点坐标的纵坐标,a表示直线斜率,b表示截距,
(公式1),
(公式2)。
[0022] 所述直线拟合是根据给定的数据构造适当的数学表达式,得到近似关系式y=f(x),并不要求全部数据点均通过该拟合直线,其目的是得到误差最小的最佳函数。实现手段主要是最小二乘法。利用最小二乘法实现直线拟合,拟合最接近这n个点的直线即原始数据点与拟合直线相应点的偏差的平方和为最小。本发明的拟合直线算法引自《兰燕娜, 薛同莲, 李雅丽,等. 基于VB语言实现最小二乘法直线拟合[J]. 长江大学学报(自科版), 2011, 08(6):92-94.》。
[0023] 所述曲线分段算法的具体步骤如下:(1)建立数组Line存储临时计算出来正在待判断的拟合直线ID号Line_IDm、拟合直线参数am和bm,同时利用直线拟合算法所建立的数组Rir和数组Paline,准备将河网曲线分段;
(2)设置比较角度阈值∠AlThd;
(3)设置初始值i=1,n=0,m=0,r=0(i、n、m、r均为整数),i+n表示河网曲线上的点数,m表示临时计算出来正在待判断的拟合直线的段数,r表示合格的拟合直线的段数;
(4)顺序读取数组Rir中的点,n=n+1;
(5)根据公式1计算出拟合直线参数am的值,根据公式2计算出拟合直线参数bm的值,存入数组Line;
(6)判断点Rir_IDi+n是否是数组Rir中最后一个点,如果是,r=r+1,则跳到第12步骤,如果不是则继续往下进行;
(7)将起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程,得到直线起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n);
(8)根据公式3,计算拟合角度∠Al;
(9)判断∠Al与∠AlThd的大小关系,如果∠Al<∠AlThd时,r=r+1,继续往下进行,如果∠Al≥∠AlThd时跳回第4步;
(10)当r=1时,将直线起点Rir_IDi横坐标代入直线方程,得到直线起点坐标Rir_IDi'(Org_Xi,Org_Yi),将直线起点坐标及参数ar=am存入数组Paline;当r≥2时,计算直线Paliner与直线Paliner-1交点坐标,交点值为直线Paliner-1的终点及直线Paliner的起点坐标,将直线Paliner-1的终点坐标、直线Paliner的起点坐标、参数ar存入数组Paline;
(11)i=i+1,n=0,回到第4步;
(12)当r=1时,将直线起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程y=ax+b,得到直线Paliner的起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n)存入数组Paline;当r≥2时,计算直线linem与直线Paliner-1交点坐标,得到交点值为直线Paliner-1的终点及直线Paliner的起点坐标,将终点Rir_IDi+n横坐标代入直线方程y=ax+b,得到终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n),将直线Paliner-1的终点坐标、直线Paliner的起点、中点坐标及参数ar=am存入数组Paline即可,
(公式3)。
目前大量的科学研究表明河谷横断面就是垂直于水流流动方向的河谷断面,而且沿着河流的每一个点都可以做剖面,得到相对应的河谷横断面。由于河流都是弯曲的,因此研究人员需要将河流进行分段,分别对每一段河流提取一个相对应的横断面。本发明是当河流的弯曲度小于一个设定的角度阈值时则将河流断开,但即使根据这一原则将河流分段,得到的每段河流也是较为弯曲的曲线,因此需要将每段弯曲河流转化为一条直线段河流,才能沿着水流方向对每段河流做垂线,最终得到每段河流相应的横截面。
[0024] 本发明曲线河网分段的基本思路是根据曲线河网上的点Rir_IDi、Rir_IDi+1、Rir_ID i+2…Rir_IDi+n、Rir_IDi+n+1,结合直线拟合算法根据公式3得到拟合角度∠Al,同时设置角度阈值∠AlThd,通过判断∠Al与∠AlThd的大小关系,将曲线河网分段。
[0025] 曲线河网分段完后,接下来则是将分段曲线河网直线化。如图11所示,河网分段直线化即是应用数据预处理所得的主河网矢量数据,利用曲线分段算法将河网分段,再应用直线拟合算法,将每段弯曲河网拟合为直线段河网,得到分段直线河网PaLine。
[0026] 通过曲线分段算法和直线拟合算法计算所得的分段直线河网起点、终点的横纵坐标值及分段直线河网的直线斜率值是为下一步的计算河网垂线数据提供基础数据。本步骤引自《谢友宝. 最小二乘法分段直线拟合[J]. 现代电力, 1992(1):19-25.》和《田垅, 刘宗田. 最小二乘法分段直线拟合[J]. 计算机科学, 2012, 39(S1):482-484.》。
[0027] 进一步的,所述河网中点坐标提取算法的具体步骤如下: (1)建立数组PalineCet,用来存储河网中心点ID号PaLineCet_IDi、横坐标PaLine_Xi与纵坐标PaLine_Yi;
 (2)顺序读取步骤(b)的数组Paline,提取拟合直线起点坐标(Org_Xi,Org_Yi),终点坐标(Ed_Xi,Ed_Yi);
 (3)根据公式4,计算河网中心点横纵坐标值;
 (4)将步骤(3)所得的河网中心点横纵坐标值顺序存入数组PalineCet即可,
  (公式4)。
[0028] 所述河网垂线计算方法的具体步骤如下: (1)建立数组K,用来存储垂线ID号K_IDr、垂线斜率值kr;
 (2)顺序读取步骤(b)的数组Paline,提取分段河网拟合直线的直线斜率值ar;
 (3)根据公式a·k=-1,则 k=-a/1,计算分段河网垂线斜率值kr;
 (4)将步骤(3)计算所得的垂线斜率值kr顺序存入数组K即可。
[0029] 所述河网垂线计算方法的基本原理:互相垂直的两条直线,斜率乘积等于-1。基于此原理,通过步骤(b)计算所得的每段直线河网的直线斜率即可计算每段直线的垂线斜率k。
[0030] 所述计算河网垂线数据所得的分段直线河网中心点坐标和分段直线河网的垂线斜率是为下一步计算河谷谷底边界点坐标值提供基础数据,确定河谷谷底边界点坐标后,将同一侧的河谷谷底边界点相连即可绘制出河谷谷底轮廓线。
[0031] 进一步的,所述探索点位置提取算法的具体步骤如下:(1)设定河网右侧为R侧,河网左侧为L侧;
 (2)设置河网右侧探索点坐标为ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn)、左侧的探索点坐标为ExPoint_L(L_ExPoint_Xn,L_ExPoint_Yn);
 (3)设置探索距离阈值D;
 (4)根据公式  ,计算偏移向量(D_X,D_Y),k为垂线斜率值;
 (5)读取步骤(c)所得数组PalineCet,提取河网中心点坐标(PaLine_X, PaLine_Y);
 (6)R侧横纵坐标的计算公式如下:
 (7)L侧横纵坐标的计算公式如下:
所述探索点位置提取算法的基本思路:以分段直线河网中点为起点,沿河网垂线,通过设置探索距离阈值D,在河网的左侧即L侧、右侧即R侧分别探索谷底边界点。
[0032] 所述坡度提取算法是采用窗口分析法计算坡度,即在未知曲面函数的情况下,选取3×3DEM局部窗口,如图a所示,接着采用三阶反距离平方权差分,计算东西方向高程变化率fx,南北方向高程变化率fy,进而得到坡度值Slp。
[0033] 所述坡度提取算法的具体步骤如下:(1)设置坡度变量Slp;
(2)读取探索点ExPoint_R和ExPoint_L,得到R侧探索点坐标ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn)和L侧探索点坐标ExPoint_L(L_ExPoint_Xn,L_ExPoint_Yn);
(3)读取流域DEM数据;
(4)根据公式 ,将矢量探索点栅格化,得到探索点的栅格行列号,s表
示栅格宽度,[ ]表示取整;
(5)根据公式5,计算出探索点的坡度值Slp即图a中心点5的坡度值,
  (公式5),
其中公式5中,g表示已知格网宽度,Z(v v=1,2,…,9)为点v所对应的高程值,fx表示东西方向高程变化率,fy南北方向高程变化率。
[0034] 所述坡度提取算法的基本思路:由于地球表面上的每个位置点,均有一个相应的坡度值,因此可通过微分概念求出该点的坡度值。根据地表曲面函数z=f(x,y),建立高程变化率在东西、南北两个方向上的数学函数,计算该点的坡度值。本步骤所采用的窗口分析法计算坡度引自《陈楠, 王钦敏, 汤国安,等. 6种坡度提取算法的应用范围分析——以在黄土丘陵沟壑区的研究为例[J]. 测绘地理信息, 2006, 31(4):20-22.》和《何振芳, 赵牡丹, 韩羽. 不同地貌类型坡度提取算法的比较[J]. 水土保持通报, 2008, 28(6):126-129.》。
[0035] 所述谷底边界点包括谷底右侧边界点和谷底左侧边界点,两侧边界点的提取算法原理相同,其中L侧谷底边界点提取算法的具体步骤如下: (1)建立两个数组ByPoint_L和ChPoint_L,其中ChPoint_L用来存储L侧坡度变化点ID号ChPoint_IDn,横坐标ChPoint_Xn,纵坐标ChPoint_Yn;ByPoint_L用来存储L侧谷底与谷坡的边界点IDi号、横坐标ByPoint_L_Xi、纵坐标ByPoint_L_Yi;
 (2)设置比较坡度阈值SlpThd;
 (3)读取流域DEM数据;
 (4)设置初始值n=0,i=0;
 (5) n=n+1;
 (6)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (7)根据公式 ,将矢量探索点栅格化,得到探索点的栅格行列号;
 (8)根据公式5,计算出探索点的坡度值Slp;
(9)判断Slp与SlpThd的大小关系,当Slp≤SlpThd时,跳回到步骤(5);当Slp>SlpThd时,将点ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn)存入数组ChPoint_L,继续步骤(10);
 (10)n=n+1;
 (11)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (12)根据公式 ,将矢量探索点栅格化得到探索点的栅格行列号;
 (13)根据公式5,计算出探索点的坡度值Slp;
 (14)判断Slp与SlpThd的大小关系,当Slp≤SlpThd时,跳回到步骤(5);当Slp>SlpThd时,将点ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn)存入数组ChPoint_L,继续步骤(15);
 (15)n=n+1;
 (16)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (17)根据公式 ,将矢量探索点栅格化得到探索点的栅格行列号;
 (18)根据公式5,计算出探索点的坡度值Slp;
 (19)判断Slp与SlpThd的大小关系,当Slp≤SlpThd时,跳回到步骤(5);当Slp>SlpThd时,i=i+1读取数组ChPoint_L,将点ExPoint_Ln-2(L_ExPoint_Xn-2,L_ExPoint_Yn-2)存入数组ByPoint_L即可。
[0036] 同理,对于提取河谷R侧的谷底边界点,首先建立两个数组ByPoint_R和ChPoint_R,其中ChPoint_R用来存储R侧坡度变化点ID号ChPoint_IDn,横坐标ChPoint_Xn,纵坐标ChPoint_Yn,判断R侧坡度变化点位置;ByPoint_R用来存储R侧谷底与谷坡的边界点IDi号、横坐标ByPoint_R_Xi、纵坐标ByPoint_R_Yi,根据探索点位置提取算法步骤(6)的计算公式求出R侧探索点坐标ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn),其余步骤与上述步骤相同。
[0037] 本发明的谷底边界点提取算法基本思路:一般情况下,河谷谷底较为平坦,河谷谷坡坡度较陡,因此可以根据谷底与谷坡之间的坡度差异,判断谷底与谷坡的交界点位置确定谷底边界点坐标,通过设置突变点坡度阈值SlpThd,计算探索点的坡度值Slp,当连续三个探索点的坡度值Slp大于设定阈值SlpThd时,则判定第一个大于SlpThd的探索点为边界点,保存所有边界点,将同侧的边界点按顺序连接即得到谷底轮廓线。
[0038] 综上所述,本步骤所述绘制河谷谷底轮廓线的基本思路:以河流水流方向为正方向,设置探索距离,沿每段河网垂线方向探索,确定河网两侧探索点坐标,然后计算探索点坡度值,从而寻找到坡度变化点并确定河网谷底两侧边界点,最后将同侧的谷底边界点按顺序连接即得到谷底轮廓线。
[0039] 进一步的,所述谷底宽度提取算法的具体步骤如下:(1)建立数组W,用来存储河网PaLine段,位置点PaLineCeti(PaLine_Xi,PaLine_Yi)处的谷底宽度ID号W_IDi及谷底宽度值Wi;
(2)读取存储河谷谷底边界点的数组ByPoint_L和数组ByPoint_R;
(3)根据公式7计算位置点PaLineCeti处的谷底宽度值;
(4)将步骤(3)计算所得谷底宽度值存入数组W即可, 
  (公式6)。
[0040] 进一步的,所述河谷横断面提取算法的具体步骤如下:(1)建立两个数组Hor和Pro,其中Hor用来存储横断面ID号Hor_ID,起点横坐标Hor_Org_X,起点纵坐标Hor_Org_X,终点横坐标Hor_Ed_X,终点纵坐标Hor_Ed_Y,Pro用来存储沿横断面所读取的位置点Pro_X及位置点的高程值Pro_Y;
(2)根据已知分段河网中心点坐标及该中心点的垂线斜率,基于流域DEM数据,绘制直线直至流域边界点结束,保存直线ID号及起止点的横纵坐标值;
(3)读取数组Hor,从起点开始,沿直线方向,设置采集距离为D”,相隔一个采集距离就读取一个点,从第一个位置点开始,依次存入Pro_X(1、2、3……),及该点所对应栅格点的高程值,直至直线终点结束;
(4)读取数组Pro,以Pro_X乘以2的值,作为横坐标,以Pro_Y为纵坐标,绘制河谷横断面形态剖面图即可。
[0041] 所述绘制横断面剖面图的基本方法:首先沿河网垂线方向,以流域边界为横断面的起止点,截取河谷横断面,沿横断面从起点开始每隔一个采集距离为D”就读取一个剖面点,然后以水平距离为横坐标、剖面点的高程值为纵坐标,绘制河谷横断面剖面图。
[0042] 综上所述,由于采用了上述技术方案,本发明的有益效果是:本发明一种基于DEM的河谷横断面形态的算法,根据空间数据是描述空间物体与现象的位置与形状的数据,以数字高程模型为基础空间数据,与地理信息系统基础算法相结合,结合河谷地貌的形态特征,建立基于DEM的河谷横断面形态算法的设计。首先基于河网DEM并自动获取河网DEM数据,经水文分析处理后得到流域范围DEM数据和河网矢量数据,随后将该两种数据通过曲线分段算法、直线拟合算法、河网中点坐标提取算法、河网垂线计算方法、探索点位置提取算法、坡度提取算法、谷底边界点提取算法、谷底宽度提取算法、河谷横断面提取算法共九个算法计算后,可得到河谷谷底宽度值、谷底边界点坐标值等研究河谷的关键数据,并根据相关数据绘制出河谷谷底轮廓线和河谷横断面剖面图。河谷谷底宽度值、河谷谷底轮廓线、河谷横断面剖面图是描述河谷形态的重要定量指标。这些定量指标能够揭示河流的形成及发育、河谷地貌的构造状况等,对河流的分类与管理、滑坡体堵江概率的预测、地震动参数的计算等方面的研究具有重要的理论意义。
[0043] 当前上述研究河谷的重要定量指标都是科研人员通过实地测量才能获得,工作量大、效率低、研究范围较小且具有一定的主观性。本发明设计科学合理、准确可靠、使用方便,与当前常用方法相比具有减小工作量、提高工作效率、扩大研究范围且获得的数据更为客观、真实等显著优势。附图说明
[0044] 为了更清楚地说明本发明的实例或现有技术中的技术方案,下面将对实施实例或现有技术描述中所需要的附图做简单地介绍,显然,下面描述中的附图仅仅是本发明的一些实例,对于本领域普通技术人员来说,在不付出创造性的前提下,还可以根据这些附图获得其他的附图。
[0045] 图1 一种基于DEM的河谷横断面形态的算法原理框图;图2 河谷横断面剖面图分步结果示意图;
附图2中,1-DEM栅格数据图、2-河网矢量图、3-直线段河网示意图、4-提取河网垂线示意图、5-绘制谷底轮廓线示意图、6-河谷横断面剖面图;
图3 鱼溪流域谷底轮廓线示意图;
图4 鱼溪流域河谷谷底宽度相关性分析示意图;
图5 计算所得的鱼溪流域河谷横断面剖面图;
图6 实测所得的鱼溪流域河谷横断面剖面图;
图7 俄罗斯河谷中间河段流域河谷谷底轮廓线示意图;
图8 俄罗斯河谷中间河段谷底宽度相关性分析示意图;
图9 计算所得的俄罗斯河谷中间河段流域的河谷横断面剖面图;
图10 实测的俄罗斯河谷中间河段流域的河谷横断面剖面图;
图11 分段直线河网的拟合角度示意图。
图12 3×3DEM局部窗口示意图。

具体实施方式

[0046] 下面将结合本发明实例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 实施例1:如图1 所示,一种基于DEM的河谷横断面形态的算法,包括以下步骤:
 (a)基于DEM的数据预处理: 以DEM栅格数据为基础数据,通过运用ArcGIS软件的水文分析处理功能依次完成无洼地DEM数据生成、水流流向分析、计算水流的汇流累积量、提取河网网络及流域分割,从而获得流域范围DEM数据和河网矢量数据;
 (b)计算分段河网数据:利用步骤(a)数据预处理所得的河网矢量数据和流域范围DEM数据,先通过曲线分段算法将河网分成N段,再通过直线拟合算法把分段曲线河网拟合成直线段河网并计算出分段直线河网起点、终点的橫纵坐标值及直线斜率值,完成分段河网的直线化处理;
(c)计算河网垂线数据:利用步骤(b)计算所得的分段直线河网起点、终点的橫纵坐标值,通过河网中点坐标提取算法算出分段直线河网中心点的横纵坐标值,同时还利用步骤(b)计算分段河网数据所得的分段直线河网的直线斜率值通过河网垂线计算方法算出分段直线河网的垂线斜率值,提取到分段直线河网的垂线段;
(d)绘制河谷谷底轮廓线,所述绘制河谷谷底轮廓线的具体步骤如下:
第一步:利用步骤(c)计算所得的分段直线河网中心点的横纵坐标值及该段直线河网的垂线斜率,通过探索点位置提取算法算出分段直线河网左右两侧探索点的横纵坐标值;
第二步:将第一步计算所得的探索点横纵坐标值通过坡度提取算法计算出探索点的坡度值;
第三步:将第二步计算所得的探索点坡度值通过谷底边界点提取算法计算出河谷两侧的谷底边界点坐标值,将同侧的谷底边界点按顺序连接即得到谷底轮廓线;
(e)计算谷底宽度值:利用步骤(d)所得的分段直线河网左右两侧的谷底边界点坐标值通过谷底宽度提取算法计算出分段河网的谷底宽度值;
(f)绘制河谷横断面形态剖面图:将步骤(d)所得的谷底边界点坐标值与步骤(c)所得的分段河网中心点坐标、分段河网垂线斜率相结合,通过河谷横断面提取算法得到河谷横断面形态剖面图。
[0048] 进一步的,所述无洼地DEM数据生成的步骤如下:(1)利用DEM水流方向数据计算出DEM数据中的洼地区域,并计算其洼地深度;
(2)利用步骤(1)所得的洼地深度设定填充阈值进行洼地填充,完成第一遍洼地填充后,所得DEM数据再进行洼地计算,对新产生的洼地重新进行填充直至所有洼地均被填平,无新的洼地产生,得到无洼地DEM数据。
[0049] 所述水流流向分析是指在ArcGIS中,水流方向采用D8算法,通过计算中心栅格与邻域栅格的最大距离权落差来确定水流方向,其具体步骤如下:(1)计算中心网格与周围8个网格的坡度;
(2)依据最陡坡度原则,利用步骤(1)所得的坡度确定中心网格水流的出流方向。
[0050] 所述计算水流的汇流累积量是指以规则格网DEM为基础数据,假设每个格网都有一个单位水量,根据水往低处流的自然规律和区域地形的水流方向数据,把每个网格的水量累加求和,计算每个栅格位置点所流过的总水量值,即可得到该区域的汇流累积量。
[0051] 所述河网提取采用的方法是地表径流漫流模型即利用上述步骤得到的无洼地DEM数据、水流流向及汇流累积量的数据,将栅格河网矢量化,从而获得矢量河网数据,完成河网提取。
[0052] 所述流域分割的方法:首先是确定流域的最低点,进而得到出水点,然后根据水流方向,计算出流经该出水点的所有上游栅格,直到流域分水岭位置为止。
[0053] 进一步的,所述直线拟合算法的具体步骤如下:(1)将河网曲线上的点命名为Rir_IDi、Rir_IDi+1、Rir_IDi+2……Rir_IDi+n;
(2)建立2个数组分别是数组Rir和数组Paline,其中数组Rir用来存储所读取河网点ID号Rir_IDi及其横坐标Rir_Xi、纵坐标Rir_Yi,数组Paline用来存储拟合直线ID号Paline_IDr和拟合直线的起点横坐标Org_Xi、起点纵坐标Org_Yi、终点横坐标Ed_Xi、终点纵坐标Ed_Yi、直线斜率ar;
(3)读取河网矢量数据,设置提取间距为D’,沿河网曲线从起点开始每相隔一个提取间距就提取一个点,得到每个点的横纵坐标分别为Rir_IDi(Rir_Xi,Rir_Yi) 、Rir_IDi+1(Rir_X i+1,Rir_Y i+1) 、Rir_ID i+2(Rir_X i+2,Rir_Y i+2)…… Rir_IDi+n(Rir_Xi+n,Rir_Yi+n),依次存入数组Rir;
(4)读取数组Rir,根据公式1和公式2求出取a、b的值;
(5)建立直线方程y=ax+b,将起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程求出直线起点和终点的纵坐标,最后将起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n)存入数组Paline即可,x为拟合点坐标的横坐标,y为拟合点坐标的纵坐标,a表示直线斜率,b表示截距,
    (公式1),
(公式2)。
[0054] 本实施例中提取间距为D’=10米。
[0055] 所述曲线分段算法的具体步骤如下:(1)建立数组Line存储临时计算出来正在待判断的拟合直线ID号Line_IDm、拟合直线参数am和bm,同时利用直线拟合算法所建立的数组Rir和数组Paline,准备将河网曲线分段;
(2)设置比较角度阈值∠AlThd;
(3)设置初始值i=1,n=0,m=0,r=0(i、n、m、r均为整数),i+n表示河网曲线上的点数,m表示临时计算出来正在待判断的拟合直线的段数,r表示合格的拟合直线的段数;
(4)顺序读取数组Rir中的点,n=n+1;
(5)根据公式1计算出拟合直线参数am的值,根据公式2计算出拟合直线参数bm的值,存入数组Line;
(6)判断点Rir_IDi+n是否是数组Rir中最后一个点,如果是,r=r+1,则跳到第12步骤,如果不是则继续往下进行;
(7)将起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程,得到直线起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n);
(8)根据公式3,计算拟合角度∠Al;
(9)判断∠Al与∠AlThd的大小关系,如果∠Al<∠AlThd时,r=r+1,继续往下进行,如果∠Al≥∠AlThd时跳回第4步;
(10)当r=1时,将直线起点Rir_IDi横坐标代入直线方程,得到直线起点坐标Rir_IDi'(Org_Xi,Org_Yi),将直线起点坐标及参数ar=am存入数组Paline;当r≥2时,计算直线Paliner与直线Paliner-1交点坐标,交点值为直线Paliner-1的终点及直线Paliner的起点坐标,将直线Paliner-1的终点坐标、直线Paliner的起点坐标、参数ar存入数组Paline;
(11)i=i+1,n=0,回到第4步;
(12)当r=1时,将直线起点Rir_IDi与终点Rir_IDi+n横坐标代入直线方程y=ax+b,得到直线Paliner的起点坐标Rir_IDi'(Org_Xi,Org_Yi)与终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n)存入数组Paline;当r≥2时,计算直线linem与直线Paliner-1交点坐标,得到交点值为直线Paliner-1的终点及直线Paliner的起点坐标,将终点Rir_IDi+n横坐标代入直线方程y=ax+b,得到终点坐标Rir_IDi+n'(Ed_Xi+n,Ed_Yi+n),将直线Paliner-1的终点坐标、直线Paliner的起点、中点坐标及参数ar=am存入数组Paline即可,
  (公式3)。
[0056] 所述角度阈值的选取,决定了拟合直线的分段情况,若角度阈值偏大,则河流被分为多个细小的河流,则算法运算量会变大,影响算法计算效率;若角度阈值偏小,分段河流与真实河流偏差会变大,影响算法结果的准确性。因此,需要根据河网实际的曲折程度,输入角度阈值,寻找角度阈值较小且误差较小的角度值。
[0057] 进一步的,所述河网中点坐标提取算法的具体步骤如下: (1)建立数组PalineCet,用来存储河网中心点ID号PaLineCet_IDi、横坐标PaLine_Xi与纵坐标PaLine_Yi;
 (2)顺序读取步骤(b)的数组Paline,提取拟合直线起点坐标(Org_Xi,Org_Yi),终点坐标(Ed_Xi,Ed_Yi);
 (3)根据公式4,计算河网中心点横纵坐标值;
 (4)将步骤(3)所得的河网中心点横纵坐标值顺序存入数组PalineCet即可,
  (公式4)。
[0058] 所述河网垂线计算方法的具体步骤如下: (1)建立数组K,用来存储垂线ID号K_IDr、垂线斜率值kr;
 (2)顺序读取步骤(b)的数组Paline,提取分段河网拟合直线的直线斜率值ar;
 (3)根据公式a·k=-1,则 k=-a/1,计算分段河网垂线斜率值kr;
 (4)将步骤(3)计算所得的垂线斜率值kr顺序存入数组K即可。
[0059] 进一步的,所述探索点位置提取算法的具体步骤如下:(1)设定河网右侧为R侧,河网左侧为L侧;
 (2)设置河网右侧探索点坐标为ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn)、左侧的探索点坐标为ExPoint_L(L_ExPoint_Xn,L_ExPoint_Yn);
 (3)设置探索距离阈值D;
 (4)根据公式 ,计算偏移向量(D_X,D_Y),k为垂线斜率值;
 (5)读取步骤(c)的数组PalineCet,提取河网中心点坐标(PaLine_X, PaLine_Y);
 (6)R侧横纵坐标的计算公式如下:
 (7)L侧横纵坐标的计算公式如下:
所述坡度提取算法是采用窗口分析法计算坡度,即在未知曲面函数的情况下,选取3×
3DEM局部窗口,如图a所示,接着采用三阶反距离平方权差分,计算东西方向高程变化率fx,南北方向高程变化率fy,进而得到坡度值Slp。
[0060]所述坡度提取算法的具体步骤如下:
(1)设置坡度变量Slp;
(2)读取探索点ExPoint_R和ExPoint_L,得到R侧探索点坐标ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn)和
L侧探索点坐标ExPoint_L(L_ExPoint_Xn,L_ExPoint_Yn);
(3)读取流域DEM数据;
(4)根据公式 ,将矢量探索点栅格化,得到探索点的栅格行列号,s表示
栅格宽度,[ ]表示取整;
(5)根据公式5,计算出探索点的坡度值Slp即图a中心点5的坡度值,
  (公式5),
其中公式5中,g表示已知格网宽度,Zv(v=1,2,…,9)为点v所对应的高程值,fx表示东西方向高程变化率,fy南北方向高程变化率。
[0061] 所述谷底边界点包括谷底右侧边界点和谷底左侧边界点,两侧边界点的提取算法原理相同,其中L侧谷底边界点提取算法的具体步骤如下: (1)建立两个数组ByPoint_L和ChPoint_L,其中ChPoint_L用来存储L侧坡度变化点ID号ChPoint_IDn,横坐标ChPoint_Xn,纵坐标ChPoint_Yn;ByPoint_L用来存储L侧谷底与谷坡的边界点IDi号、横坐标ByPoint_L_Xi、纵坐标ByPoint_L_Yi;
 (2)设置比较坡度阈值SlpThd;
 (3)读取流域DEM数据;
 (4)设置初始值n=0,i=0;
 (5) n=n+1;
 (6)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (7)根据公式 ,将矢量探索点栅格化,得到探索点的栅格行列号;
 (8)根据公式5,计算出探索点的坡度值Slp;
 (9)判断Slp与SlpThd的大小关系,当Slp≤SlpThd时,跳回到步骤(5);当Slp>SlpThd时,将点ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn)存入数组ChPoint_L,继续步骤(10);
 (10)n=n+1;
 (11)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (12)根据公式 ,将矢量探索点栅格化得到探索点的栅格行列号;
 (13)根据公式5,计算出探索点的坡度值Slp;
 (14)判断Slp与SlpThd的大小关系,当Slp≤SlpThd时,跳回到步骤(5);当Slp>SlpThd时,将点ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn)存入数组ChPoint_L,继续步骤(15);
 (15)n=n+1;
 (16)根据上述探索点位置提取算法步骤(7)的计算公式,求出L侧探索点坐标ExPoint_Ln(L_ExPoint_Xn,L_ExPoint_Yn);
 (17)根据公式 ,将矢量探索点栅格化得到探索点的栅格行列号;
 (18)根据公式5,计算出探索点的坡度值Slp;
 (19)判断Slp与SlpThd的大小关系,当Slp≤SlpThd时,跳回到步骤(5);当Slp>SlpThd时,i=i+1读取数组ChPoint_L,将点ExPoint_Ln-2(L_ExPoint_Xn-2,L_ExPoint_Yn-2)存入数组ByPoint_L即可。
[0062] 同理,对于提取河谷R侧的谷底边界点,首先建立两个数组ByPoint_R和ChPoint_R,其中ChPoint_R用来存储R侧坡度变化点ID号ChPoint_IDn,横坐标ChPoint_Xn,纵坐标ChPoint_Yn,判断R侧坡度变化点位置;ByPoint_R用来存储R侧谷底与谷坡的边界点IDi号、横坐标ByPoint_R_Xi、纵坐标ByPoint_R_Yi,根据探索点位置提取算法步骤(6)的计算公式求出R侧探索点坐标ExPoint_R(R_ExPoint_Xn,R_ExPoint_Yn),其余步骤与上述步骤相同。
[0063] 所述比较坡度阈值的选取尤为关键,直接影响结果的准确性。通常情况下谷坡的坡度值均指全部谷坡的坡度最大值或平均值,但本发明的坡度阈值指的是谷底与谷坡的交o o界处的坡度值。本发明的比较坡度阈值SlpThd对于V型谷,取值范围为35 55 ,对于U型谷,~
比较坡度阈值SlpThd小于35o。
[0064] 进一步的,所述谷底宽度提取算法的具体步骤如下:(1)建立数组W,用来存储河网PaLine段,位置点PaLineCeti(PaLine_Xi,PaLine_Yi)处的谷底宽度ID号W_IDi及谷底宽度值Wi;
(2)读取确定河谷谷底边界点所得数组ByPoint_L和数组ByPoint_R;
(3)根据公式6计算位置点PaLineCeti处的谷底宽度值;
(4)将步骤(3)计算所得谷底宽度值存入数组W即可,
  (公式6)。
[0065]进一步的,所述河谷横断面提取算法的具体步骤如下:
(1)建立两个数组Hor和Pro,其中Hor用来存储横断面ID号Hor_ID,起点横坐标Hor_Org_X,起点纵坐标Hor_Org_X,终点横坐标Hor_Ed_X,终点纵坐标Hor_Ed_Y,Pro用来存储沿横断面所读取的位置点Pro_X及位置点的高程值Pro_Y;
(2)根据步骤(c)分段河网中心点的横纵坐标值及该中心点的垂线斜率值,基于流域DEM数据,绘制直线直至流域边界点结束,保存直线ID号及起止点的横纵坐标值;
(3)读取数组Hor,从起点开始沿直线方向,设置采集距离为D”,相隔一个采集距离就读取一个点,从第一个位置点开始,依次存入Pro_X(1、2、3……)及该点所对应栅格点的高程值,直至直线终点结束;
(4)读取数组Pro,以Pro_X乘以2的值,作为横坐标,以Pro_Y为纵坐标,绘制河谷横断面形态剖面图即可。
[0066] 本实施中采集距离D”=2米。
[0067] 实施例1选用的鱼溪流域为V型河谷,首先基于鱼溪流域DEM数据并对数据进行预处理。利用ArcGIS对数据进行水文分析,生成鱼溪流域矢量河网线文件及流域DEM数据。基于矢量河网数据,利用直线拟合算法及曲线分段拟合算法,经过多次比对,设置最佳拟合角度阈值∠Al为165°,将河网分段拟合,得到分段直线河网,保存分段直线河网编号、起止点坐标及直线斜率。利用已知分段直线河网的起止点坐标,经河网中心点坐标提取算法,分别提取每段直线河网中心点坐标。根据河网垂线提取算法,计算每段河网的垂线斜率。运用探索点位置提取算法,设置最佳探索距离阈值D为4米,根据已知河网中心点坐标及垂线方向向量,计算得到探索点位置点坐标。综合运用坡度提取算法及谷底边界线提取算法,利用流域DEM数据及探索点坐标位置数据,设置最佳比较坡度阈值SlpThd为36°,探索得到谷底边界点,将同侧的谷底边界点按顺序连接即可得到谷底轮廓线,如图3所示。
[0068] 如图4所示,运用河谷谷底宽度提取算法,计算多个位置点的谷底宽度值,与实测谷底宽度值做相关性分析,得到计算谷底宽度值与实测谷底宽度值的相关系数R2为0.77,由此可见相关性显著。
[0069] 选取鱼溪流域中某一位置点做横断面,运用河谷横断面提取算法,提取到该位置点的横断面剖面图如图5所示,实测同一位置点提取到的横断面剖面图如图6所示,将图5与图6对比可发现两者基本一致。
[0070] 实施例2:本实施例选用的俄罗斯河谷中间河段为U型河谷, 基于俄罗斯河谷中间河段DEM数据,设置最优阈值为拟合角度阈值∠Al170°、探索距离阈值D为4米、比较坡度阈值SlpThd为
25°,经过与实施例1相同的步骤,绘制出俄罗斯河谷中间河段流域的河谷谷底轮廓线,计算出谷底宽度值及绘制出河谷横断面剖面图。
[0071] 俄罗斯河谷中间河段流域河谷谷底轮廓线如图7所示。
[0072] 在计算谷底宽度值时,同时计算多个位置点的谷底宽度值并与实测谷底宽度值做相关性分析,得到计算谷底宽度值与实测谷底宽度值的相关系数R2高达0.94,如图8所示,可见相关性相当显著。
[0073] 选取俄罗斯河谷中间河段流域中某一位置点做横断面,运用河谷横断面提取算法,提取到该位置点的横断面剖面图如图9所示,实测同一位置点得到的横断面剖面图如图10所示,将两者对比,可发现计算图和实测图基本一致。
[0074] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本使用新型的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈