思路

  • 1.问题由来
  • 2.分析问题
    • 2.1计算图形面积的方式有哪些
    • 2.2 什么是相对法截线、测大地线
  • 3.实验过程及问题解析
  • 4. 总结

1.问题由来

前段时间,有个朋友问了我一个问题,关于Arcgis中的面积计算的问题:
用!shape.geodesicarea!计算的面积,和用Toolbox里计算的面积,为什么会有有差别?
平时使用这几个工具进行面积计算倒是很多,但具体的计算面积的原理及差异竟不不慎了解,我竟一时无法回答这个问题,针对这个问题我在网上寻找问题的答案,同时根据这个问题,自己进行实验验证问题的原因。接下来我将我的验证过程及自己的总结分享给大家。

2.分析问题

2.1计算图形面积的方式有哪些

首先我们要明确在ArcGIS中计算图形面积的方式有哪些:
预先声明一下我用的是 ArcGIS 10.4
2.1.1.Calculate Geometry(计算几何)
此工具是我们用的比较多的一个,这个工具计算面积分为两种方式:

基于数据源的坐标系统计算面积;
基于数据框的坐标系统计算面积。
如下图所示,测试要素的数据源的坐标系为CGCS2000 3 Degree GK Zone 39,而数据框的坐标系则为Asia Lambert Conformal Conic,显然这两种方式计算的结果会存在差异。
注:只能计算投影坐标系的面积。

pic 2.1.1-1 pic 2.1.1-2

2.1.2.Field Calculator (字段计算器)
主要是利用了ArcGIS中内置的python函数进行面积计算的。
注:可以计算投影坐标系的面积,也可以计算椭球坐标系。

pic 2.1.2-1 字段计算器 pic 2.1.2-2 字段计算器表达式-计算投影面积
pic 2.1.2-3 字段计算器表达式-计算椭球面积 说明
常用公式:!Shape.Area!,!Shape.geodesicarea!

2.1.3.Add Geometry Attributes(添加几何属性)
这是工具中的一个工具【需要说明的是这个工具在ArcGIS10.2.2以上的版本才会有】,也可以用来计算面积,且可以设置计算面积的坐标系。

其中Geometry Properties(几何属性)选择有很多选项,我在这里只说关于面积计算的问题

AREA,AREA_GEODESIC,其他属性的计算有兴趣的可自行尝试,这里不在赘述。
AREA:计算要素的面积
AREA_GEODESIC:计算要素的测地线面积(接下来我会说一下测大地线的问题)

pic 2.1.3-1 添加几何属性 pic 2.1.3-2 添加几何属性

2.1.4.Calculate Area(计算面积)
这个工具使用地还是比较少的,但是也是可以用来计算面积的。此工具由于前三个工具的存在,使用的很少,在Arcgis Pro中已经删除此工具。与!shape.Area!的计算结果一致,唯一的区别在于重新生成一个数据,添加一个F_AREA计算结果。

pic 2.1.4-1 计算面积

2.1.5 shp或其他不在数据库中的数据,转换导入至数据库
ESRI地理数据库默认会为要素添加Shape_Area字段中要素会自动计算面积,数据库最方便的地方就是在实时编辑数据时后,自动计算图斑的面积,无需重新计算面积。值得说明的是Shape_Area的面积是由数据源的坐标系决定。
如果数据源的坐标系为地理坐标系,那么Shape_Area中的值为平方度,1平方度约等于1万平方公里。

2.2 什么是相对法截线、测大地线

2.2.1相对法截线
关于相对法截线的介绍
2.2.2 大地线/测地线
包含椭球面上一点法线的平面称为法截面,法截面与该椭球面的交线称为法截线,椭球面上两点间的最短程曲线称为大地线。大地线又称为测地线,大地线是一条空间曲面曲线。
关于‘大地线’详解
值得注意的是大地线的性质:
大地线是椭球面上两点间的最短线。
大地线是无数法截线的连线。
椭球面上的大地线是双重弯曲的曲线。
大地线位于相对法截线之间。

3.实验过程及问题解析

本次绘制的图形比较简单,仅用来说明问题。
3.1.绘制18个图形,包括圆形,矩形,三角形,随意多边形等图形用以说明问题。

3.2.将绘制的图形(未定义坐标系,默认在CGCS2000 3 Degree GK Zone 39 绘制),将绘制的图形分别定义不同的投影分带后,基于定义后的数据源坐标系、数据框的坐标系,分别计算图形投影面积。

3.3.将将绘制的图形定义坐标系CGCS2000 3 Degree GK Zone 39 ,并分别投影到28度带至45度带,统计分析,现已半径为1000m的圆为例分析说明(其余图形的变化规律相似,多项式可以拟合误差曲线,不同之处在于多项式参数不一致)



通过比对投影面积与椭球面积之差与理论面积的比值可知,总体服从西往东误差逐渐减小的规律;图形的理论面积与椭球面积之差与理论面积之比在一定值域范围内。



通过上表和图可知,椭圆、圆形等带有弧段的图形的理论面积与椭球面积之间差值与理论值的比值域幅度明显偏大;
图形的理论面积与椭球面积之差与理论面积之比在(2.32,2.53)范围内,且椭球面积的准确性受到节点的距离以及弧段的影响。具体的阈值范围是否符合上述规律,暂未进行测试。有兴趣的伙伴可以进行探索一下规律,欢迎分享。

3.4.关于弧线的问题:需要指出的是,因为我在三调过程中,接触过图斑的绘制工作,其中有一条就是关于图形节点距离的问题,节点最大距离不应超过70m,因此我又突然想到,对上述的图形进行节点加密,对图形会有什么影响?
a. 如下截图是三个1000m半径的圆,其中一个是使用弧线绘制,另外两个是通过节点加密近似表示的半径为1000m的圆,数据框的坐标系与数据源的坐标系一致,均为投影坐标系CGCS2000 3 Degree GK Zone 39。

**b.**还是上述数据圆,我又重新设置数据框的坐标系,将数据框的坐标系设置为地理坐标系GCS_China_Geodetic_Coordinate_System_2000,我们会发现一个有意思的事情,如下如所示

弧线圆 多段线圆(2m距离) 多段线圆(70m距离)

同一数据因数据框设置的是地理坐标系的原因,图形会发生形变,用!Shape.Area!计算面积,会发现面积并未变化。这还是与高斯克吕格投影(等角横切椭圆柱投影)有直接的关系。当你将数据框设置为地理坐标系,使用计算几何工具计算面积的时候,你会有如下发现:

只能计算投影面积,无法计算椭球面积。
计算!Shape.Area!(投影面积)。可以看到数据结果是相同的,同一图形在同一空间位置节点加密后越近越接近于理论值(注:节点距离越近,数据量会越大,需要根据实际情况折中处理),且弧段线更接近于理论值(shp数据是不支持弧线的,会将弧线数据转换为多段线的形式表示)。

3.5以下是关于函数公式!Shape.GeodesicArea!计算的面积与使用工具Add Geometry Attributes(添加几何属性)中的Area_Geodesic计算面积之间差异分析。

通过上表分析可知:弧线对这两种方法计算椭球面积的影像比较明显,其次就是节点之间的距离。
GIS中计算多边形面积的原理

!shape.geodesicarea! 是在ArcGIS中计算椭球面积的工具,它是基于椭球体模型计算的,而不是基于球体模型计算的。因此,它的计算结果可能会与使用球体模型计算的其他工具不同。

而Add Geometry Attributes工具中的Area_Geodesic工具使用的是球体模型计算的,它是基于球体模型计算的。因此,它的计算结果可能会与使用椭球体模型计算的其他工具不同。

两种方法的主要区别在于它们使用的地球模型的形状。椭球体模型更加接近地球的真实形状,而球体模型则是一种简化的模型。因此,在不同的情况下,它们的计算结果可能会有所不同。

需要注意的是,任何一种计算面积的工具都有一定的误差,因为地球的形状是复杂的,而且地球上的数据也可能有一定的误差。因此,在实际应用中,需要根据具体情况选择适合的工具。


4. 总结

综上述实验结果分析可得如下结论
4.1.上述所列的计算面积工具的原理可分为两类:
第一类:基于数据源、显示数据框的计算投影面积
计算投影面积:上述方法中均可以计算图形的投影面积,且计算结果是一致的;不同在于能否设置坐标系,以及设置哪种坐标系的问题。
第二类:基于数据源的地理坐标系计算的椭球面积(测大地线有关)。
计算椭球面积:在字段计算器中使用!Shape.geodesicarea!、使用Add Geometry Attributes(添加几何属性)中的Area_Geodesic。两者的计算结果还是存在一定的差距。

4.2.基于定义后的数据源坐标系、数据框的坐标系,分别计算图形投影面积。
同一个图形分别定义不同的分带投影后,计算的图形面积不会发生改变;
定义投影后的图形然后投影到不同的分带后,原始的图形会发生变形,所以投影面积会发生变化,且变形会随着距离变远,变形会变大。
然而定义投影后的图形虽然投影到不同的分带,因同属于同一个地理椭球面的投影,所以在计算测大地线面积(椭球面积)的时候,面积的计算结果变化会很小(但是仍有少许的差异,与投影变形面积差相比,可以忽略不计),轻微变化的原因主要还是因为映射函数误差累计,导致测大地线的长度发生变化(此为猜测,有了解具体原因的读者,欢迎批评指正),。

4.3.图形面积的变化规律:
假设有一个可以自由移动的平面图形A:
图形A的面积由赤道向两极逐渐减小
图形A的面积由中央经线向东西两侧逐渐减小
我们平时使用的地理坐标系为CGCS2000,投影采用的是高斯-克吕格投影(等角横切椭圆柱投影),投影后要素图形的角度是准确的,而要素图形边长会因为投影变换的原因而发生形变,为保证变形最小,我们才会使用6°分带和3°分带。
4.4.同一要素分别在不同投影带定义投影后的面积是保持一致的;但是在不同投影分带上的要素所计算的测大地线面积是有所差异的,主要是因为位置发生改变,导致测大地的长度发生了变化,致使面积发生变化。
经过测试实验,得出如下结论:定义投影带后的要素分别进行投影换会(分别将坐标系为CGCS2000GK39要素分别投影至CGCS2000GK28到CGCS2000GK45),图形的shape.Area的变化规律是从西向东逐渐减小,变化规律可以用二次多项式拟合。
4.要素节点的距离在一定值域范围内,要素在投影前后的测大地线面积计算的误差就会越小
5.带有弧线的要素投影变换后面积变化差异较大,且与弧段长度以及弧的弯曲程度有关
6.计算椭球面积工具的两种方法,分别使用的是两种不同形式的球体模型,计算结果存在差异

Arcgis中常见的几种计算面积的方法的异同分析相关推荐

  1. C++中常见的几种输入字符串的方法

    C++中常见的几种输入字符串的方法_是赵薰薰呀的博客-CSDN博客_c++输入字符串 可以用的函数 substr substr有2种用法: 假设:string s = "0123456789 ...

  2. Linux中常见的几种错误和解决方法

    1.Linux中常见的错误有四种: ping: unknown host:主机找不到错误 timeout:请求超时 permission denied: 权限被拒绝 Connection refuse ...

  3. windows7没pdf打印机_公司中常见的八种打印机故障解决方法

    前面我们学习了打印机共享的基础知识.怎么共享打印机,可是在使用过程中却发现经常会出现无法打印的情况,这是什么原因导致的了,来跟我一起了解下公司中八种常见的打印机无法打印的故障现像与处理方法吧,这是在公 ...

  4. 常见的三种计算fps的方法

    // 1.总平均帧率 void update(float dt) {static float _total_frames = 0.0f;static float _total_time = 0.0f; ...

  5. 电脑常见的几种故障及解决方法

    今天给大家分享日常在使用电脑过程中常见的几种故障及解决方法,这里介绍几种最常见的问题及解决方法,希望能够帮到大家. 下面这幅图,一定最令你头疼 内存故障 打开电脑,时不时的自动重启,或者电脑发出滴滴滴 ...

  6. cad面积计算机,CAD中如何计算面积,计算面积的方法和命令汇总

    在绘图的过程中经常需要查询和计算图形的面积,网上有不少人问这方面的问题.之前比较懒,只是在博客里转了一篇别人的文章,那篇文章虽然写得很全面,但条理不是太清晰.今天又有人问起面积的问题,我想还是花点时间 ...

  7. 手把手教你用plotly绘制excel中常见的8种图表

    最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制! 第一部分:柱状图.条形图.折线图.面积图.饼图与圆环图. ...

  8. 手把手教你用plotly绘制excel中常见的16种图表(下)

    大家好,我是才哥. 上一期咱们介绍<手把手教你用plotly绘制excel中常见的16种图表(上)>演示了8种常见图表,今天我们继续演示另外8种常见图表的绘制. 文章目录 1. 树状图 2 ...

  9. 手把手教你用plotly绘制excel中常见的16种图表(上)

    大家好,我是才哥. 最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制! 第一部分:柱状图.条形图.折线图.面 ...

最新文章

  1. html path属性,HTML Location pathname用法及代码示例
  2. css动画(transition/transform/animation)
  3. 类和对象运行时在内存里是怎么样的?各种变量、方法在运行时是怎么交互的?
  4. 硅谷企業面臨新的反壟斷枷鎖
  5. 三分钟理解Python函数式编程与闭包
  6. HIbernate学习笔记5 之 查询
  7. python调用按键精灵插件_按键精灵 插件命令 重中之重务必要记住怎么操作
  8. 如何通过Python实现蒙特卡罗模拟算法
  9. VHDL n进制计数器
  10. Android系统定位获取经纬度
  11. 破解webstrom2017
  12. 商协社团汕头发展-全国工商联·万祥军:企业家论坛研究转型
  13. android10系统是平板电脑吗,买平板电脑应该选win10还是安卓系统?
  14. 一文带你看懂TCP/IP协议 (更新中 现更新至网络层部分)
  15. 新媒体运营是什么??新媒体运营通过哪些方式进行?
  16. linux 查看文件创建时间
  17. Java WEB开发实战 之 第二部分:Web应用基础知识【私塾在线原创】
  18. python面向对象二
  19. iphone怎么添加计算机,如何在iPhone上设置铃声? iPhone如何使用iTunes添加铃声?...
  20. 插入排序-一函数实现升降序的两种方式

热门文章

  1. 金山毒霸2010一年免费版
  2. java后台设置cookie到浏览器,总是差八小时的问题解决
  3. SR领域概念整理个人笔记
  4. 网络安全之小技巧保护(IIS)Web服务器
  5. itunes正在等待iphone_iphone的恢复模式DFU
  6. Collection 斗地主游戏
  7. Flutter快学快用开篇词 通往大前端的一把关键钥匙 Flutter
  8. 物流快递包裹高速交叉带分拣机系统 HEGERLS为电商物流注入高效活力
  9. 了不起的程序猿,是从猴子进化来的!
  10. 微信小程序的滑块控件Slider