System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及海岸线检测,特别是涉及一种海岸线分形维数自动计算方法、系统及设备。
技术介绍
1、海岸线是多年平均大潮高潮时形成的实际痕迹线,它的变化直接影响海岸带的环境以及沿海地区人民的生存和发展。在实际测量中发现,同一海岸线的长度会随着测量尺度的变化出现差异,但是其分形维数不会发生变化。岸线分形维数是美国科学家mandelbrot于20世纪60年代创立的理论,由于分形维数不会随尺度的变化而变化,因此它可以较准确地反映岸线形态的弯曲与复杂程度,且分形维数越高,岸线的弯曲程度与复杂程度就越高。迄今为止,岸线分形维数的计算通常采用网格法与量规法两种方法来实现。但是网格法不能十分精确地反映海岸线的曲折程度,其计算结果一般会小于真实值。而量规法利用不同尺度的线段度量线要素,可以更准确地表征海岸线的曲折程度,但是传统的量规法需要人工手动测量,自动化程度低,工作量大,且费时费力,尤其当测量尺度很小时,庞大的工作量难以短期完成,也很难保证结果的准确性,仅适用于岸线长度较短、工作量较小的情况。因此迫切需要一种简单易操作且精度较高的岸线分形维数自动计算方法。
2、在前期研究烟台芝罘湾海岸线变迁的过程中,利用arcgis平台的要素转栅格模块,计算了1976~2016年,每5年为一个时段,共9期岸线的分形维数,尺子长度均选取3.0m、4.5m、7.5m、9.0m、10.5m、15.0m、18.0m、22.5m、27.0m、30.0m 10个不同尺度,由于每一期岸线每一个尺度都需要进行单独的转栅格及栅格数量统计,90次相同的数据处理步骤必须
技术实现思路
1、本专利技术实施例的目的是提供一种海岸线分形维数自动计算方法、系统及设备,以实现岸线的自动提取及岸线分形维数的自动计算,极大地提高岸线分形维数的计算效率以及结果的准确性。
2、为实现上述目的,本专利技术实施例提供了如下方案:
3、一种海岸线分形维数自动计算方法,包括:
4、获取海岸线矢量数据;
5、对所述海岸线矢量数据进行矢量数据的拓扑检查与修正,得到修正后的海岸线矢量数据;所述修正后的海岸线矢量数据中包括a个离散点;根据用户需求自主选择不同的海岸线矢量数据文件,以及确定预设尺度r数值;
6、将所述a个离散点中任意相邻的两个离散点进行距离求和,得到海岸线的长度;以所述海岸线的一个端点作为预设尺度r的圆的圆心;以所述预设尺度r为计量标准值,沿所述海岸线方向,得到所述圆与所述海岸线的交点和一段海岸线;所述交点作为下一个预设尺度r的圆的圆心;依次迭代,得到海岸线的线段数量n;
7、根据所述海岸线的线段数量n和所述预设尺度r,得到岸线分形维数。
8、可选地,所述获取海岸线矢量数据具体包括:
9、获取公开海岸线矢量数据;
10、或者,
11、获取海岸线区域遥感影像,采用arcgis和envi软件提取所述海岸线区域遥感影像中的海岸线矢量数据;提取的海岸线矢量数据误差小于0.5个像元,误差计算方法如下:
12、
13、式中,es为季节误差,etd为潮差误差,ep为像元误差,ed为数字化误差,er为校正误差。
14、可选地,对所述海岸线矢量数据进行矢量数据的拓扑检查与修正,得到修正后的海岸线矢量数据,根据用户需求自主选择不同的海岸线矢量数据文件,以及确定预设尺度r数值,具体包括:
15、采用arcgis软件对所述海岸线矢量数据进行矢量数据的拓扑检查与修正得到修正后的海岸线矢量数据;
16、任意一个所述海岸线矢量数据须为单一的连续海岸线,且所述海岸线不包括自相交、自重叠或者自相切的点或面;所述海岸线的悬挂点只包括两个端点;
17、根据用户需求改变文件存储路径以选择不同的海岸线矢量数据文件,并设定尺度r的数量及数值。
18、可选地,将所述a个离散点中任意相邻的两个离散点进行距离求和,得到海岸线的长度;以所述海岸线的一个端点作为预设尺度r的圆的圆心;以所述预设尺度r为计量标准值,沿所述海岸线方向,得到所述圆与所述海岸线的交点和一段海岸线;所述交点作为下一个预设尺度r的圆的圆心;依次迭代,得到海岸线的线段数量n,具体包括:
19、采用matlab编程模块的shaperead()函数语句对所述修正后的海岸线矢量数据文件进行读取;再通过double()函数语句对所述修正后的海岸线矢量数据进行读取,得到所述任意一个离散点的坐标值(x,y);
20、判定所述任意一个离散点的坐标值(x,y)是否为非值,剔除非数字的数值点,得到数字的数值点和坐标点数量;
21、将所述海岸线的一个端点作为起点,同时所述起点作为第一个预设尺度r的圆的圆心;记录第一个预设尺度r的圆的圆心坐标;
22、采用matlab编程模块,定义交点函数intersectionxy(x1,y1,x2,y2,r);其中(x1,y1)和(x2,y2)为第一个预设尺度r的圆与所述海岸线的两个交点坐标;将x1,y1,x2,y2和r变量的类型转换成double型;(x,y)为下一个预设尺度r的圆的圆心坐标;具体计算公式如下:
23、当x1等于x2时,则x=x1;若y1≤y2,则y=y1+r,反之y=y2+r;
24、当x1不等于x2时,定义变量则x,y的计算公式为:
25、
26、y=m×(x-x1)+y1;
27、若x<min(x1,x2),或者,x>max(x1,x2),y的计算公式不变,x的计算公式为:
28、
29、变量d为所述交点到所述圆心的距离;
30、d=(x2-x)2+(y2-y)2;
31、更新d及线段数量n的数值,并循环进行上述运算直至海岸线的另一个端点;
32、通过disp()函数语句输出所述预设尺度r对应的海岸线线段数量n及海岸线长度l;
33、l=n×r;
34、将所述海岸线线段数量n与所述预设尺度r的乘积近似为岸线长度l,且r值越小,输出的岸线长度l越大。
35、可选地,根据所述海岸线的线段数量n和所述预设尺度r,得到岸线分形维数,具体包括:
36、lgn(r)=-dlgr+c;
37、其中,d为岸线分形维数,c为常数。
38、为实现上述目的,本专利技术实施例还提供了如下方案:
39、一种海岸线分形维数自动计算系统,包括:
40、数据采集模块,用于获取海岸线矢量数据;
41、预处理模块,与所述数据采集模块连接,用于对所述海岸线矢量数据进行矢量数据的拓扑检查与修正,得到修正后的海岸线矢量数据;所述修正后的海岸线矢量数据中包括a个离散点;
42、用户自定义模块,与所述预处理模块连接,用于根据用户需求自主选择不同的本文档来自技高网...
【技术保护点】
1.一种海岸线分形维数自动计算方法,其特征在于,包括:
2.根据权利要求1所述的海岸线分形维数自动计算方法,其特征在于,所述获取海岸线矢量数据具体包括:
3.根据权利要求1所述的海岸线分形维数自动计算方法,其特征在于,对所述海岸线矢量数据进行矢量数据的拓扑检查与修正,得到修正后的海岸线矢量数据,根据用户需求自主选择不同的海岸线矢量数据文件,以及确定预设尺度r数值,具体包括:
4.根据权利要求1所述的海岸线分形维数自动计算方法,其特征在于,将所述A个离散点中任意相邻的两个离散点进行距离求和,得到海岸线的长度;以所述海岸线的一个端点作为预设尺度r的圆的圆心;以所述预设尺度r为计量标准值,沿所述海岸线方向,得到所述圆与所述海岸线的交点和一段海岸线;所述交点作为下一个预设尺度r的圆的圆心;依次迭代,得到海岸线的线段数量N,具体包括:
5.根据权利要求4所述的海岸线分形维数自动计算方法,其特征在于,根据所述海岸线的线段数量N和所述预设尺度r,得到岸线分形维数,具体包括:
6.一种海岸线分形维数自动计算系统,其特征在于,包括:
>7.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中所述的海岸线分形维数自动计算方法。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-5中所述的海岸线分形维数自动计算方法。
...【技术特征摘要】
1.一种海岸线分形维数自动计算方法,其特征在于,包括:
2.根据权利要求1所述的海岸线分形维数自动计算方法,其特征在于,所述获取海岸线矢量数据具体包括:
3.根据权利要求1所述的海岸线分形维数自动计算方法,其特征在于,对所述海岸线矢量数据进行矢量数据的拓扑检查与修正,得到修正后的海岸线矢量数据,根据用户需求自主选择不同的海岸线矢量数据文件,以及确定预设尺度r数值,具体包括:
4.根据权利要求1所述的海岸线分形维数自动计算方法,其特征在于,将所述a个离散点中任意相邻的两个离散点进行距离求和,得到海岸线的长度;以所述海岸线的一个端点作为预设尺度r的圆的圆心;以所述预设尺度r为计量标准值,沿所述海岸线方向,得到所述圆与所述海岸线的交点和一段...
【专利技术属性】
技术研发人员:孙贵芹,林蕾,魏潇,王靖伟,冯晓一,廖磊,寻知锋,赵丽,孙伟,朱金龙,刘宁,姜鹏,徐艳东,王玉祯,李姿墨,
申请(专利权)人:山东省海洋资源与环境研究院山东省海洋环境监测中心,山东省水产品质量检验中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。