本文介绍基于ArcMap软件,自动批量计算矢量图层中各个要素面积的方法。

  一次,遇到一个问题,需要分别计算ArcMap软件中一个图层的所有面要素的面积。如图,这个图层中包括多个省级行政区矢量面要素,现在需要分别计算其中每一个要素各自的面积。

  这里有一个方便的办法。

  首先我们新建一个字段。打开图层属性表,选择“Add Field”。

  在弹出的界面中,配置如下。其中,“Name”大家可以随意,“Type”选择“Float”,下方的字段属性中,“Precision”为字段的所有数字位数,无论是在小数点左边还是右边;“Scale”则为小数点右边的数字位数,也就是保留几位小数。例如:365.20Precision就是5Scale就是2

  可以看到,已经新建了一个字段。

  在新建的字段名称上右键,选择“Calculate Geometry”。

  弹出了一个提示,大概意思是说:我没有在开启编辑模式的情况下进行字段计算,那么这样会让计算变得快一些,但是一旦计算开始,就不能撤回。

  因此,追求计算速度还是追求可以撤回,依据大家的实际情况来就好。因为我这里数据不多,计算也比较简单,因此就直接选择了继续。

  点击“Yes”之后,在弹出的窗口中第一个“Property”下拉框中选择面积,也就是“Area”;此时发现我的“Area”后面跟着一个“Disabled”。为什么处于这种状态呢?

  一般的,出现上述情况都是因为我们的面要素(也就是这个图层)处于地理坐标系,而并不是投影坐标系。二者最简单的区别就是,地理坐标系用经度、纬度作为空间衡量指标,而投影坐标系用米、千米等长度单位作为空间衡量指标。

  那么,我们就来看看我们现在是不是处于地理坐标系状态。在图层列表中,右击我们当前的图层的名称,选择“Properties”。

  选择“Source”,可以看到,图层的地理坐标系统(“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值个数等加以查看,非常方便。

  至此,大功告成。

ArcMap分别求取矢量要素各区域的面积的更多相关文章

  1. ArcGIS中如何导出单个矢量要素图形

    原文:ArcGIS中如何导出单个矢量要素图形 在ARCGIS中载入了一张含有省界的中国地图,是SHP文件.现在我只想要其中一块地区的,实现方法如下: 加入到ArcGIS后,右击图层,打开属性表(att ...

  2. 使用C#版OpenCV进行圆心求取

    OpenCVSharp是OpenCV的.NET wrapper,是一名日本工程师开发的,项目地址为:https://github.com/shimat/opencvsharp. 该源码是 BSD开放协 ...

  3. java 求取某一段时间内的每一天、每一月、每一年

    1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...

  4. OpenCV 最小二乘拟合方法求取直线倾角

    工业相机拍摄的图像中,由于摄像质量的限制,图像中的直线经过处理后,会表现出比较严重的锯齿.在这种情况下求取直线的倾角(其实就是直线的斜率),如果是直接选取直线的开始点和结束点来计算,或是用opencv ...

  5. php自定义函数求取平方根

    <?phpfunction sqare($a, $left, $right){ $mid = ($left + $right)/2; if($mid * $mid == $a || (abs($ ...

  6. oracle 当前年到指定年的年度范围求取

    如下面公式所示,求取2015到当前年(2018)的年度范围,当前年是由系统获取的,用到了sysdate和函数to_char,to_date. 当然,当前年也可以换成指定年份 SELECT TO_CHA ...

  7. poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数

    poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量), ...

  8. python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)

    求取向量二范数,并求取单位向量(行向量计算) import numpy as np x=np.array([[0, 3, 4], [2, 6, 4]]) y=np.linalg.norm(x, axi ...

  9. K:求取数组中最大连续子序列和的四个算法

    相关介绍:  求取数组中最大连续子序列和问题,是一个较为"古老"的一个问题.该问题的描述为,给定一个整型数组(当然浮点型也是可以的啦),求取其下标连续的子序列,且其和为该数组的所有 ...

  10. 第3节 mapreduce高级:8、9、自定义分区实现分组求取top1

    自定义GroupingComparator求取topN GroupingComparator是mapreduce当中reduce端的一个功能组件,主要的作用是决定哪些数据作为一组,调用一次reduce ...

随机推荐

  1. CPNtools协议建模安全分析---实例变迁标记(五)

    之前的说了库所的标记,现在我们开始加讲变迁标记 1.描述变迁的标记有四种类型,分别是变迁的标记,门卫的标记,世间的标记,代码片段的标记. 咋变迁中限制更严格的输入token,其中Code Segeme ...

  2. hire 聘用 受雇 租金 单词记忆

    hire 基本解释 vt. 聘用:录用:雇用:租用 vi. 受雇:得到工作 n. 租金:酬金,工钱:[非正式用语] 被雇佣的人:销售部的两个新雇员 来自Proto-Germanic*hurjan,租, ...

  3. 新版idea配置maven注意点!!

    1. maven配置 首先是按要求配置了maven,关闭所有项目->自定义->所有设置 配置完成之后发现新建项目下方还是显示从官方源下载maven包装器,而且在项目中出现这个配置文件 可以 ...

  4. Ubuntu 16.04 LAMP(PHP7.0) 环境搭建并测试

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  5. NJUPT自控第一次积分赛的小总结(二)基于simpleFOC的无刷电机控制

    新人一枚,写的比较水,欢迎大佬指正! 先说一下我用的物料与开发环境吧: 无刷电机:makerbase的2804电机(带AS5600磁编码器) 电机驱动板:simpleFOCmini(学校推荐的) 电池 ...

  6. 大场景的倾斜摄影三维模型OBJ格式轻量化处理处理关键处理技术分析

    大场景的倾斜摄影三维模型OBJ格式轻量化处理处理关键处理技术分析 大场景的倾斜摄影三维模型是指通过航空或地面摄影获取的大范围.高分辨率的地理环境数据.为了在虚拟环境中加载和渲染这些模型,需要对其进行O ...

  7. 【干货】Java开发者快速上手.NET指南

    前言 前几天有小伙伴在技术群里发了一个微软官方出的:适用于Java开发人员的.NET快速入门免费电子书,今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料. 微软适用于Java开 ...

  8. KingbaseES V8R6 等待事件之IO类BufFileRead BufFileWrite

    等待事件含义 当数据库创建临时文件时,会发生IO:BufFileRead和IO:BufFileWrite等待事件.当操作需要的内存比当前定义的work_mem内存参数更多时,会将临时数据写入磁盘永久存 ...

  9. 表名大小写混合时格式问题及sys_dump导出时的注意事项

    前言 前几天碰到同事咨询一个有关sys_dump导出时,表名为大小写混合情况的报错问题.因为sys_dump命令运行在linux操作系统上,所以这涉及到linux中shell的语法格式问题. 下面模拟 ...

  10. Unity 2022.3.20f1新功能,异步实例化预制体Object.InstantiateAsync

    今天查看Unity 2022.3.20f1更新日志,发现新增了个异步实例化的功能,这个功能解决了Unity历史上实例化预制体卡顿的痛点,简直不要太爽. 具体的API文档请点击跳转. 做了个简单的实例化 ...