本文介绍基于ArcMap软件,自动批量计算矢量图层中各个要素的面积的方法。
一次,遇到一个问题,需要分别计算ArcMap软件中一个图层的所有面要素的面积。如图,这个图层中包括多个省级行政区矢量面要素,现在需要分别计算其中每一个要素各自的面积。
这里有一个方便的办法。
首先我们新建一个字段。服务器托管打开图层属性表,选择“Add Field”。
在弹出的界面中,配置如下。其中,“Name”大家可以随意,“Type”选择“Float”,下方的字段属性中,“Precision”为字段的所有数字位数,无论是在小数点左边还是右边;“Scale”则为小数点右边的数字位数,也就是保留几位小数。例如:365.20
的Precision
就是5
,Scale
就是2
。
可以看到,已经新建了一个字段。
在新建的字段名称上右键,选择“Calculate Geometry”。
弹出了一个提示,大概意思是说:我没有在开启编辑模式的情况下进行字段计算,那么这样会让计算变得快一些,但是一旦计算开始,就不能撤回。
因此,追求计算速度还是追求可以撤回,依据大家的实际情况来就好。因为我这里数据不多,计算也比较简单,因此就直接选择了继续。
点击“Yes”之后,在弹出的窗口中第一个“Property”下拉框中选择面积,也就是“Area”;此时发现我的“Area”后面跟着一个“Disabled”。为什么处于这种状态呢?
一般的,出现上述情况都是因为我们的面要素(也就是这个图层)处于地理坐标系,而并不是投影坐标系。二者最简单的区别就是,地理坐标系用经度、纬度作为空间衡量指标,而投影坐标系用米、千米等长度单位作为空间衡量指标。
那么,我们就来看看我们现在是不是处于地理坐标系状态。在图层列表中,右击我们当前的图层的名称,选择“Properties”。
选择“So服务器托管urce”,可以看到,图层的地理坐标系统(“Geographic Coordinate System”)为WGS_1984
,这是一个地理坐标系,而非投影坐标系。
因此,如果我们需要计算面积,必须将这一图层转为投影坐标系。
具体转换的方法,点击查看ArcGIS地图投影与坐标系转换的方法即可,这里就不赘述啦~
转换为投影坐标系后,打开新图层的属性表,可以看到我们刚刚新建的字段在这里也是存在的。
依据同样的方法,打开“Calculate Geometry”,可以看到此时“Area”就不再带着“Disabled”了。
其中,“Coordinate System”选择第一项,也就是图层自身的坐标系,也就是刚刚我们给他投影所选用的投影坐标系;“Units”是单位,大家依据实际情况来就好。我在这里选择平方米~
点击“OK”。可以看到“Area”字段已经有面积了。
那么,我们对这个计算出来的面积随机验证一下。用河南来验证,计算面积为165982687427.8129
平方米,也就是165982.69
平方千米;我们看看实际面积:
差了大概1000平方千米。不能说很准确,但是还是可以满足基本的大尺度区域分析了。在这里,精度误差可能的来源包括所用省级行政区.shp
文件精度、投影坐标系选用等。大家依据各自的研究需要,来决定需不需要对面积数据精度加以提升;可用的提升方法包括更换投影坐标系、采用更精确的行政区图层等方法。
再用北京试一下。计算的面积为16394318646.91106
平方米,也就是16394.32
平方千米;实际面积:
这个就很准确了~
那么,能不能求出图层中所有矢量要素面积的和呢?可以的——在“Area”字段名称上右键,选择“Statistics”。
这里可以对全部字段的样本数量、极值、综合、平均值、标准差、Null
值个数等加以查看,非常方便。
至此,大功告成。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: unsubscribe:Angular 项目中常见场景以及是否需要 unsubscribe
本文由庄汇晔同学编写~ 在 Angular 项目中,经常会使用到 observable subscribe,但是 subscribe 读取了数据之后,真的就是万事大吉了吗?这个问题的答案或许是,或许不是。有些 observable 需要 unsubscribe…